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.