[Jack-Devel] graph simplification using mathematics?

Thomas Brand tom at trellis.ch
Sun Jul 3 05:04:17 CEST 2016

On Sun, July 3, 2016 02:55, Paul Davis wrote:
> On Sat, Jul 2, 2016 at 6:24 PM, Thomas Brand <tom at 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.

agreed, points taken.
Given that a processing graph doesn't change constantly (except in some
special cases), i'd imagine to kind of "freeze" the plugins setup to a
single instance to gain more room per cycle. Maybe this is just a pipe
dream. Having all involved DSP in a declarative text language instead of
BLOBs. Whole DAWs could be built like this. As i said, just a pipe dream

More information about the Jackaudio mailing list