[chuck-users] global UGen effects processing

Graham Coleman gc at gehennom.net
Sun Sep 24 13:05:32 EDT 2006


Chuck architects,

In some cases, you may wish to filter sounds originating in several
shreds. For example, dynamics processing, or just to provide a dramatic
effect.

I attempted to do this using a global HPF defined as a static variable,
but it doesn't quite work the way it seems it should. I also figured out
how to make it work as expected.

The class in superfilt.ck:

public class SuperFilt {
  static HPF @ highPass;
}

new HPF @=> SuperFilt.highPass; //instantiate
SuperFilt.highPass => dac; //connect to dac

The test class, superfilt-test.ck:

StifKarp inst => SuperFilt.highPass; //connect to filter
SuperFilt.highPass.gain( 0.4 );
SuperFilt.highPass.freq( 1000 );

while ( true ) {
    std.mtof(std.rand2(10,70))=>inst.freq; //random note
    inst.noteOn( 0.5 );
    200::ms => now;
}

As I was writing this post, I figured out how to fix it.
Connect the filter to the dac in the instrument shred:

StifKarp inst => SuperFilt.highPass => dac; //connect to filter & dac

And things seem to work fine. But wierd. Maybe the ticking or copying is
per-shred?

best,

Graham


More information about the chuck-users mailing list