Es ist vollbracht! Danke Dir Solger! Dank der super lehrreichen Links ist etwas brauchbares dabei herausgekommen. Der unten angehängte Text macht aus einem Controlchange Befehl mit der #23 einen MIDI Noteon und Noteoff Befehl. Eine super Sache, wenn man als Gitarrist mal wieder Modes üben möchte und dazu einfach einen Drone braucht, über den man improvisieren möchte.
Man kann das sicher noch erweitern, aber mir reicht mir erstmal (für den Moment). Einige kurze Kommentare zur Funktion des Codes: Am Anfang der While schleife werden MIDI Daten gelesen. Wenn Daten da sind, wird der Code ausgeführt; ansonsten passiert nichts. Dann folgt eine if Abfrage nach den MIDI Daten, die mein MIDI Board versendet. Wenn die Bedingung <true> ist, dann versendet er den noteon befehl. Sonst den Noteoff.
desc:MIDI LESEN
//tags: MIDI lesen Test
//author: Chris
slider1:0<0,15,1> MIDI Kanal
slider2:0<0,127,1>Control Change Eingang
slider3:0<0,256,1>Status Byte
@init
noteon = $x90;
noteoff = $x80;
pitch = $x2A;
volume = $x40;
@block
while
(midirecv(mpos, msg1, msg2,msg3))
(
statusbyte = msg1 & $xF0;
midikanal = (msg1 & $x0F)+1;
controlchange = msg2;
statusbyte == 176 && msg2 == 23 && msg3 == $x7F ?
(
midisend(mpos,noteon , pitch,volume)) :
(
midisend(mpos, noteoff , pitch, $x00);
);
slider1 = midikanal;
slider2 = controlchange;
slider3 = statusbyte;
);
|