home *** CD-ROM | disk | FTP | other *** search
/ PC World 2007 July & August / PCWorld_2007-07-08_cd.bin / audio-video / reaper / reaper1861-install.exe / Effects / MIDI / midi_velocitycontrol < prev    next >
Text File  |  2007-02-12  |  772b  |  38 lines

  1. desc:MIDI velocity control
  2.  
  3. slider1:1<-16,16,0.1>velocity multiply (-16..16)
  4. slider2:0<-128,128,1>velocity add (-128..128)
  5. slider3:0<0,127,1>min velocity (0..127)
  6. slider4:127<0,127,1>max velocity (0..127)
  7. slider5:0<0,127,1>note range min
  8. slider6:127<0,127,1>note range max
  9.  
  10. @init
  11.  
  12. @slider
  13. slider3<0?slider3=0;
  14. slider4>127?slider4=127;
  15.  
  16. @block
  17. while (
  18. midirecv(ts,msg1,msg23) ? 
  19. (
  20.   m=msg1&240;
  21.   vel=(msg23/256)|0;
  22.   note=msg23&127;
  23.   m == 9*16 && vel > 0 && note >= slider5 && note <= slider6 ? 
  24.   (
  25.     vel = (vel*slider1)+slider2;
  26.     vel<slider3?vel=slider3:vel>slider4?vel=slider4;
  27.     vel|=0;
  28.  
  29.     vel > 0 ? midisend(ts,msg1,note+vel*256); // send note on 
  30.   ) :
  31.   (
  32.     midisend(ts,msg1,msg23); // passthru
  33.   );
  34.   bla=1;
  35. );
  36. );
  37.  
  38.