Re: [ecasound] Constantly visible JACK ports

From: Kai Vehmanen <kvehmanen@email-addr-hidden>
Date: Mon Dec 13 2010 - 23:33:22 EET


On Mon, 13 Dec 2010, Julien Claassen wrote:

> Thanks for the quick response. so there is - at the moment - no short and
> easy or dirty way to acheive something like it?

no, I'm afraid not. This is one shortcoming, for which there aren't even
dirty workarounds available.

> Would you be willing to work on something to allow for permanent connections
> in the future, when time and motivation allow for it? What we be the chance of
> motivation for that? :-)

To be honest, it is very unlikely I will have time for this (unless
there's a major disruption with other projects I'm involved with).

Problem is that this goes to fundamental design choises, as is something
much easier to solve when developing from scratch, rather than
retrofitting to an old design. So in short, it's a huge amount of work
(and most likely something that will grow bigger and bigger as go

The core issue is that once the session data (a chainsetup) is passed to
ecasound's engine, the engine owns the whole data structure and offers
only a very limited interface to modify it during runtime (i.e. operations
that are fully real-time safe and deterministic). For any edits requiring
actions that are not real-time safe (e.g. allocating memory), the session
must be passed back to the non-real-time frontend. Replacing an object is
still easy, but reinitializing dependent parts of the engine can be really
hairy. There is no notion of locking portions of the session and using the
non-real-time threads to edit just those parts. So the only option is to
detach from the engine (cs-disconnect), do the non-realtime edits, and
reattach (cs-connect).

Now this could have been done differently. E.g. SuperCollider and JACK
both demonstrate an architecture where the signal graph can be modified
during runtime (and without sacrifing real-time operation), including
adding/removing objects. But basicly to do this in ecasound, this would
mean a major design overhaul. Supporting reconfigurations in some limited
special cases, would likely be very complicated, buggy and still a lot of

So Ecasound 3.0 material. I'm not sure if I ever get to do this.

Lotusphere 2011
Register now for Lotusphere 2011 and learn how
to connect the dots, take your collaborative environment
to the next level, and enter the era of Social Business.
Ecasound-list mailing list
Received on Tue Dec 14 00:15:03 2010

This archive was generated by hypermail 2.1.8 : Tue Dec 14 2010 - 00:15:03 EET