Hi all...I have just uploaded a UB build of 4 new grain ugens. You can get them here to test:
www.realizedsound.net/josh/GrainTests.tar.gz GrainIn - granulate input GrainSin - sin grains GrainFM - FM grains GrainBuf - Buffer based grainsStill need to make the Env to Buffer methods, but give these a try. For the envelope, -1 gives a Hanning window, >= 0 expects a buffer with a windowing signal. numChannels can be 1 or more, and panning is similar to PanAz.
Best, Josh On Nov 30, 2007, at 10:16 AM, Julian Rohrhuber wrote:
I noticed something a little problematic with the grain ugens with Envs... they are NOT cheap. There is basically an EnvGen running for every grain, so as density goes up, so does the CPU by quite a bit. So, I wanted to see what others thought about this:have an envbufnum parameter that : if < 0, uses the built-in window : if >= 0 uses a table in a bufferThen, add a method to Buffer that stores an envelope to a the Buffer;e.g:GrainSin(numChannels, trigger, graindur, freq, pan, envbufnum, mul, add);a = Buffer.fromEnv(Env([0, 1, 0], [1, 1], \sin)); How does this sound?sounds reasonable to me. This is useful also for other cases. Maybe add an instance method sendEnv too.actually it would be better to have one instance method of Env like: discretize { arg n; ... } then you can write Buffer.sendCollection(env. discretize) -- . _______________________________________________ Sc-devel mailing list Sc-devel@xxxxxxxxxxxxxxx http://www.create.ucsb.edu/mailman/listinfo/sc-devel
****************************************** /* Joshua D. Parmenter http://www.realizedsound.net/josh/“Every composer – at all times and in all cases – gives his own interpretation of how modern society is structured: whether actively or passively, consciously or unconsciously, he makes choices in this regard. He may be conservative or he may subject himself to continual renewal; or he may strive for a revolutionary, historical or social palingenesis." - Luigi Nono
*/