Forum: Mikrocontroller und Digitale Elektronik Mididatei - Befehl 2C


von Sam .. (sam1994)


Lesenswert?

Hallo

Ich schreibe gerade ein Programm, das Mididateien in ein eigenes Format 
konvertiert. Viele Midi-Dateien werden schon erfolgreich analysiert, bei 
manchen stößt es auf Werte, die eigentlich nicht erlaubt sind. Ich 
berufe mich bei den Befehlen auf diese Seite: 
http://www.sonicspot.com/guide/midifiles.html
Kleines Beispiel aus einer Mididatei, die ich nicht verstehe:
1
FF 03 0A 42 61 63 6B 67 72 6F 75 6E 64 //Trackname: "Background"
Trackname: FF 03
Länge: 0A
Rest: ASCII-Text
1
00 //Deltatime 0
1
C0 2B //Program Change
1
00 //Deltatime 0
1
B0 07 78 //Controller Main Volume
1
00 //Deltatime 0
1
90 2B 64 //Note On
1
1E //Deltatime 1E

Was soll das für ein Befehl sein (2C)?
1
2C 64 1E 30 64 1E 31 64 1E 37 64 1E 2C 00

Das MSB ist nicht gesetzt also ist es eigentlich kein Befehl. Aber in 
der Mididatei dürfen doch auch nicht einfach Daten sein. An dieser 
Stelle bleibt mein Programm hängen. Stimmt meine Analyse nicht?

von Rene B. (themason) Benutzerseite


Lesenswert?

Ich weiß es nicht genau, aber könnte es sein das sich die 2C auf die 90 
beziehen ?
Es gibt in der MIDI-Spezifikation ja noch die möglichkeit das wenn Daten 
ohne Befehl kommen diese sich auf den vorangegangenen Befehl beziehen.
So würde z.b. aus 90 2b 40 2c 30 ein 90 2b 40 90 2c 30 gemacht.
Ich bin da auch schon drüber gestolopert weil mein Master-Keyboard mir 
schonmal sowas geschickt hat und meine MIDI-Statemachine damit nix 
anfangen konnte und dann geguckt hat wie nen kaputtes Auto :-)

von Sam .. (sam1994)


Lesenswert?

Dankeschön! Das war der entscheidene Tipp. Der Konverter läuft jetzt 
ohne Probleme.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.