[CM] Basic midi-CM

Rick Taube taube@uiuc.edu
Wed, 15 Jan 2003 12:11:34 -0600


>So to bring on vibrato/modulation controller-1 during a sustained note in a
>process outputting midi note events,  would I have to have a seperate algo
>running to spit out say a linear ramp from say 0-30 every time a certain
>note occured, or some fancy lisp coding in the same process that I'm not
>ready for yet?  Should I keep the controls seperate from the note on/offs?
>How do others deal with this?  Thanks for any hints,
>Ken

you can have one process do multuple outputs or split notes and controls into two processes it doesnt really matter. if you use one process then if you write a series of controllers into the future to effect a current note you should maybe use sprout, ie something like:

(process ...
         for controls = (whatever)
         for k = (the-note)
         output (new midi time (now) keynum k)
         each c in controls as i from 0 by .1 
         sprout (new midimsg time (+ now i) msg c))

if you want to use lisp code you can call output, sprout and each as functions:
 
(process ...
         for controls = (whatevr)
         do
         (output (new midi ...)
         (loop for c in controls as i from 0 by .1
               do (sprout ...)))