[linux-audio-dev] Re: sequencing..Symbolic Control Protocol

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

Subject: [linux-audio-dev] Re: sequencing..Symbolic Control Protocol
From: Eli Brandt (eli_AT_v.gp.cs.cmu.edu)
Date: ke elo    25 1999 - 21:20:05 EDT


est_AT_hyperreal.org wrote:
>
> Eli Brandt discourseth:
> >
> > The way I think, I'd prefer a music sequencer that handles abstract
> > time-structured data and maps it to MIDI.
>
> I'm totally into this approach. I think a canonical textual
> representation is useful as well.
>
> For example, oolaboola (www.hyperreal.org/~est/oolaboola) has complete
> separation of the dsp and the gui. They communicate over a pair of
> pipes using something I call (though it's only in a nascent state)
> Symbolic Control Protocol (scp) which uses Scheme symbolic expressions
> for its lexical structure. Both the protocol and oola's use of it
> need considerable fleshing out. All communications from the gui to
> the dsp are logged to a time-stamped (in its name) sequence file. The
> file has entries like:
>
> (delta 31.010903 (file0 "/music/all-in-your-hands.wav"))
>
> ..meaning 31.010903 seconds after the previous event, load
> "/music/all-in-your-hands.wav" onto player 0.
>
> The oola distribution includes a tiny sequencer program (`seq', which
> is installed into the oola library directory) which can be used to run
> the dsp using one of these log files.
>
> The long-term idea is that scp-speaking resources would have a grammar.
> For example a midi device might have a grammar that includes
>
> (type channel (range 1 16))
> (type key (range 0 127))
> (type velocity (range 0 127))
>
> (event (| (note-on channel key velocity))
> ...)

Interesting. I'm imagining that an scp-using program would accept an
arbitrary scp grammar, and let you edit a stream of events within that
grammar. Hmm, where's the timing, attached to each event?

One point to look at is whether this carries enough semantic
information for the editor to use. The grammar elements (timestamp
blah float) and (stretch blah float) are formally indistinguishable
until you grok the words "timestamp" and "stretch", but an editor
wants to put different UI handles on those floats.

BTW, a different approach to control:
http://cnmat.CNMAT.Berkeley.EDU/OpenSoundControl/
Hierarchical specification of message target; opaque binary message data.
Hard to edit opaque binary data, isn't it?

> It might be worthwhile to restrict such grammars to be regular (in the
> linguistic complexity sense).

Context-free is probably necessary and sufficient. (Lookahead is bad
news for streaming, eh.)

> One obvious question about the scp approach is `why not XML'?

"<foo>bar baz</foo>", "(foo bar baz)", what's the difference, right?
If, as I understand it, XML tags are paren-nested.

-- 
     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:25:53 EST