Eigentlich ist es ganz einfach. Schau dir das Notification Script Template an (in C:\Programme\mAirList 4.x\scripts\notification), das nimmst du als Grundlage. Mach eine Kopie davon und leg sie irgendwo ab (Endung muss .mls sein).
In dem Script findest du verschiedene, beinahe selbst erklärende Prozeduren, die von mAirList zu den entsprechenden Situationen aufgerufen werden. Die kannst du jetzt mit Leben füllen.
Für MIDI-Ausgabe solltest du insbesondere in OnLoad zunächst den Midi-Port für die Ausgabe öffnen:
procedure OnLoad;
begin
MidOutOpen(1);
end;
Die 1 habe ich mal geraten, der passende Wert kann ein anderer sein, wenn du mehrere MidiOut-Geräte im Rechner hast. Wenn du dir nicht sicher ist, kannst du einmal testweise den Befehl “MidiOutListDevices;” benutzen, der gibt dir die Liste der verfügbaren Geräte im Systemprotokoll aus.
Nun geht es los - du kannst zum Beispiel einen MIDI-Befehl herausschicken, wenn ein Player gestartet wird:
procedure OnPlayerStart(PlaylistIndex: integer; PlayerIndex: integer; Item: IPlaylistItem);
begin
if PlayerIndex = 0 then // Player A
MidiOut(1, x, y, z);
end;
Für x, y, z die entsprechenden MIDI-Werte einsetzen. PlaylistIndex (normalerweise 0) und PlayerIndex (0=erster Player usw.) geben an, welcher Player es denn war, der dort gestartet wurde.
Für noch genauere Statusinformationen gibt es OnPlayerStateChange, da bekommt man auch so Sachen wie “wird gerade geladen” (State = psLoading) mit. Die Werte sollten in der Script-Referenz (mAirListScript.chm) stehen.