[chuck-users] newbie questions

robin.escalation robin.escalation at acm.org
Sun Sep 2 11:43:25 EDT 2007

I wrote:

> As I add shreds to the VM the output overloads. Is there 
> an easy way of tweaking the master out all at once, without 
> individually editing each shred file?

Kassen replied:

> Sure! Just create a simple file that just holds a line 
> like this;
> .8 => dac.gain;

Doh! Of course. The solution is another shred. Makes complete sense.

I wrote:

> Killing a shred happens abruptly and not always too 
> musically. How can this be done for nicer sonic output in 
> performance?

Kassen replied:

> That would depend on what "nice" means in your context. 
> You can use a ChucK program that will use Machine.
> remove(int id) on the shred in question at some suitable 
> moment?

The problem is finding a suitable moment. For tracks that are pads or
atmospheres, or even for those that are dense with content, killing
the shred sounds horrid. If I make a horrible sound I want it to be
deliberate, not the byproduct of killing a shred. :-)

> What you could do is supply each shred with a envelope 
> before the dac and have that one ramp down before making 
> the shred itself exit, based on some command?

That sounds like a plan.

Adam Tindale wrote:

> fadeout.ck exists I think. You can fadeout all of chuck 
> with this method but it isn't great for smoothly dumping 
> one shred while keeping the others active.

I may be able to learn from this but couldn't find it in the

Kas wrote:

> You make your patch like normal except inbetween the dac 
> and the rest you put a Envelope. Once the shred starts 
> this envelope starts ramping up over some apropriate amount 
> of time, say one bar of your piece. 

I do not fully understand this method, but think that maybe a custom
ugen in place of the envelope could incorporate the controls needed.
If one subclassed Ugen it should be possible to make a unit that
could be put before dac in each shred that needed it. But I cannot
find any examples of creating a class from ugen. I have no idea what
methods signatures etc. are in place.

> In addition to whatever else you do you add a shred that 
> listens for one keyboard (hid) key, take something not 
> normally used like "pause/break". Once this key gets 
> pressed the script tries to Machine.add () the exact file 
> you are writing, if unsuccesfull it resumes listening 
> (this likely means a syntax error), if successfull it 
> will make the same envelope ramp down again using the 
> same period, then removes the parent shred (effectively 
> killing itself as well). 

Wow, you totally lost me. :-)

-- robin

Robin Parmar

More information about the chuck-users mailing list