Tim

Anmeldungsdatum: 21.10.2005 Beiträge: 13 Wohnort: Bad Homburg
|
Verfasst am: 21.10.2005, 10:57 Titel: PLAY-Befehl |
|
|
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... |
|
Dusky_Joe

Anmeldungsdatum: 07.01.2005 Beiträge: 1007 Wohnort: Regensburg/Oberpfalz
|
Verfasst am: 21.10.2005, 16:59 Titel: |
|
|
Ü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. |
|