Midi-Programm schreiben (Grundausführungen &so)

Fragen zu Grafik- & Soundproblemen und zur Spieleprogrammierung haben hier ihren Platz.
Benutzeravatar
bobobo
jaAdmin
Beiträge: 3873
Registriert: 13.09.2004 17:48
Kontaktdaten:

Re: Midi-Programm schreiben (Grundausführungen &so)

Beitrag von bobobo »

hmm

fang mal mit sowas an

Code: Alles auswählen

Enumeration
#file
#Win
#out
#font
EndEnumeration

midifile.s=OpenFileRequester("Midi","*.mid","Text (*.mid)|*.mid||Alle Dateien (*.*)|*.*",1)

If midifile
  LoadFont(#Font,"courier new",10)
  OpenWindow(#win,0,0,500,500,"Midifile",#PB_Window_SystemMenu|#PB_Window_ScreenCentered)
  SetGadgetFont(#PB_Any,FontID(#font))
  EditorGadget(#out,0,0,500,500)
  AddGadgetItem(#out,-1,midifile)
  ReadFile(#file,midifile)

  While Eof(#file)=0
    out.s+ Right("0"+Hex(ReadByte(#file)),2)+" "
    o+1 ;counter
    If o=16 ; 16 Werte reichen
      l+1 ; zeile inkrement
      ll.s=Right("000"+Str(l),4)+" : " ; zeilenangabe formatieren
      AddGadgetItem(#out,-1,ll+out) ; Ausgabe
      out="" ; ausgabe resetten
      o=0    ; counter resetten
    EndIf
  Wend
  ;Rest auch anzeigen
  l+1
  ll.s=Right("000"+Str(l),4)+" : "
  AddGadgetItem(#out,-1,ll+out)
  CloseFile(#file)
Repeat
Until WaitWindowEvent()=#PB_Event_CloseWindow
EndIf
End
‮pb aktuel 6.2 windoof aktuell und sowas von 10
Ich hab Tinnitus im Auge. Ich seh nur Pfeifen.
Oliver90
Beiträge: 7
Registriert: 01.10.2009 18:50

Re: Midi-Programm schreiben (Grundausführungen &so)

Beitrag von Oliver90 »

Hallo bobobo
Danke für den Code,aber irgendwie komme ich nicht weiter,einfach ich bekomme nicht hin,ich versuche nach diese vorlage(Link http://www.larsrichter-online.de/lmids/midformat.htm )die Byts aufteilen, um Notenlänge & Notenhöhe zu bekommen,aber irgendwie will es nicht klappen.Weißt Du vieleicht wie die Byts aufgeteilt werden um Notenlänge & Notenhöhe zu bekommen ?

MfG
Oliver
Benutzeravatar
bobobo
jaAdmin
Beiträge: 3873
Registriert: 13.09.2004 17:48
Kontaktdaten:

Re: Midi-Programm schreiben (Grundausführungen &so)

Beitrag von bobobo »

das steht doch in der Beschreibung eigentlich recht gut drin
der Rest ist Abzählen und Zuweisen der Bytes


im Codearchiv (http://www.purearea.net) gibt es das Demo MidiFileDecoder.pb, welches Mididaten visualisieren
können soll
direktlink für ganz faule , obwohl es sich sicher mal lohnt im Codearchiv rumzugucken.


Für pb version 4.30 solltest Du dort aus

Code: Alles auswählen

Read MidiInstrument$(ct) 

Code: Alles auswählen

Read.s MidiInstrument$(ct) 
machen, ansonsten wirft es Fehler

ömm ... und der OpenFileRequester ist auch "merkwürdig"
dort mal eher

Code: Alles auswählen

MidiFileName$= OpenFileRequester("","*.mid", "Midi |*.mid",  0) 
damit es besser selektiert
‮pb aktuel 6.2 windoof aktuell und sowas von 10
Ich hab Tinnitus im Auge. Ich seh nur Pfeifen.
Oliver90
Beiträge: 7
Registriert: 01.10.2009 18:50

Re: Midi-Programm schreiben (Grundausführungen &so)

Beitrag von Oliver90 »

Hallo bobobo
Die Hex-Datei ist in ordnung,nur die Noten herausfiltern,die machen mir Proleme,Ich habe eine bekannte Midi-Datei und weiß wie die Noten sind,aber nach der Schema von oben benannte Link,bekomme die Noten nicht so,wie die sein sollen.
MfG
Oliver
Benutzeravatar
bobobo
jaAdmin
Beiträge: 3873
Registriert: 13.09.2004 17:48
Kontaktdaten:

Re: Midi-Programm schreiben (Grundausführungen &so)

Beitrag von bobobo »

dann nimm mal das programm aus dem codearchiv (siehe obigen post) und schau dir das mal genau an.

Wenn Du die Änderungen (wie im obigen post geschrieben) berücksichtigst läuft es unter 4.31 oder
auch 4.4beta
‮pb aktuel 6.2 windoof aktuell und sowas von 10
Ich hab Tinnitus im Auge. Ich seh nur Pfeifen.
Antworten