Wie ist ein MIDIfile bzw Sound-Dump aufgebaut? aus: Synthesizer programmieren - eine Grundsatzidee

sospro

○□○□
Was mich mal interessieren würde, wie ist ein Midifile oder Preset aufgebaut?
Gibt es da Browser oder Editoren für einen PC dafür?
Müsste ja genormt sein, ansonsten können Controler, Sequencer und Klangerzeuger nicht miteinander kommunizieren...
Es gibt ja CC's, Notes und Clock...

Könnte mal jemand ein Beispiel posten?
 
Was mich mal interessieren würde, wie ist ein Midifile oder Preset aufgebaut?
Gibt es da Browser oder Editoren für einen PC dafür?
Müsste ja genormt sein, ansonsten können Controler, Sequencer und Klangerzeuger nicht miteinander kommunizieren...
Es gibt ja CC's, Notes und Clock...

Könnte mal jemand ein Beispiel posten?
Das ist idR ein sogenanntes SysEx File und muss innerhalb des Protokolls in bestimmter Weise aufgebaut werden,

Identifiziert zu Beginn "ich bin jetzt SysEx F0 ich bin kanallos
Dann die nächste Zahl: zB: Firma "Roland" und Modell "P-6 Sampler" (das sind idR Nummern zwischen 0 und 255)
dann kommt ein Block Daten und
das Ende wird dann nochmal abgeschlossen F7

Heißt - du erkennst den Datenblock, daran, dass er mit F0 beginnt und mit F7 endet.
F0 ist 240 als Dezimaler Wert und F7, was 247 entspricht.
Also in einem Dump mit MIDI-OX oder in der DAW kannst du daran so einen Block Daten erkennen, wo deine Sounds drin sind. Einer oder eine Bank.

Das alles ist ein Dump und in Form von einem Sound bzw. einem Block von Sounds zusammengefasst.

Sieht dann so aus (in Hexadezimal)
Dh Zahlen von 0 bis 255.
F0 7F <Geräte-ID:Roland> <06|07> [<Sub-ID#2> [<DATEN DATEN DATEN DATEN>]] F7

System ExclusiveHersteller-IDDatenEOX - End of Exclusive
111100000iiiiiii0xxxxxxx ... 0xxxxxxx11110111
$F0$00-$7F$00-$7F$F7
2400 - 1270 - 127247

Es gibt dafür simple MIDI Anzeigetools wie ShowMidi und in der DAW (außer Ableton) wird dir SysEx auch wirklich angezeigt im sgnt List-Editor.
Das ist dann genau das was hier oben steht.

MIDI setze ich mal als bekannt voraus - sendet normalerweise Noten auf MIDI Kanal 1-16 mit Velocitywert und so weiter.
Das ist also dasselbe wie oben, nur kürzer - SysEx versteht nur genau ein Synthesizer - der Rest ignoriert das.

Auf einem Windows NT oder was man da so nutzt sieht das dann so aus (hässlich, aber geht ja nur um die Zahlen)
Jeder der Blocks ist ein Sound - das ganze nennt man einen Dump - in diesem Falle wohl vom Pro800 -
MIDI OX ist auf Windows das Standard-Tool für MIDI Daten. Auf dem Mac: SysEx. https://www.snoize.com/SysExLibrarian/

sysex.jpg

Beispiel 2:
hier in einer DAW angezeigt.
F0 bedeutet "das ist jetzt

sysex ein sound.png

Herstellerliste

WP hat natürlich schon einiges vorgelegt:
 
Zuletzt bearbeitet:
Was mich mal interessieren würde, wie ist ein Midifile oder Preset aufgebaut?
"genormt" sind natürlich Messages für Noten, Pitchbend, Controller usw: https://de.wikipedia.org/wiki/MIDI#Protokoll
Midi-Events bestehen in der Regel aus einem Status-Byte und einem oder mehreren Datenbytes:

1726126603181.png

Da das erste Bit eines Midi-Bytes den Typ (Status oder Daten) angibt, lassen sich pro Byte nur noch 7 Bit (128 unterschiedliche Werte) codieren.

Für Patches werden in der Regel proprietäre Formate verwendet, dazu dienen die von Moogulator eben erwähnten System Exclusive-Messages: Da ist Anfang und Ende genormt, und was dazwischen kommt, bestimmt der Hersteller des Gerätes. Deshalb kann man natürlich auch keine JP8000 Patches in einen Polybrute laden.
 
Gibt es da Browser oder Editoren dafür?
Da Sysex halt "System exklusiv" ist, müssen Editoren in der Regel für jeden Synth passen programmiert werden. Mit Tools wie ctrlr lassen sich relativ einfach Editoren (Panels) mit grafischer Benutzeroberfläche erstellen.

Zum Browsen könnte man einen Midi-Monitor oder die Eventanzeige jeder DAW verwenden. Aber wirklich benutzerfreundliche generische Darstellungen sind mir jetzt nicht bekannt.
 
Danke!...das habe ich schon mehrmals gelesen, bzw. gehört von.

Gibt es da Browser oder Editoren dafür?

Stimmt, kanäle gibt es ja auch noch...
Ja, 16 Stück - das bedeutet lediglich, dass alles auf einem Kanal jeweils nur die Synths was angeht, die auf diesem empfangen, damit kannst du 16 verschiedene Sounds über 16 Kanäle ansteuern.

Eine Note zB würde dann als Datenblock kommen und so aussehen:


9n Notenwert Velocitywert
also
"9n C4 44"

dh über MIDI laufen 3 Zahlen als Block zum Zeitpunkt, wann das passieren soll über die Leitung.
Ein Controllerwert, zB Cutoff könnte dann so aussehen:

Bn, Adresse-für-Cutoff (zB 74), Der Wert zB 0
"Bn 74 00"
die DAW listet sowas idR einfach als Werte bzw auch bei den Noten direkt als Note, aber in MIDI ist es eine Zahl 0-127, also das unterste C ist 0… oder Controller 0 (ModWheel) auf 0 ist dann einfach Controller 0 mit Wert 0 in der DAW - gern als Balken oder Linienverlauf.


Es gibt auch Befehle mit größeren Werten über 255. zB Bending. Dann sind die Werte größe, der Rest bleibt so.
0 - 16363 dann statt 0-127
 
@Moogulator
wollte da jetzt nicht extra ein Fass für aufmachen, aber danke:)
Dafür ist das Forum da!
Ist aber besser hier - mach dir keine Sorgen, das Forum hat Platz und die Frage ist doch ok.

MIDI kann man natürlich komplett erklären, das ist jetzt schnell und dreckig, nur grob.
MID.Files enthalten faktisch diese Daten.

Besonders speziell mag Clock und Timing sein, da kannst du dir wirklich vorstellen, dass ein Signal alle X Zeiteinheiten kommt - das ist die MIDI Clock. Auch nur so ein Zahlending, was in der DAW aber nicht als Zahl angezeigt wird.
 


Neueste Beiträge

News

Zurück
Oben