Re: [linux-audio-dev] Musical language / OO design questions...

New Message Reply About this list Date view Thread view Subject view Author view Other groups

Subject: Re: [linux-audio-dev] Musical language / OO design questions...
From: Eli Brandt (eli_AT_gong.music.cs.cmu.edu)
Date: la tammi  22 2000 - 14:17:39 EST


An old one -- I'm skimming backwards through my mail.

Paul Winkler wrote:
> I'm hoping people on the list will comment on the following text.
[...]
> OOP IDEAS for Pysco
> -------------------
>
> I think I can reduce everything (chunks, events) down to subclasses
> of
> a superclass, let's call it Event.
>
> An Event has only 2 required characteristics (stored as attribures):
> 1) start time.
> 2) a list of events nested within this event. This list can, of
> course, contain any number of events (including none).

Cribbing lazily from my working model of temporal structure... you
have events bundling finitely many events; you might also think about
infinitely many.

What's at the topmost level, for example? We can wrap the whole score
in an event with start-time zero -- if it's finite. But maybe you
want to being able to say
        input := score_from_MIDI_port(0)
        output := foo(input)
        MIDI_port_from_score(1) := output

If not, fine, finite scores are a very useful domain and it simplifies
your life. If so, then you might special-case the top level to allow
an infinite stream.

Don't do that, I say. If it can possibly fit into your execution
model, allow streams at arbitrary places in the structure. This lets
you, for example, bundle a few of them together to get a multi-channel
stream. Or generate some streams and then place them using event
times. Programming imperatively, I can't imagine using infinite
streams of infinite streams, so you might punt on that.

-- 
     Eli Brandt  |  eli+@cs.cmu.edu  |  http://www.cs.cmu.edu/~eli/


New Message Reply About this list Date view Thread view Subject view Author view Other groups

This archive was generated by hypermail 2b28 : pe maalis 10 2000 - 07:23:26 EST