Code eines Midi-files

Liebe/-r Experte/-in,
vielen Dank für die kostenlose Online-Auskunft!
Habe FRagen zu Midi-files:

Man kann bei http://staff.dasdeck.de/valentin/midi/mid2txt.php

ein midifile in txt konvertieren und ersieht dabei den Code.
Habe mich damit befasst, einifes ist noch unklar:

  1. z.B. 0 PrCh ch=1 p=68: Was bedeutet die Null vor Prch und ie 68 nach dem p? Wie kommen die Zahlen zustande? Was heisst das ‚p‘?

  2. z.B. 4 Par ch=10 c=6 v=12: was bedeutet das ‚c‘? (Notenwerte werden doch mit ‚n‘ bezeichnet)

  3. z.B. 16388 On ch=10 n=71 v=64: wie kommt die Zahl am Anfang der Linie zustande? wie kann man die errechnen? Ist diese Zahl channel-oder instrumentenabhängig? Würde die Linie mit n=71 mit einer anderen Zahl beginnen, wenn hier z.B. ‚ch=8‘ stünde?

Unten ein selbsterstelltes Beispiel.

Vielen herzlichen Dank im Voraus für die Antworten,
mit freundlichen Grüssen,

Martha Beng

File: vierertest.MID

MFile 1 5 1024
MTrk
0 TimeSig 4/4 24 8
0 KeySig 0 major
0 Tempo 500000
0 Tempo 500000
122881 Meta TrkEnd
TrkEnd
MTrk
0 Meta TrkName „Oboe“
0 PrCh ch=1 p=68
0 Par ch=1 c=7 v=113
1 Par ch=1 c=10 v=88
2 Par ch=1 c=91 v=76
2 Par ch=1 c=12 v=2
3 Par ch=1 c=100 v=0
3 Par ch=1 c=101 v=0
4 Par ch=1 c=6 v=12
5 Par ch=1 c=38 v=0
10 Par ch=1 c=7 v=73
10 On ch=1 n=71 v=76
114 Par ch=1 c=7 v=75
218 Par ch=1 c=7 v=78
322 Par ch=1 c=7 v=81
426 Par ch=1 c=7 v=83
500 Par ch=1 c=7 v=86
604 Par ch=1 c=7 v=89
708 Par ch=1 c=7 v=91
812 Par ch=1 c=7 v=94
916 Par ch=1 c=7 v=97
1020 Par ch=1 c=7 v=99
1124 Par ch=1 c=7 v=102
1228 Par ch=1 c=7 v=105
1332 Par ch=1 c=7 v=107
1436 Par ch=1 c=7 v=110
1540 Par ch=1 c=7 v=113
1549 Par ch=1 c=7 v=113
1653 Par ch=1 c=7 v=111
1757 Par ch=1 c=7 v=109
1861 Par ch=1 c=7 v=108
1965 Par ch=1 c=7 v=106
2069 Par ch=1 c=7 v=104
2173 Par ch=1 c=7 v=103
2277 Par ch=1 c=7 v=101
2381 Par ch=1 c=7 v=99
2485 Par ch=1 c=7 v=98
2589 Par ch=1 c=7 v=96
2693 Par ch=1 c=7 v=94
2797 Par ch=1 c=7 v=93
2901 Par ch=1 c=7 v=91
3005 Par ch=1 c=7 v=89
3109 Par ch=1 c=7 v=88
3213 Par ch=1 c=7 v=86
3317 Par ch=1 c=7 v=84
3421 Par ch=1 c=7 v=83
3525 Par ch=1 c=7 v=81
3629 Par ch=1 c=7 v=79
3733 Par ch=1 c=7 v=78
3837 Par ch=1 c=7 v=76
3941 Par ch=1 c=7 v=74
4014 Off ch=1 n=71 v=0
4045 Par ch=1 c=7 v=73
6113 Par ch=1 c=7 v=113
122881 Meta TrkEnd
TrkEnd
MTrk
0 Meta TrkName „Acoustic Guitar (steel)“
0 PrCh ch=2 p=25
0 Par ch=2 c=7 v=113
1 Par ch=2 c=10 v=72
2 Par ch=2 c=91 v=76
2 Par ch=2 c=12 v=2
3 Par ch=2 c=100 v=0
3 Par ch=2 c=101 v=0
4 Par ch=2 c=6 v=12
5 Par ch=2 c=38 v=0
4100 On ch=2 n=59 v=64
8191 Off ch=2 n=59 v=0
122881 Meta TrkEnd
TrkEnd
MTrk
0 Meta TrkName „Acoustic Grand Piano“
0 PrCh ch=3 p=0
0 Par ch=3 c=7 v=87
0 Par ch=3 c=7 v=87
1 Par ch=3 c=10 v=40
1 Par ch=3 c=10 v=40
2 Par ch=3 c=91 v=76
2 Par ch=3 c=12 v=2
2 Par ch=3 c=91 v=76
2 Par ch=3 c=12 v=2
3 Par ch=3 c=100 v=0
3 Par ch=3 c=101 v=0
3 Par ch=3 c=100 v=0
3 Par ch=3 c=101 v=0
4 Par ch=3 c=6 v=12
4 Par ch=3 c=6 v=12
5 Par ch=3 c=38 v=0
5 Par ch=3 c=38 v=0
8196 On ch=3 n=71 v=64
12287 Off ch=3 n=71 v=0
12292 On ch=3 n=50 v=64
16383 Off ch=3 n=50 v=0
122881 Meta TrkEnd
TrkEnd
MTrk
0 Meta TrkName „Standard Kit“
0 PrCh ch=10 p=0
0 Par ch=10 c=7 v=113
1 Par ch=10 c=10 v=56
2 Par ch=10 c=91 v=76
2 Par ch=10 c=12 v=2
3 Par ch=10 c=100 v=0
3 Par ch=10 c=101 v=0
4 Par ch=10 c=6 v=12
5 Par ch=10 c=38 v=0
16388 On ch=10 n=71 v=64
20479 Off ch=10 n=71 v=0
122881 Meta TrkEnd
TrkEnd

