On Sat, Jul 2, 2016 at 6:24 PM, Thomas Brand <tom@trellis.ch> wrote:
On Sat, July 2, 2016 23:14, Stéphane Letz wrote:
> Faust :  http://faust.grame.fr
>

Faust was the first thing that came to mind indeed! The introduction
paragraphs in the documentation says

-specification language
-describe signal processors from a mathematical point of view
-free from implementation details

But right after that:
-FAUST programs are fully compiled, not interpreted.

I can imagine to bundle FAUST code from different processors
semi-automatically or handcrafted to one unit relatively easily. However i
was thinking in a direction where the units live in a host still as single
units, to be connected in different ways, and the host would dynamically
derive a single math operation of the current graph. I understand this
would include recompilation or some kind of JIT compilation in order to
work. If possible at all, i think Faust would currently be the best fit,
since it already offers some of the fundamental concepts needed to even
think about doing something like this. That would allow large graphs with
almost no context switches (this is pure speculation).

You are cordially invited to provide a faust implementation of 1 or more of the following:

   Ardour
   QTractor
   Bitwig/Live
   Kontakt
   FreqTweak
  
When done, for bonus points, convince the members of the plugin development communities to implement their work in Faust and make the Faust code available for refactoring by the sort of algorithm Stephane referenced in his reply.

There were plugin APIs long before JACK came along. JACK has very little to do with the lower level aspects of how to chain together DSP blobs (aka plugins) in arbitrary ways, and everything to do with how to connect applications together.

There are all kinds of cool ideas for how to do things inside a single process - Faust is one of them. The inter-application stuff is really a different ball of wax. Fons sounds as if he has some interesting insights there, but it would be hard to integrate them into any host that wants to be able to run without JACK.