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 examples. 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 robinparmar.com