Hallo Martha

0 PrCh ch=1 p=68

bedeutet: Zum Zeitpunkt 0, Program Change für MIDI-Kanal 1 mit Program § 68 (Instrumenten-Wahl) ausführen

0 Par ch=1 c=7 v=113

bedeutet: Zum Zeitpunkt 0, Control Change für MIDI-Kanal 1, Controller © 7 mit Value (v) 113 ausführen (siehe MIDI-Implementations-Chart des Sound-Moduls (Beispiele im Internet)

xxxx

bedeutet: Zum Zeitpunkt xxxx den MIDI-Befehl ausführen (z.B. die Lautstärke verändern)

Gruss Walter Schurter

Hallo Martha,

ich weiß nicht, ob die Konvertierung in TXT der richtige Weg ist, um ein MIDI-File zu analysieren. Ich bin mit der Programmierung von MIDI-Files von der musikalischen Seite her befasst. Dafür gibt es unzählige Programme, mit denen man MIDI-Files erzeugen, bearbeiten, konvertieren usw. kann.

Aus dem Text kann ich nur grob schätzen: Es gibt offenbar 5 Spuren, die genannten Instrumente plus ein Master oder SysEx-Track. Die Zahl vor z.B. PrCh oder Par ist vermutlich die Position im Track also die Zeit. Es gibt unterschiedliche Auflösungen, die dann bezogen auf die Position des Events das Tempo des Songs ergeben. (oder so ähnlich) :wink:

Mit „ch“ wird der MIDI-Kanal angegeben, „PrCh“ ist ein Programm-Change-Befehl, das „p“ steht dann wohl für die jeweilige Programm-Nr… Damit werden pro Kanal die Sounds angewählt. Das „c“ steht für Controller, wieder pro Kanal und die Controller-Nummer dahinter, „v“ müsste Value sein. Das Beispiel: 0 Par ch=10 c=7 v=113 - Pos. = 0, Parameter auf Kanal 10, Controller Nr. 7 (Volume), Wert = 113.

Dein Beispiel: 16388 On ch=10 n=71 v=64 - Pos. = 16388 , On = vermutlich Note-On, Kanal = 10, Tonhöhe 71, Value = 64 (vermutlich Veloxity = Anschlagsstärke) Danach folgt dann Note-Off mit Wert 0 - irgendwann später, je nach Länge bzw. wie viele Controller-Events sich auf der Zeitachse noch dazwischen befinden.

Du solltest Dir mal die Seite http://www.popeye-x.com/tech/midi_spec.htm ansehen. Ist zwar in englisch, aber ich glaube, dass Du dort eher findest, was Dich interessiert.

Alle Angaben wie immer ohne „Gewehr“ :wink:) ich bin (Hobby-) Musiker, kein Programmierer.

