Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht Das deutsche QBasic- und FreeBASIC-Forum
Für euch erreichbar unter qb-forum.de, fb-forum.de und freebasic-forum.de!
 
FAQFAQ   SuchenSuchen   MitgliederlisteMitgliederliste   BenutzergruppenBenutzergruppen  RegistrierenRegistrieren
ProfilProfil   Einloggen, um private Nachrichten zu lesenEinloggen, um private Nachrichten zu lesen   LoginLogin
Zur Begleitseite des Forums / Chat / Impressum
Aktueller Forenpartner:

PLAY-Befehl

 
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Allgemeine Fragen zu QBasic.
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
Tim



Anmeldungsdatum: 21.10.2005
Beiträge: 13
Wohnort: Bad Homburg

BeitragVerfasst am: 21.10.2005, 10:57    Titel: PLAY-Befehl Antworten mit Zitat

Liebe Programmierer,

Ich weiß nur, dass man mit PLAY Musik zum klingen bringen kann.

Kann man mehrere Stimmen gleichzeitig spielen lassen?

Außerdem habe ich schwierigkeiten an einem nicht festgelegtem Zeitpunkt im Programm die Musik (im MB modus) zu unterbrechen...
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Dusky_Joe



Anmeldungsdatum: 07.01.2005
Beiträge: 1007
Wohnort: Regensburg/Oberpfalz

BeitragVerfasst am: 21.10.2005, 16:59    Titel: Antworten mit Zitat

Über PLAY kannst du leider keine mehrstimmigen Lieder abspielen, allerdings kannst du ein wenig trixen: Spiel einfach ganz oft hintereinander zwei töne bei höher geschwindigkeit und kürzester notendauer:

Play "T240 L64 AC AC AC AC"

Sofern L die Notendauer angibt (ich habe schon lange nicht mehr mit QB gearbeitet), gibt diese Zeile eine Tonfolge aus, die wie ein AC-Akkord klingt, und eine 16stel-Note lang ist (T120 ist Standard-Tempo, T240 ist also doppelt so schnell. 8 64stel-Noten hintereinander gäben eine 8el-Note, bei doppelter geschwindigkeit erhältst du also eine 16tel.)


Zum Unterbrechen: Sieh dir am besten ON PLAY, PLAY ON, PLAY OFF u.s.w. an.
ON PLAY(n) bewirkt nämlich, dass zu einem Label verzweigt wird, sobald im Notenpuffer noch n Noten geladen sind. Du kannst bei diesem Label einen Mechanismus einbauen, der prüft, ob neue Noten geladen werden sollen:

Code:
ON PLAY(3) GOSUB ReLoadSound

' ....
' Code

ReLoadSound:
If PlaySound Then Play "...."



PlaySound ist dabei eine Variable, die solange ungleich null sein muss, solange Sound abgespielt werden soll. Play "..." enthält die Noten, die gespielt werden sollen. Beachte, dass hier nicht all zu viele Noten stehen sollten, wenn die Melodie schnell abgebrochen werden soll.
Wenn du auf längere Melodien Angewiesen bist, kannst du das hier machen:

Code:
...

ReLoadSound:
If PlaySound Then
  Select Case PlaySound
  CASE 1
    Play "Melodieteil 1"
    PlaySound = PlaySoudn + 1
  CASE 2
    Play "Melodieteil 2"
    PlaySound = PlaySound + 1
  ....
  CASE ...
    PlaySound = 1
    Play "letzter Melodieteil"
   END SELECT
END IF




Hoffe, das hilft dir.
Viel Spaß damit.


Have a nice day
Ciao
_________________
fully biological degradable

Once, the big wave arrives, you've got two ways, you can go:
Either, you ride it, or you don't do.
But, if you don't ride, you'll never know wether you'd have gone wet.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Allgemeine Fragen zu QBasic. Alle Zeiten sind GMT + 1 Stunde
Seite 1 von 1

 
Gehe zu:  
Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.

 Impressum :: Datenschutz