2009/1/4 Andrew C. Smith
I'm sure there's an easy way to do this, but I'm out of practice. Trying to warm myself back up before the Max5-compatible chuck~ is ready.
I'll attach my code, but the basic problem is that if I hit the SMS twice, the smack spork will change the reverb and gain levels for everything, so that I can't layer voices with different settings. Is there a better way to organize this? Probably. The y-hit is supposed to change the g.gain, while the x-hit changes the rev.mix. Just an experiment with the SMS to impress my friends (they're easily impressed).
If it were me, I'd make a new pair of rev/g in smack(), chuck the voice to it, then unchuck it on the way out. You're making shreds pretty fast so that may not lead to a script you can leave running for a long time, but it'd have the desired effect. On the other hand, if you're limited to the number of voices LiSa has anyway, you may as well make a bank of JCRev attached to Gains with indices that match LiSa's voice numbers, attach LiSa to all of them, and adjust their gains in smack(). Like: JCRev revs[yell.maxVoices()]; Gain gains[yell.maxVoices()]; for(0 => int i; i < revs.size(); i++) { revs[i] => gains[i] => dac; 0 => revs[i].gain; } ... fun void smack() { ... rev_mix => revs[voice1].mix; ... g_gain => gains[voice1].gain; ... 1 => revs[voice1].gain; yell.play(voice1, 1); yell.duration() => now; yell.play(voice1, 0); 0 => revs[voice1].gain; ... } (unless I'm mistaken about how LiSa voices work! I haven't used it in a long time..)
ps: is it possible to switch subscription from digest to regular list-serve? Thanks.
I'm sure it's an option on the page you get to when you submit the "Unsubscribe or edit options" form at the bottom: https://lists.cs.princeton.edu/mailman/listinfo/chuck-users -- Tom Lieber http://AllTom.com/