Script: Midi Device abfragen - wie?

Hi liebe Community,

ich habe hier ein kleines Problem.
Über ein Script möchte ich einen definierten Midi Eingang abfragen bzw. auswerten. Wie mache ich das genau?

Bisher habe ich sowas:

procedure OnMidiMessage(Device: integer; Status, Data1, Data2: byte);
if (Status=$B1) and (Data1 = $48) and (Data2= $00) then
chOn1 := true;
if (Status=$B1) and (Data1 = $48) and (Data2= $7F) then
chOn1 := false;

Wie schaffe ich es nun nur eine spezielle Midi-Device abzufragen?

So geht es jedenfalls leider nicht:

 if (Device=1) and (Status=$B1) and (Data1 = $48) and (Data2= $00) then
    chOn1 := true;

Noch jemand eine Idee?

Danke euch!!!

Liebe Grüße

Andreas

Du weißt schon, daß die Numerierung der Devices bei 0 beginnt?

Ja klar - aber ich hab im Log von Mairlist geguckt. Ich meine wirklich Device 1.

Device 0 ist bei mir der Wavetable Synth.

Sobald ich das (Device=1) in die if Abfrage einfüge funktioniert es nicht mehr. Ohne geht es aber halt nicht spezifisch auf Device 1.

Mangels Midi kann ich hier leider nichts nachstellen. Es fällt jedoch auf, daß der Code der Procedures nicht in begin und end; eingeschlossen ist.

Was passiert bei …

procedure OnMidiMessage(Device: integer; Status, Data1, Data2: byte);
begin
  if (Status=$B1) and (Data1 = $48) and (Data2= $00) then
    SystemLog('Midi-Device ist ' + IntToStr(Device));
end;

…?

Nur zur Sicherheit: Für das entsprechende MIDI-Gerät ist unter “Fernsteuerungen” auch eine MIDI-Fernsteuerung eingerichtet, ja? (Sonst geht es nämlich nicht.)

Lieber Torben,
liebe Tondose,

danke für eure Hinweise.

Es funktioniert jetzt. Ich hatte nur einen kleinen Ausschnitt des Codes gepostet. Der Fehler lag leider in einer weiteren Abfrage, die dazu führte, dass nichts mehr ausgegeben wurde.

Mir war nur wichtig zu klären, ob die Abfrage (Device=1) im Code zulässig ist, da es ja keine wirkliche Dokumentation der Skripting-Funktion in Mairlist gibt.

Nochmal danke für eure Hilfe - es funktioniert jetzt einwandfrei.

Liebe Grüße

Andreas

1 Like

Danke für die Aufklärung.

Das ist halt immer a weng’ problematisch, eben aus Gründen des Überblicks. Die Fehler können sonstwo liegen, man sucht sich ein bißchen tot und findet doch nichts.