Konfiguration: MIDI: Lernfunktion: MIDI-Channel / mAirlist Device ID

Hi,

mir fällt da gerade etwas ein: in der mAirlist Konfiguration kann man ja schon sehr komfortabel MIDI-Kommandos lernen, um den Knöpfen eines Controllers mAirlist-Funktionen zuzuweisen. Was ich dabei vermißt habe (oder habe ich das übersehen?): zeigt der Dialog eigentlich auch den MIDI-Channel und / oder die numerische mAirlist Device ID an, auf dem das Kommando erkannt wurde? Ich kann mich nicht daran erinnern, das gesehen zu haben, die Information wäre aber sehr nützlich, wenn man dann scriptgesteuert etwas aus mAirlist an den Controller zurückschicken möchte.

Momentan fällt mir als einzige Lösung, den MIDI-Channel des Gerätes zu ermitteln nur ein, die Dokumentation zu lesen (und da ist die Information oft genug gut versteckt (und bisweilen gar nicht vorhanden)), ein vom Hersteller des Controllers bereitgestelltes Programm zu nutzen (auch nicht immer erhältlich) oder ein Tool wie MIDI-OX einzusetzen (geniales Schweizer Taschenmesser für MIDI am PC, aber nur für den Zweck, den MIDI-Channel herauszufinden, vielleicht doch ein bisschen Overkill ;-)). Für die Device ID gibt es ja immerhin die Möglichkeit, dies im Script in das Log schreiben zu lassen.

Könnte man das ggf. in eine Zeile (Label) unter die erkannten MIDI-Daten setzen, z.B.: “MIDI-Channel: 4, Device-ID: 2”? Eine andere Variante wäre vielleicht, das mit einem Button (z.B. “MIDI-Attribute” oder so ähnlich) in einen Extra-Dialog zu verpacken.

LG

McCavity

Der Konfigurationsdialog der MIDI-Fernsteuerung horcht immer nur auf genau das eine MIDI-In-Gerät, das in der Liste ausgewählt wurde. Die Nachrichten kommen also immer von demselben Gerät.

Von diesem Gerät werden dann alle Nachrichten auf allen Kanälen empfangen und angezeigt. Die Kanalnummer ist nämlich einfach Bestandteil des Status-Wertes, genauer: die zweite Hex-Ziffer des Status-Wertes. Siehe hier: https://de.wikipedia.org/wiki/Musical_Instrument_Digital_Interface#Nachrichtentypen

Was die Nummer des Ausgabegerätes angeht:

Weiterhin ist die Nummerierung der In- und Out-Geräte in Windows völlig willkürlich, und die Nummern müssen nicht identisch sein. Anders gesagt: Hast du mehrere Controller oder MIDI-Geräte im System, dann kann es durchaus sein, dass ein bestimmte Controller das In-Gerät Nr. 2 aber das Out-Gerät Nr. 4 ist.

Die MIDI-Fernsteuerung in mAirList ist im Moment nur eine “Einbahnstraße”, verwendet also nur MIDI-In-Funktionen, kein MIDI-Out. Daher hat sie auch kein ausgehendes MIDI-Gerät zugeordnet, das man irgendwo anzeigen könnte.

Ich habe schon überlegt, ob man der MIDI-Fernsteuerung das beibringen könnte. Dass man also auch ein Out-Gerät festlegt, und scriptseitig dann die MidiOut-Befehle über die Fernsteuerung abwickeln lässt, die das dann automatisch an das passende MidiOut-Gerät schickt.

Also nicht mehr so:

midiOutOpen(4);
midiOut($80,0, 0);

Sondern dann so:

MidiRemote(0).midiOut($80, 0 0);

(Und in der Konfiguration der MIDI-Fernsteuerung ist dann Gerät Nr. 4 als Ausgabegerät festgelegt.)

Das würde die Übernahme eines Scripts auf einen anderen PC mit anderen Gerätenummern sehr erleichtern.

Ja, das wäre in der Tat eine große Erleichterung, denke ich. Ich habe in meiner Liste zum Beispiel allein schon drei MIDI-Geräte (auch meine Externe Soundkarte meldet sich da, das war mir zum Beispiel auch nicht bewußt, daß die sowas kann (habe ich aber auch nie bewußt gebraucht ;-)).

Bei meinem Script hat sich das Herausfinden der richtigen Kombination aus mAirlist Device, MIDI-Channel, MIDI Kommando und Wert als der bei weitem zeitaufwendigste Teil erwiesen, eben weil ich von MIDI (und von Pascal) nur rudimentär Ahnung habe. Da wäre die Lösung, das über eine einheitliche MidiRemote(n) Schnittstelle zu regeln, ein wahrer Segen. :slight_smile:

LG

McCavity