[LAU] JACK Freewheel mode thoughts

Len Ovens len at ovenwerks.net
Fri Nov 11 17:48:55 UTC 2016


On Fri, 11 Nov 2016, Lorenzo Sutton wrote:

> I was recently thinking about how powerful, yet maybe underestimated, the 
> JCAK freewheel mode [1] is.
> As far as I know this is used by Ardour, Qtractor and MusE for export/bounce, 
> 'internally'.
>
> Call me old school, but I like to use various (lots) of audio software on 
> Linux in a modular way. I have stated many times that, in my humble opinion, 
> modularity plus inter-connectability of applications though JACK is, from a 
> creative point of view, a killer feature.
>
> 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!) synths, 
> connected to my favourite sequencer, everything is recorded 'faster than 
> realtime' in the DAW?

As far as I know, most of this should be possible right now. Jack does 
tell all clients when it enters freewheel. Really what is the difference 
from freewheel to real time? Each client still spends the same time 
processing as based on the same SR. Jack just doesn't wait for the 
hardware to catch up at the end of each cycle (or doesn't worry about 
being on time for the HW) but rather starts the next cycle imediately. So 
long as the client is not connected to any HW, there should not need to be 
any changes. Really, all a client needs to do for freewheel is make sure 
it is not connected to HW.

On the practical side, what does freewheel gain? No monitoring is 
possible, and any feewheel process results in changes that in general 
can't be changed without redoing whatever was done in freewheel. So the 
user must listen to the input in real time and then the output in real 
time for QA. So it still limits freewheel to exports or track 
consolidation. The one other possibility I can see is creating a track 
with a synth that requires more horsepower than the CPU provides. So MIDI 
out from DAW to expensive (standalone) synth. Audio from the synth back in 
to DAW to be recorded. In this case the freewheel process might be much 
longer than real time and could even include swap events. making music 
from a program could be done this way too. Though I would think live 
programming is more common.

The way to think of this is to use Audacity for a bit. All effects are 
done outside of real time. Take the audio do the effect then listen. The 
result is destructive. But, there are effects such as (some) noise 
reduction that can be done no other way too. There may be some effect that 
requires knowing the input performance from end to end in order to 
calculate it. So most freewheel stuff would take longer to do rather than 
shorter. It would be possible to even use some process that requires more 
than one pass to complete (don't change anything between passes).

--
Len Ovens
www.ovenwerks.net



More information about the Linux-audio-user mailing list