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_transpose < prev    next >
Text File  |  2007-02-12  |  610b  |  34 lines

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