MIDI - Velocity triggert verschiedene VSTs

  • Ersteller mingorius
  • Erstellt am
mingorius

mingorius

Registriert
07.12.15
Beiträge
234
Reaktionen
58
Punkte
497
Hallo,

ich will mit einem MIDI-Keyboard verschiedene VST´s ansteuern.

Ich habe z.B. zwei Spuren auf denen jeweils das gleiche VST liegt, aber mit unterschiedlichen Parametern - beide Tracks sind im Recording-Modus.
Jetzt hätte ich es gern, dass z.B. bei einer Velocity von 0-75 der erste Track angesteuert wird und bei höherer Velocity (75-127) der zweite.
Wie kann ich das in Reaper einrichten?

Ich weiss, dass es dafür ein Plugin gibt (Unify), vielleicht kennt hier jemand eine kostenlose Lösung!
 
Von: https://forums.cockos.com/showpost.php?p=351636&postcount=15

1673552500113.png

1673552549645.png



1673552629499.png



Vorhandenen Code mit diesen überschreiben:
Code:
slider1:0<-7,7,1>octave transpose (-7..7)
slider2:0<-11,11,1>note transpose (-11..11)
slider3:0<-127,127,1>velocity add (-127..127)
slider4:1<0,1,1{Pro (add velocity before filter),Post (add velocity after filter)}>velocity add pro/post
slider5:0<0,127,1>min note (0..127)
slider6:127<0,127,1>max note (0..127)
slider7:0<0,127,1>min velocity (0..127)
slider8:127<0,127,1>max velocity (0..127)
//;slider9:0<0,1,1{off (let all pass),on (only ProgramChange)}>ProgramChange filter

// these lines tell Reaper the effect has no audio input/output,
// which enables processing optimizations.
// MIDI-only FX should always have these lines.
in_pin:none
out_pin:none

@init
slider1 < -7 || slider1 > 7 ? slider1 = 0;
slider2 < -11 || slider2 > 11 ? slider2 = 0;
//;slider9 < 0 || slider9 > 1 ? slider9 = 0;

@block
while
(
 midirecv(ts,msg1,msg23) ?
 (
  m = msg1 & $x00F0;
  m == $x0090 || m == $x0080 ? // note on or note off
  (
   note = (msg23 & $x00FF) + slider2 + (slider1*12);
   note |= 0;
   vel = (msg23 / $x100) | 0;
   slider4 == 0 ? ( vel += slider3; vel < 0 ? vel = 0 : vel > 127 ? vel = 127; );
   vel >= slider7 && vel <= slider8 ?
   (
    slider4 == 1 ? ( vel += slider3; vel < 0 ? vel = 0 : vel > 127 ? vel = 127; );
    vel |= 0;
    note >= slider5 && note <= slider6 ? midisend(ts,msg1,note+vel*$x100);
   );
  ) :
  (
//;   slider9 == 0 || m == $x00C0 ?
//;   (
   midisend(ts,msg1,msg23);
//;   );
  );
 );
);

strg+s

1673552724374.png


1673552814417.png


viele liebe Grüße
 
Vielen Dank - genau das, was ich gesucht habe!
 

Ähnliche Themen

tim_heinrich
    • Danke
  • Artikel
Antworten
0
Aufrufe
530
tim_heinrich
tim_heinrich
tim_heinrich
Antworten
0
Aufrufe
957
tim_heinrich
tim_heinrich
RECORDING-Redaktion
  • Artikel
Antworten
2
Aufrufe
891
tim_heinrich
    • Danke
  • Artikel
Antworten
3
Aufrufe
782
tim_heinrich
tim_heinrich
RECORDING-Redaktion
    • Danke
  • Artikel
Antworten
2
Aufrufe
2K
engineer
engineer

Oft gelesene Themen

Zurück
Oben