Seite 1 von 3
MIDI-Sequenz
Verfasst: 04.04.2005 14:11
von Green Snake
hallo
ist es möglich MIDI-Sequenzen abzuspielen?
(habe mir eine beispiel exe angeschut, in der eine midi abgespielet wird, deshalb denke ich, das es möglich ist)
wenn ja, wie?
hat jemand ein beispiel?
hoffe auf antwort
gruss greensnake
Verfasst: 04.04.2005 16:37
von bobobo
Schon durchsucht
Verfasst: 04.04.2005 16:47
von Green Snake
Sorry, codearchiev habe ich schon durchsucht, jedoch nichts gefunden, um eine midi abzuspielen.
(was meinst du dann genau?)
gruss snake
Verfasst: 04.04.2005 17:22
von Lukaso
Sorry geht nicht
Verfasst: 04.04.2005 18:21
von Green Snake
bei mir kommt nichts
das heiss, es kommt die meldung:
PureBasic hat einen fehler festgestellt und muss beendet werden.
probleme senden ?
das kenn ihr sicher
trotzdem danke für eure hilfe
_________________________________________________________
mir währe es irgend wie lieber, das midi in einen wave zu verwandeln
kennt jemand einen link wo man so ein produkt downloaden kann
(muss freeware sein(kann zwar auch demo sein, hauptsache gratis))
Verfasst: 04.04.2005 19:05
von bobobo
dann nimm mal das
Code: Alles auswählen
; German forum: http://robsite.de/php/pureboard/viewtopic.php?t=2786&highlight=
; Author: GPI
; Date: 09. November 2003
;info:Play Midis direct (with mci)
Procedure GetMidiLength(Nb)
a$=Space(#MAX_PATH)
i=mciSendString_("status mid"+Str(Nb)+" length",@a$,#MAX_PATH,0)
ProcedureReturn Val(a$)
EndProcedure
Procedure SetMidiTimeFormatToMS(Nb)
ProcedureReturn mciSendString_("set mid"+Str(Nb)+" time format milliseconds",0,0,0)
EndProcedure
Procedure SetMidiTimeFormatToTick(Nb)
ProcedureReturn mciSendString_("set mid"+Str(Nb)+" time format song pointer",0,0,0)
EndProcedure
Procedure LoadMidi(Nb,file.s)
;i=mciSendString_("open Sequencer!"+Chr(34)+file+Chr(34)+" alias mid"+Str(Nb),0,0,0)
i=mciSendString_("OPEN "+Chr(34)+file+Chr(34)+" Type SEQUENCER ALIAS mid"+Str(Nb),0,0,0)
If i=0
ProcedureReturn #True
Else
ProcedureReturn #False
EndIf
EndProcedure
Procedure PlayMidi(Nb)
i=mciSendString_("play mid"+Str(Nb)+" from "+Str(0),0,0,0)
ProcedureReturn i
EndProcedure
Procedure PlayMidiFrom(Nb,Start,endPos)
i=mciSendString_("play mid"+Str(Nb)+" from "+Str(Start)+" to "+Str(endPos),0,0,0)
ProcedureReturn i
EndProcedure
Procedure PauseMidi(Nb)
i=mciSendString_("pause mid"+Str(Nb),0,0,0)
ProcedureReturn i
EndProcedure
Procedure ResumeMidi(Nb)
i=mciSendString_("resume mid"+Str(Nb),0,0,0)
ProcedureReturn i
EndProcedure
Procedure StopMidi(Nb)
i=mciSendString_("stop mid"+Str(Nb),0,0,0)
ProcedureReturn i
EndProcedure
Procedure FreeMidi(Nb)
i=mciSendString_("close mid"+Str(Nb),0,0,0)
ProcedureReturn i
EndProcedure
Procedure SetMidiTempo(Nb,Tempo)
i=mciSendString_("set mid"+Str(Nb)+" tempo "+Str(Tempo),0,0,0)
ProcedureReturn i
EndProcedure
Procedure GetMidiPosition(Nb)
a$=Space(#MAX_PATH)
i=mciSendString_("status mid"+Str(Nb)+" position",@a$,#MAX_PATH,0)
ProcedureReturn Val(a$)
EndProcedure
Procedure GetMidiTempo(Nb)
a$=Space(#MAX_PATH)
i=mciSendString_("status mid"+Str(Nb)+" Tempo",@a$,#MAX_PATH,0)
ProcedureReturn Val(a$)
EndProcedure
Procedure IsMidiPlaying(Nb)
a$=Space(#MAX_PATH)
i=mciSendString_("status mid"+Str(Nb)+" mode",@a$,#MAX_PATH,0)
If a$="playing"
ProcedureReturn #True
Else
ProcedureReturn #False
EndIf
EndProcedure
Procedure IsMidiPaused(Nb)
a$=Space(#MAX_PATH)
i=mciSendString_("status mid"+Str(Nb)+" mode",@a$,#MAX_PATH,0)
If a$="paused"
ProcedureReturn #True
Else
ProcedureReturn #False
EndIf
EndProcedure
Procedure IsMidiReady(Nb)
a$=Space(#MAX_PATH)
i=mciSendString_("status mid"+Str(Nb)+" mode",@a$,#MAX_PATH,0)
Debug a$
If a$="not ready"
ProcedureReturn #False
Else
ProcedureReturn #True
EndIf
EndProcedure
;- Example
; OpenWindow(1,0,200,10,10,#PB_Window_SystemMenu,"Midi-Test")
;
; LoadMidi(1,"D:\download\vgmusic.com\music\dreamcast\sa_dc_06.mid")
; Debug GetMidiLength(1)
; SetMidiTimeFormatToMS(1)
; Debug GetMidiLength(1)
;
; PlayMidi(1)
;
; old=-1
; Repeat
; If IsMidiPlaying(1)
; event=WindowEvent()
; x=GetMidiPosition(1)/100
; If old<>x
; Debug "+"+Str(x)
; old=x
; EndIf
; Else
; event=WaitWindowEvent()
; EndIf
; Until event=#PB_Event_CloseWindow
; StopMidi(1)
; FreeMidi(1)
;
; ExecutableFormat=Windows
; EOF
MIDI IN WAV
Verfasst: 05.04.2005 14:14
von Green Snake
mir währe es irgend wie lieber, das midi in einen wave zu verwandeln
kennt jemand einen link wo man so ein produkt downloaden kann
(muss freeware sein(kann zwar auch demo sein, hauptsache gratis))
ich komm nochmal darauf zurück gibt es bzw kennt jemand ein programm mit dem ich midi in wav verwandeln kann?
wie oben beschreiben...... es muss freeware sein
(kann auch demo)
ok vielen dank für eure vorherige hilfe.[/quote]
Verfasst: 05.04.2005 20:11
von bobobo
NAJA
Verfasst: 06.04.2005 11:06
von Green Snake
Ich kenne kein einziges Programm, das von WAVE nach MIDI konvertieren kann. Das ist auch ziemlich unmöglich oder sagen wir mal besser noch 1000 mal schwerer als Spracherkennung.
naja, das sieht nicht sehr vielversprechend aus.
habe auch nichts gefunden
werde halt jetzt den midi aufnehmen, wie beschrieben, jedoch hört der sich dan hässlich an.
danke für eure hilfe
Verfasst: 06.04.2005 11:40
von Kaeru Gaman
was denn nun....
midi-to-wav oder wav-to-midi ???
midi to wav ist obereasy, du musst lediglich die ausgabe deiner soundkarte mitschneiden.
das ist besonders dann sinnvoll, wenn du ne super-soundkarte mit klasse synth-chip
zur verfügung hast, dann bringt das midi bei dir ja weit besseren klang als
z.b. auf ner onboard-soundkarte.
wav to midi hingegen ist nahezu unmöglich.