[LAU] Voice-to-drums in general and the Trigger LADSPA in particular

Fons Adriaensen fons at linuxaudio.org
Fri Sep 23 21:15:27 UTC 2011

On Fri, Sep 23, 2011 at 10:40:20PM +0200, Renato wrote:
> On Fri, 23 Sep 2011 09:21:45 +0000
> Fons Adriaensen <fons at linuxaudio.org> wrote:
> > Take SC. I love the way the synthesis engine works and can
> > be controlled using OSC. But, even as a programmer, that is
> > someone used to writing formal instructions and descriptions
> > in a text based format, I have to *fight* the SC language all
> > the time. IMHO it's a mess, and it seems to be designed to
> > allow spectacular one-liners rather than for clarity and
> > consistency. 
> I feel the same way.
> >I'm using it now only to write synthdefs, for
> > all the rest I use Python.
> I'm a noob on this, and I think I don't really get what parts of the SC
> I know are sclang and what scsynth.

That's part of the problem. It is possible to use sclang in
a way that makes the language/engine separation explicit.
But then not much remains of the language.

> Using Python and OSC I guess you can easilly play SynthDefs (because
> these are loaded on the server and anyhow sclang communicates with
> OSC to the server), but do you loose all the other nice stuff like
> Ugens, Tasks, Routines, Patterns? 

Ugens are part of SynthDefs, they are an engine side thing. The others,
Tasks, Routines, Patterns you can do as well in Python, and then at
least you know what's happening. Patterns can be tricky, the easiest
way to do something similar is using Stackless Python.
That assumes you want patterns, most of the time I don't want them
and I'm thinking more in terms of a events on a timeline, or a set
of timelines. That is one thing that sclang does not support very well
- all the attention of its creators/developers is on patterns. You
are more or less forced to think in that way unless you need only
very basic functionality.

BTW, I'm still waiting for a basic description of Tasks, Routines, tne
'.fork' method and whatever else sclang has to offer for concurrent
execution. Are these coroutines, application level threads, system level
threads, or what ? '.fork' suggest it's creating a new process but I'm
pretty sure it doesn't. Etc. Etc. 



More information about the Linux-audio-user mailing list