Re: [livecode] Programming time in livecoding systems

From: Click Nilson <clicksonnil_at_gmail.com>
Date: Thu, 24 Sep 2009 12:27:00 +0100

Hi Jeff

{
9999.wait;

"I don't use Patterns for timing in SC".post
}.fork

Seriously though, most systems probably support some sort of time-
based scheduling, and some sort of score-based (time-rescalable,
sometimes with an assumption like isochronous beats). What might vary,
and where the individual preferences really start to count, would be
the actual metrical models underlying any given composition or
performance. Hopefully, the languages give enough freedom to build
many different rhythmic models; and since this is live coding, that
might be embodied in assumptions ahead of a performance, or within the
performance itself.

I think the two interesting literatures here are the psychology of
rhythm, and computer music scheduling and representation. (some refs
here: http://www.cogs.susx.ac.uk/users/nc81/courses/cm2/bibliography.html#rhythmperception
  and below on representations in interactive music systems)

On 24 Sep 2009, at 11:18, Jeff Rose wrote:

> I've been experimenting with different programming models for
> livecoding, and currently I'm focused on the way time is modeled and
> passed around in a musical process. I'm wondering if other people
> on the list might have some thoughts and experiences in different
> ways of dealing with time in musical programming?
>
> Looking at what seem to be the popular "platforms" for musical
> generation, it seems like there are pretty much four models of time:
>
> * Chuck style synchronous time, where each thread manages its own
> execution timing using what is basically a sleep mechanism.
>
> * Impromptu's asynchronous callbacks, where function calls are
> scheduled for future execution.
>
> * SuperCollider patterns (Pbind & friends) with "managed time",
> where either a fixed duration or a sequence of durations are used to
> specify execution timing, but the actually scheduling is done for
> you by the stream generation machinery.
>
> * Max/MSP metronome events, where a timer fires an event to start
> triggering notes.
>
> I'm sure you can mix and match these styles in each system and
> language, but in my dabbling in each of these worlds it seems like
> this is the typical way people think of time when using them.
>
> So, what I'm wondering is what are the tradeoffs, advantages and
> disadvantages of these various models? For example, in Impromptu
> you end up scheduling both audio events for musical timing as well
> as program events for execution timing, which gives you full control
> while also making you deal with more complexity. Chuck weaves these
> two together so typically people think of them as the same thing,
> but I think it also makes it harder to change things on the fly.
> Using something like a metronome lets you ignore time completely and
> just focus on generating the right notes, but it also diminishes
> your expressive capabilities.
>
> Can these be mixed? Are there certain styles or instruments that
> are better suited for one model of time over another? Hopefully
> this is something people can share some incite on.
>
> -Jeff
>
> P.S. I'm building a livecoding system in Clojure that sits on
> SuperCollider. It's still in a very experimental stage, but it's
> available here: http://github.com/rosejn/overtone
Received on Thu Sep 24 2009 - 11:30:17 BST

This archive was generated by hypermail 2.4.0 : Sun Aug 20 2023 - 16:02:23 BST