BginnR hat geschrieben:
ich hätt da mal ne frage:
kann man mit PureBasic Irgendwelchen Ton oder Lieder erstellen?
Versuchs mal mit MIDI...
Der Code ist auch nicht von mir, aber wenn du den Code an den Anfang schreibst:
Code: Alles auswählen
Global hMidiOut
Procedure MidiOutMessage(hMidi,iStatus,iChannel,iData1,iData2)
dwMessage = iStatus | iChannel | (iData1 << 8 ) | (iData2 << 16)
ProcedureReturn midiOutShortMsg_(hMidi, dwMessage) ;
EndProcedure
Procedure SetInstrument(channel,instrument)
MidiOutMessage(hMidiOut, $C0, channel, instrument, 0)
EndProcedure
Procedure PlayNote(channel,Note,velocity)
MidiOutMessage(hMidiOut, $90, channel, Note , velocity)
EndProcedure
Procedure StopNote(channel,Note)
MidiOutMessage(hMidiOut, $90, channel, Note , 0)
EndProcedure
dann kannst du mit Blöcken aus
Code: Alles auswählen
PlayNote(Channel, Note, Velocity)
Delay(500)
StopNote(Channel, Note)
Töne spielen. Das PlayNote() beginnt den Ton, Delay() lässt natürlich warten, bevor StopNote() den Ton wieder beendet.
Der Channel ist eine Integer, man kann nicht mehrere Töne gleichzeitig auf einem Channel spielen, Note ist eine Hexadezimalzahl (passend ist zum Beispiel $42), und Velocity ist ein Wert zwischen 0 und 100 (ich empfehle 80 bis Hundert). Das eingestellte Instrument ist am Anfang 0 (also Klavier), aber über SetInstrumet kann man das Instrument für jeden Channel beliebig umstellen. Tabellen mit Instrumenten findest du, wenn du bei Google "MIDI" eingibst, 25 ist z.B. eine Gitarre.
Ich garantiere nicht, dass alles stimmt, aber ich benutze das für Musik. Viel Glück!