[chuck-users] other ways to live-code with time

Kassen signal.automatique at gmail.com
Wed Apr 29 09:32:42 EDT 2009


> impromptu is a live-coding environment for OS X that looks very
> interesting, definitely something I need to try out once I've escaped
> the clutches of my end-of-year work.

Yes! It looks great, not in the least because of the utterly amazing
demonstrations Andrew Sorensen gives of it; his videos are
awe-inspiring. Impromptu is one of the most interesting things
exclusive to the OSX platform, IMHO.

> I thought I'd bring it up not only because it's interesting, but
> because its tutorial on "time" contrasts impromptu's asynchronous
> model with ChucK's synchronous one: in impromptu, time passes while
> your code is running.

I agree; quite interesting. What's not so clear to me though is how
this scheduling of notes interacts with Impromptu mainly being a host
for AU plugins. That could become quite relevant, for example if one
could have those run on a separate core or cpu.

> Just think... you could load a WAV file without hanging the VM!

Well... Yes, or compile a more complicated Shred.... but aren't we
talking about a trade between a stuttering sound and delaying some
processes here? Once the CPU resources run out something, somewhere,
will have to give, regardless of the model used. SC users tend to
point out that their server-client model has advantages there but I'm
not sure I see them. Once the cpu runs out that's that.

Maybe loading WAV's is a exception as that doesn't actually cost CPU
as much as the it takes memory and HD bandwith but we can load those
in chunks, I don't have much experience with that though.

> "In the this-is-good version of loop the time sent as an argument to
> loop is exactly the same time as the scheduled callback time. The
> problem with this is that the next note needs to be scheduled at
> exactly the same time that the function is called. The note will
> always be late. The this-is-best version schedules the callback just
> ahead of the time that we want to schedule the note. This gives us
> 4100 samples to execute the code to schedule the note before the note
> is required to sound."
> The last sentence reminds me of the thread a while back about
> benchmarking UGens. :)

Yes, there are certainly similarities there. I do wonder about the
exact interaction between Impromptu and the plugins it uses now.

I'm also still interested in the interaction between ChucK and the
various processes on the host computer that may affect and interact
with it's performance; things like the time needed to load or save a
file, the MIDI cue and so on. For some we have a model for interacting
with it (getting things off the HID input cue) for others they are
planned (loading and saving text files) and in other places this
hasn't yet been given much attention.

While I'm at it; a while ago I posted about timestamps for OSC
messages, particularly because of the NetClock initiative. This hasn't
yet received much debate. Is that because people aren't interested at
all? Is it perhaps unclear why this could be nice? Maybe everybody
agreed with me so much that nobody felt a need to add anything? (hey,
I can dream!).


More information about the chuck-users mailing list