[chuck-users] Simple envelope follower, power-level checker, etc.

Perry R Cook prc at CS.Princeton.EDU
Thu Sep 28 18:45:59 EDT 2006

Hi all.  I keep meaning to post to this list about the
under-exploited feature that all unit generators have,
in that you can cause their inputs to multiply rather
than add.  As an example, here's a simple power envelope
follower that doesn't require sample-level chuck
intervention.  A gain UG is used to square the
incoming A/D signal (try it on your built-in mic),
then a OnePole UG is used as a "leaky integrator"
to keep a running estimate of the signal power.
The main loop wakes up each 100 ms and checks the
power, and prints out a message if it's over a
certain level.  You might need to change the
threshold, but you get the idea.


adc => gain g => OnePole p => blackhole;
adc => g;

3 => g.op;
0.9999 => p.pole;

while (1)       {
     0.1 :: second => now;
//    <<< p.last() >>>;
     if (p.last() > 0.2) <<< "BANG!!" >>>;

More information about the chuck-users mailing list