[chuck-users] collecting sum signal per-channel of midi-notes

Peter Billam pj at pjb.com.au
Fri May 9 02:03:00 EDT 2014


Greetings.

( Serious Newbie-warning :-)

So: I want to work with MIDI, and implement the Great Missing
Midi-Controller, namely a per-channel overdrive distortion
like the foverdrive,1196 LADSPA plugin. Untested:
  fun float foverdrive_1196(float x, float drive) {
    drive - 1.0 => float drivem1;
    Std.fabs(x) => float fx;
    return   x*(fx + drive)/(x*x + drivem1*fx + 1.0);
  }

This means I have to get the TriOsc of the note not into a dac
  TriOsc t => dac;   // NO!
but into some code which will add it to the per-channel total.
I guess those totals will be stored in perhaps LiSa's  ?
  float cha2drive[16];  // set by nonstandard MIDI controller 87
  LiSa lisa[16];  // the per-channel total signal of all its notes

But at this point I get brain-overload :-(
How do I add the TriOsc sample to its LiSa ?  How do I invoke
foverdrive_1196() on each sample before outputting it to the dac ?
I'm very unsure about "now", too, how it co-ordinates between
code of all the individual notes and the final "=> dac" step,
but still executes all these things scattered throughout the code
in an appropriate order.

Hope this makes sense...
If I get this solved, I should become more self-maintaining...

Thanks,  Regards,  Peter Billam

http://www.pjb.com.au      pj at pjb.com.au     (03) 6278 9410
"Follow the charge, not the particle."  --  Richard Feynman
 from The Theory of Positrons, Physical Review, 1949



More information about the chuck-users mailing list