[chuck-users] Fwd: hotswapping UGens
Kassen
signal.automatique at gmail.com
Wed Jan 21 12:54:59 EST 2009
Dear all,
I just noticed that I accidentally send this to the DEV list instead of the
users one. That was of course a mistake. I hope this didn't bother anyone,
I'll try to pay more attention on the future.
Sorry,
Kas.
---------- Forwarded message ----------
From: Kassen <signal.automatique at gmail.com>
Date: 2009/1/21
Subject: hotswapping UGens
To: ChucK Developer Mailing List <chuck-dev at lists.cs.princeton.edu>
Fellow ChucKists,
Inspired by Scott's explanation of casting I thought I'd try a new trick
that may be quite interesting for livecoding.
first run this file;
-----------------------------
new UGen @=> Foo.instrument;
public class Foo
{
static UGen @instrument;
spork ~attach();
fun void attach()
{
while(1)
{
if(!instrument.isConnectedTo( dac )) instrument => dac;
second => now;
}
}
}
Foo foo;
new Sitar @=> foo.instrument;
//your melody goes here
while(second => now) 1 => (foo.instrument $ Sitar).noteOn;
--------------------------------------------
Then run this to hot-swap the UGen while the original code runs;
--------------
new Shakers @=> Foo.instrument;
-----------------------
Sadly this does need that "attach" function as assignment breaks the link to
the dac. I'm not sure I feel that's desirable behaviour but at least we can
now hotswap UGens without crashing. I don't think I succeeded in that
before.
Yours,
Kas.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.cs.princeton.edu/pipermail/chuck-users/attachments/20090121/f0be22b2/attachment.html>
More information about the chuck-users
mailing list