Ich kenn mich da ja nicht so gut aus wie du. Aber verstehe ich dich richtig, dass SysEX nicht gleich SysEx ist? Also je nach Hersteller gibts doch ganz unterschiedliche Implementierungen ? Und ich meine mich noch zu erinnern, dass du mal gesagt hast, dass z.B. bei Roland das Format (der Dumps? - weiss nicht genau was es war) sogar von Gerät zu Gerät unterschiedlich ist.
Sysex ist, abgesehen vom Rahmenformat, völlig frei definierbar, und das haben die Hersteller leider auch völlig ausgenutzt und sogar innerhalb der eigenen Firma oft total unterschiedliche Formate benutzt, manchmal sogar bei Geräten mit identischer Klangerzeugung.
Roland war der erste Hersteller, der seit dem S-10 Sampler ein standardisiertes Format für alle seine Geräte (auch für die Tochterfirmen wie Boss, Edirol aber auch die nicht mehr dazugehörenden Firmen Cakewalk und Rhodes) eingeführt hat. Hier sind die Formate für Dumps, Requests und Parameter Change immer gleich, da das Ganze auf Adressen basiert, über die Jahre haben sich nur die Anzahl der Bytes für die Geräte IDs erhöht (inzwischen 4).
Das Rahmenformat für Sysex sieht so aus: 0xF0 <HerstellerID><Daten>(<Prüfsumme>)0xF7
Die Hersteller ID wird von der MMA vergeben und ist entweder 1 Byte, oder wenn eine 0, dann 3 Byte, da sich schnell zeigte, daß 1 Byte nicht ausreicht. Beispiele sind 0x41 für Roland, 0x01 für Sequential und DSI, 0x00 0x20 0x29 für Novation.
Hier ist die komplette Liste:
https://www.midi.org/specifications-old/item/manufacturer-id-numbers
Nicht einheitlich, aber oft verwendet werden danach dann Device ID (um mehrere Geräte des gleichen Typs voneinander unterscheiden zu können), bei Roland 17-32, bei allen Anderen, so denn vorhanden, 0-15, da manchmal mit dem MIDI Kanal des Gerätes identisch.
Ebenso oft verwendet wird eine Model ID, um das jeweilige Gerät innerhalb des Herstellers eindeutig identifizieren zu können. Alle anderen Daten sind komplett frei definierbar, sie dürfen allerdings immer nur 7bit sein, da alles bit gesetztem 7. Bit als MIDI Befehl gilt. Dies und neuere Prozessoren führte zu verschiedenen Methoden, um 8, 16 oder mehr Bits aus dem Speicher über 7Bit zu übertragen, das hatte ich an anderer Stelle schonmal im Detail beschrieben und würde hier zu weit führen. Wer will, kann sich das ganze Elend im Sounddiver Programming Manual auf deepsonic.ch anschauen. Da stehen viele Formate drin, inzwischen sind noch weitere Varianten dazugekommen.
Casio hat hier an dieser Stelle damals einen Bock geschossen, indem dort einfach Daten gesendet wurden, die nur im ersten Paket den Header besaßen, danach nimmer, das war natürlich alles Andere als standardkonform.
Yamaha hat nach Jahrzehtem Formatwirrwar seit einiger Zeit ebenfalls ein einheitliches Format für alle seine Geräte eingeführt, das ebenso wie das von Roland auf Adressen basiert.
Bei den FM Synthesizern war Yamaha allerdings Vorreiter des einheitlichen Formats, was wohl auch daran lag, daß diese Geräte nicht in Japan, sondern im Yamaha R&D in London entwickelt wurden (die Abteilung war später bis zur Auflösung für VL-Synths und den VP-1 verantwortlich).
Alle 4OP FM hatten ein einheitliches Format und alle 6OP FM ebenso (VCED und VMEM), zumindest für die Voices, Performances von den späteren Modellen wie TX802 und DX7II dagegen waren inkompatibel zueinander. DX9 und FB01 wichen ebenfalls vom 4OP FM Standardformat ab, und vom Wirrwarr der Geräte ab dem SY77 will ich erst garnicht anfangen.
Da stellt sich ja wohl die Frage, warum sollte sich ein Hersteller das antun?
Tun sie ja meist nicht, wobei es bei diesen Geräten ja um Parameter Changes geht, die wesentlich einfacher zu handhaben sind, aber eben auch ihre Tücken haben können, denn:
- Roland will bei Parameter Changes eine Prüfsumme haben
- Oberheim benutzt bei den Matrix Synthesizern 2 Datenbytes (Quelle, Ziel) bei den Parameterchanges für die Modmatrix
- Wenn mehr als 7 Bit übertragen werden müssen, gibt es verschiedene Formate dafür, die berücksicht werden müßten
Daher können die wenigsten Geräte Sysex. Ausnahmen: Roland A-Pro Serie, die sogar die Prüfsumme unterstützt (ebenso die Vorgänger Edirol PCR-300/500/800). Novation X-Station oder Xiosynth konnten im Controllermodus auch Sysex, da weiß ich aber keine Details über deren Können.
Aktuelle Geräte können vieles per CC oder NRPN einstellen, früher dagegen, also 80er und 90er, ging vieles nur per Sysex, und auch heute noch bei nicht wenigen Geräten - und wenn die Hersteller da keine Doku für Dritte rausgeben (die sehr oft vor Fehlern nur so strotzt oder unvollständig ist) hat man gelitten oder man muß reverse engineering oder Portsniffing betreiben. BTDT.