On 11/11/2016 09:39 AM, Lorenzo Sutton wrote:
Hi all,
Hi Lorenzo,
Thanks for brining this up.
[..]
So, coming to the freewheel point. Wouldn't it be
great if 'all jack
audio' software were freewheel-ready, so that if I activate a switch,
all applications enter freewheel mode and when I activate recording in
my favourite DAW, connected to some of my favourite (standalone!)
There are a couple of jack applications that do support freewheeling,
other than the big-players that you've mentioned. e.g. Carla.
synths, connected to my favourite sequencer,
everything is recorded
'faster than realtime' in the DAW?
Or also: isn't it startling that in the digital era one should 'record'
stuff internally in real-time??
What kind of work/burden would becoming freewheel-ready pose on existing
applications?
It depends on the application in question. Can range from trivial to
major-redesign.
When freewheeling the process-callback needs to block until all work is
done. It's no longer realtime, so file-I/O, locks and similar operations
are allowed. In some cases it can be relatively simple: just add a lock
and wait for the inertial work to complete.
In other cases freewheeling makes no sense (e.g. live-stream or
instrument-tuners). Most of those apps could just switch into a "don't
do anyting" mode and re-sync afterward (good example: zita-ajbridge).
The main problem will be applications that use alsa-midi to communicate
with external synths. freewheeling needs jack-midi.
I do can see some cases where this just wouldn't
work or might not even
be desirable: for example Pure Data and similar software which by
definition is realtime.
I don't think Pd is inherently linked to wall-clock, but you might be
right: the devil is the detail.
On the upside, DSP that is designed for LV2 gets this free house: the
LV2 worker-thread automatically becomes in-sync when freewheeling.
Hopefully this can start some (civilized!) debate on
the topic and it
also includes other topics such as (creative) workflow, etc.
I suggest to file feature requests specifically for projects that you
care about.
One point that I also deem important is that even if some app cannot or
will not support freewheel processing, it should at least not get in the
way of other jack apps doing so.
ciao,
robin