Greetz,

hp.

Sehr geehrter Herr Schurter,
vielen herzlichen Dank. Ist sehr hilfreich!

Hallo, Hans-Peter,
erstmal vielen Dank. Habe noch eine FRage zu Pos. 16388: wenn es von 1-2-3-…ginge, wäre es klar, es sind aber unregelmässige Anbstände zwischen den Zahlen (manchmal über 1000). Daher hätte ich sehr gern darauf eine Antwort,
danke herzlich im Voraus,

mit freundlichem Gruss,

Martha Beng

Hallo Martha,

ich nehme mal den letzten Track und versuche mich noch einmal: :wink:

MTrk = offensichtlich Markierung eines neuen Tracks ohne Zeitinformation
0 Meta TrkName „Standard Kit“ = Pos. 0, Name
0 PrCh ch=10 p=0 = Pos. 0, Program-Change-Befehl, Kanal 10, Wert 0
0 Par ch=10 c=7 v=113 = Pos. 0, Kanal 10, Controller 7, Wert 113
1 Par ch=10 c=10 v=56 = wie oben nur andere Controller und Werte
2 Par ch=10 c=91 v=76 = ./.
2 Par ch=10 c=12 v=2 = ./.
3 Par ch=10 c=100 v=0 = ./.
3 Par ch=10 c=101 v=0 = ./.
4 Par ch=10 c=6 v=12 = ./.
5 Par ch=10 c=38 v=0 = ./.
16388 On ch=10 n=71 v=64 = Pos., Note-On, Tonhöhe, Anschlagstärke
20479 Off ch=10 n=71 v=0 = wie oben, nur Note-Off
122881 Meta TrkEnd = Offensichtlich das Ende des Tracks auf der Zeitschiene
TrkEnd = Trackende als Markierung, bevor die Informationen für einen neuen Track kommen können. (wieder beginnend bei 0)

Hope that helps…

hp.

1 Like

Hallo, Martha,

ich könnte auch nur raten, bei den Programmchanges könnte der erste Parameter die Bank sein, wegen der Adressierung sind oft 64 oder 128 Sounds in einer Bank gebündelt. Die Nummerierung beginnt in der Regel bei 0.

Was die anderen Einträge bedeuten, weiß ich leider auch nicht.

LG
Peter

Liebe/-r Experte/-in,
vielen Dank für die kostenlose Online-Auskunft!
Habe FRagen zu Midi-files:

Man kann bei http://staff.dasdeck.de/valentin/midi/mid2txt.php

ein midifile in txt konvertieren und ersieht dabei den Code.
Habe mich damit befasst, einifes ist noch unklar:

  1. z.B. 0 PrCh ch=1 p=68: Was bedeutet die Null vor Prch und
    ie 68 nach dem p? Wie kommen die Zahlen zustande? Was heisst
    das ‚p‘?

Hallo!
Ich weiß zwar nicht wofür Du sowas braucht und wozu das gut sein soll, aber:

zu 3) Die Zahlen am Anfang jeder Zeile müßten der Timecode sein, also die Zeitangabe wann das Event im Song dran ist.

zu 1) Das p ist offenbar der Bezeichner des Programmwechsel-Befehls. Hier wird das Programm Nr. 68 aufgerufen.

