Die reaper - js zur midi clock ans laufen bringen :
Hintergrund : Reaper hat mit der midi clock 2 Probleme :
1.) die midi clock und die anderen midi Events sind gekoppelt an die audio Engine, Grundlage des Timings ist das Auslösen des ASIO audio buffers. Man kann in den Systemeinstellungen für midi eine negative verzögerung einstellen, aber um so geringer die audio latenz ist, umso weniger verzögern kann man.
2.) wenn sich reaper im loop modus befindet, wird bei der reaper eigenen midi clock beim zurückspringen an den Anfang die midi Sequenz midi stop / midi Continue ausgegeben. Bei vielen midi Geräten führt das dazu, dass nur jeder zweite Durchlauf des loops gespielt wird, da das midi Continue mit geändertem spp nicht ausgeführt wird. Wenn man einen loop im reaper laufen lässt, und versucht, eine angeschlossene Mpc zu programmieren, so schaltet die MPC nach dem ersten Durchlauf aus dem record in den Play-back modus...
Vor langer langer Zeit hat ein reaper User namens subz ein js plugin geschrieben, das das erste Problem adressiert. Auf dieser codebasis haben dann ein User namens boreg und ich dann die Lösung für das Problem zwei angegangen.
Beide plugins funktionieren, manchmal schafft das eine NE ein wenig bessere latenz, und manchmal das andere.
Nutzung der plugins :
Man schaltet in der midi configuration "Send clock / SPP" für den midi Port ab , an den man die clock senden will. Damit ist die interne clockerzeugung von reaper "aus"
Man legt einen track in reaper an,record disabled, no input, output an den midi port der Geräte, die man syncen will. Dann wird über insert fx entweder das boreg oder das Mink plugin geladen. Fertig. Auf dem track sollte sonst nix sein. Hierfür nutzt man am besten ein track-Template oder ein Project Template .
Installation der plugins : es sind reine Textdateien, die z.b. im notepad bearbeitet u d gespeichert werden können . Beliebiger Name , Extensionkeine , also "Pfannekuchen" oder so.
Speichern tut man diese Dateien im reaper resource path im Unterverzeichnis "effects" oder darunter. Den reaper resource path verrät einem reaper unter dem Menüpunkt " options."
Das Boreg plugin ist im reaper stash, die aktuelle Version vom Mink Plugin ist hier noch einmal :
Code:
desc:simple MIDI clock generator even more Simple V2.1
slider1:0<-32,32,1>Offset
@init
prev_count = 24;
prev_play_state = 0;
clockMsg = $xF8;
startMsg = $xFA;
stopMsg = $xFC;
contMsg = $xFB;
time_div = 24;
running = 0;
pdc_midi = 1.0;
@slider
// time_div = slider3;
offset_start = slider1;
beats_per_sample = (tempo/60)/srate; /* get the beats per sample so we can track the beat position at a given sample */
@block
my_beat_position = beat_position; /* save the current beat_position so we can extrapolate it */
offset = offset_start; /* reset offset from current block start */
(play_state != prev_play_state) ?
(
(play_state == 0) ? midisend(offset,stopMsg,0);
(play_state == 1 || play_state == 5) ? midisend(offset,startMsg,0);
prev_play_state = play_state;
);
@sample
_C = (my_beat_position*time_div)%time_div;
prev_count != _C ?
(
midisend(offset,clockMsg,0);
prev_count = _C ;
);
my_beat_position += beats_per_sample; /* advance the beat with the current known tempo so we are tracking it sample accurate */
offset += 1; /* advance offset so we send the midi notes at the correct time */