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
participants (1)
-
Graham Coleman