.. Programme in Maschinen-Code ... anwenderfreundlicher, weil neue Programmiersprachen (wie z.B Cobol, PL1 u.v.a) entwickelt ... mußte sich keiner mehr Hexadezimal-Zahlen herumschlagen.
.. 'Programmiersprachen' entwickelt ... die es Anfängern sehr schnell
ermöglicht, ihre MIDI-Anwendungen zu realisieren.
... Gibt es die Software, die sich weltweit durchgesetzt hat ?
Software, die sich weltweit zur Programmierung von MIDI durchgesetzt hätte, ist mir nicht bekannt. Fast jede Software zur Realisierung von MIDI-Anwendungen vereinfacht jedoch das Arbeiten mit MIDI.
Anwendungsspezifisch ist die
Hex-Darstellung manchmal einfacher als Dezimal - wie zB beim Anlegen von SysEx-Files für Sequenzersoftware.
MIDI-OX stellt die Daten im Input-Monitor hexadezimal dar - das ist nicht nachteilig, denn im Output-Monitor werden sie dezimal angezeigt.
Betreffend sich mit Hex herumzuschlagen: die Suche im Hex-Dump eines Cobol-Programmes nach einem Absturz war nie anwenderfreundlich, in Dezimaldarstellung aber unbrauchbar.
Für Anfänger wäre es anstatt MIDI-Anwendungen mit Programmierung zu realisieren, vorher eher wichtig, sich mit den Eigenheiten der jeweils vorhandenen Soft- und Hardware auseinanderzusetzen.
Der Editor des FCB1010 zählt zB für Program-Change von 1 bis 127, aber für ControlChanges von 0 - 127 (Zählung null-relativ, eins-relativ).
Ein Sound "BrightPiano" des Korg-Pa1000 ist lt. Tabelle im Manual mit CC00=121, CC32=5, PC=1 angegeben, daher muß es im Preset des FCB1010 mit Program-Change = 2 (!), CC00=121, CC32=5 eingetragen werden, damit dann auch wirklich das BrightPiano angewählt wird.
Benutzt man aber die Software PSRUTI für das Revoicing, ist für diesen Sound als PC wieder 1 einzugeben, weil diese Software mit PC null-relativ arbeitet - gleiches
gilt für Bedesems Mix-Master, Cakewalk usw.
**
Die Suche nach einer benutzerfreundlichen Programmiersprache für MIDI lohnt sich mE nicht.
Unter
https://www.musikinformatik.uni-mainz.de/schriftenreihe/nr46/Midi-Prog.pdf findet man eine Einführung in die
MIDI-Programmierung mit Q. Da wurde eine damals (2003) moderne funktionale Sprache auf einem höheren Abstraktionsniveau vewendet, die sich nicht mit zahlreichen technischen Details auseinandersetzt. Q-Midi ist für MIDI-Programmierung nicht besser geeignet ist als die erheblich komplizierte
erachtete Programmiersprache C++. Q-Midi ist ein flexibles Werkzeug zur automatisieren Bearbeitung von MIDI-Dateien ist, überbietet aber nicht die Möglichkeiten interaktiver Sequenzer- und Monitor-Programme.
Das Beispiel in
Midi-Prog.pdf zur Normalisierung von Dynamik-Parameter einer MIDI-Datei läßt sich mit Q-Midi eventuell realisieren.
G. Nagler (
info@gnmidi.com) hat dafür mit MIDIVOL v1.4 schon 1995 - vermutlich mit C++ - ein damals kostenloses Programm erstellt, um damit die Lautstärke von
MIDI-Dateien auf einen gemeinsamen Pegel ändern zu können - und das kann es hervorragend.
Die Programmierung von Midi-Applikationen erscheint mir auch mit Frameworks für Anwender von Keyboards mit Begleitautomatik zu aufwendig, weil sich dafür
zahlreiche zT kostenlose Tools anbieten. Manchmal muß ev nachgedacht werden, um deren
Eingabefeldern die richtigen, konkreten Werte (Parameter) zuzuweisen,
damit sie anwendungskonform funktionieren - als MIDI-Programmierung kann man das aber nicht bezeichnen.
**
Beispiel der
Akkordsteuerung im parallelen Threads "Begleitung durch Midi-Foot-Controller":
- Problem FCB1010-Preset kann nur jeweils eine Note senden, benötigt werden aber mehrere Noten --> MIDI-OX erlaubt konvertieren von CC-Werten in Notenwerte
und dafür braucht es kein C-Programm, denn die hinterlegten Akkorde entsprechen pro Preset max fünf Noten zur Akkordsteuerung.
Mit den konvertierten Daten kann die eine Akkorderkennung mit FCB1010-Taster und MIDI-OX ohne zwei gleichzeitig zu bedienende Pedale angesteuert werden, denn es können bis zu fünf Noten durch Konvertierung unterschiedlicher Controller pro Preset gesendet werden.
Damit fällt auch die Beschränkung auf Chord-Erkennungsmode "One Finger", denn damit wären pro Bank 10 unterschiedliche vollgriffige Akkorde möglich.
Beispiel fehlende
Fill-Buttons am Pa1000 mit Korg-Nano-Controll triggern:
- Problem Nano-Control sendet nur Note- und CC-Events, benötigt wird Program-Change, um Fill-Buttons fernzusteuern --> MIDI-OX erlaubt konvertieren von CC-Events zu PrgChg, die über Transport-Taster des Nano steuerbar sind,
Tastenfunktion wird auf Toggle einstellen, denn sonst würde PrgChg zweimal gesendet (Nano sendet CC-Event mit On- und Off-Werten)
Vorteil bei doppelten Tastendruck: Fills des Pa1000 loopt ohne automatische Rückkehr zur aktuellen Style-Variation
etc ....
***
..einen Überblick, was MIDI so steuern kann bekommst du hier
>>
http://midi.teragonaudio.com/<<..
...das alles ist aber aus heutiger Sicht alles alter Kram
Damit vorhandene MIDI-Software kein
" alter Kram" wird, gewährleistet die Version MIDI 2.0 vollständige Abwärtskompatibilität.
Midi 1.0 revolutionierte die Musik seit 40 Jahren und ist die universelle Sprache für Synthesizer, Controller und elektronischen Instrumente.
Midi 2.0 bietet kreativen Entwicklern weitere Möglichkeiten, aber aufgrund der Abwärtskompatibilität kann man weiterhin die vorhandene
Software einsetzen und hoffen, daß sie uns lange erhalten bleibt.
Auf der Suche nach anwenderfreundliche Midi-Programmierung helfen Links - wie
http://midi.teragonaudio.com/ - nicht weiter. Dieser
Link ist ein gehässig abgeänderter Artikel (Midi Technical Fanatics Brain), aber
kein Spiegelbild der ehemaligen Website von Jeff Glatt, der zB mit OS/2-DLL
ein damals einzigartiges Tool zur Entwicklung von OS/2-Apps bereitgestellt hat, womit ua MIDI-Dateien/-Sequenzen problemlos geschrieben/gelesen werden konnten.
Im Link
https://teragonaudio.com/article/What-language-should-I-learn-to-write-audio-plugins.html wird zumindest die
Frage nach einer vorteilhaften Sprache zum schreiben von Audio-Plugins erläutert.
Nach Überlegungen
Frameworks zu verwenden - das sind halbfertige Sammlungen von Komponenten, Funktionen und Anwendungen für schnelle Softwareentwicklung -
wird man wahrscheinlich
Plug-ins in grafischen Umgebung entwerfen und exportieren, um es im bevorzugten Sequenzer verwenden zu können.
Der nächste logische Schritt auf der Abstraktionsebene wäre
C++ - eine Erweiterung der Programmiersprache C (1979 von AT&T).
C++ ermöglicht sowohl die effiziente und maschinennahe Programmierung als auch eine Programmierung auf hohem Abstraktionsniveau.
*
Zur genaueren Diagnose von Problemen mit MIDI-Ein-/Ausgabe wurde vom Musikwissenschaftlichen Institut der Universität Mainz
im Februar 2003 der Einsatz von
MIDI-OX und
Loopback-Devices (Midi-Yoke) empfohlen -->
(
https://www.musikinformatik.uni-mainz.de/schriftenreihe/nr46/Midi-Prog.pdf).
Solange sich dafür nichts besseres, einfacheres, zuverlässigeres bietet, wird dieser "alte Kram" weiterhin gute Dienste leisten!