zu 2) Das c muß die Controller-Nummer bezeichnen. Also 7 für Lautstärke, 10 für Panorama, 91 für Hall, 93 für Chorus usw.

Gruß
Andreas

Hallo, Hans-Peter,
vielen Dank, letzte FRage: wie wird die Position ermittelt? Wie kommt die Zahl zu Stande?
Danke herzlich im Voraus,

Martha Beng

Hallo, da kann ich auch nicht weiterhelfen, soweit habe ich mich damit noch nicht befasst, weil das noch nicht gebraucht habe. Tut mir Leid. Gruß Bernd

Hallo Martha,

dank Google sind wir jetzt beide schlauer… :wink:

Das ist offenbar der sog. Timestamp-Wert. Wie ich schon grob ansprach, der Punkt „des Erscheinens“ eines Events auf der Zeitachse.

Habe eine Quelle gefunden, mit der Du vielleicht weiter kommst. (als Du willst…?)

http://www.camx.de/kurs_kap5.html

Greetz,

Hi!

Puhhh, ich kenne mich mit dieser MIDI-Darstellung nicht wirklich aus!

Die Ziffern davor scheinen Adressen/Zeitangaben zu sein. C KÖNNTE die Tastennummer sein…

Sorry, da kann ich nur raten :frowning:

Gruß

Florian

  1. z.B. 0 PrCh ch=1 p=68: Was bedeutet die Null vor Prch und ie 68 nach dem p? Wie kommen die Zahlen zustande? Was heisst das ‚p‘?

Hi, was die „0“ bedeuten kann ist mir selbst gerade nicht klar. Das „p“ würde ich als „Programm/Instrument“ interpretieren.

  1. z.B. 4 Par ch=10 c=6 v=12: was bedeutet das ‚c‘? (Notenwerte werden doch mit ‚n‘ bezeichnet)

„c“ ist die Controllenummer. siehe auch hier: http://www.soundplanet-studios.de/midi/cntrmng.htm und http://de.wikipedia.org/wiki/Musical_Instrument_Digi…
„v“ ist somit die Value=Wert.

  1. z.B. 16388 On ch=10 n=71 v=64: wie kommt die Zahl am Anfang der Linie zustande? wie kann man die errechnen? Ist diese Zahl channel-oder instrumentenabhängig? Würde die Linie mit n=71 mit einer anderen Zahl beginnen, wenn hier z.B. ‚ch=8‘ stünde?

da kann ich Dir leider nicht weiterhelfen.
grüsse :smile:

Vorschlag: Stelle Deine Fragen doch bitte an den Verfasser der Weichware, Valentin Schmidt! Dafür existiert dort sogar ein Web-Formular.

MfG

Liebe/-r Experte/-in,
vielen Dank für die kostenlose Online-Auskunft!
Habe FRagen zu Midi-files:

Man kann bei http://staff.dasdeck.de/valentin/midi/mid2txt.php

ein midifile in txt konvertieren und ersieht dabei den Code.
Habe mich damit befasst, einifes ist noch unklar:

Sage doch bitte direkt, wenn du nicht weiter weisst!
Mfg.

Hallo, Hans-Peter,

vielen herzlichen Dank!

Mit freundlichem GRuss,
Martha Beng

Hallo Martha,

gern - kannst Du mir vielleicht auch eine Frage beantworten?

Mich interessiert, wofür Du die MIDI-Files analysierst. Ist das für ein Informatik-Studium?

Greetz,

hp.

Hallo, Hans-Peter,
nein, nicht für ein Studium. Wieso? Ist das Stoff auf Universitätsniveau?

Greetz,
Martha

Hallo Martha.

ich weiß es nicht, es war nur das einzige, was mir spontan eingefallen ist. Und verrätst Du mir Dein „Geheimnis“?

So long,

hp.

Hallo, Hans-Peter,
das einzige Geheimnis ist, dass ich bei einem Midifile den Mambo-rhythmus versuche, ‚herauszulesen‘, ob man rhythmen aus Midis lesen kann.

Mit freundlichen Grüssen,

Martha