On May 26, 2012 10:02:32 AM Fons Adriaensen wrote:
I added variable run-length processing to MusE.
It can break a period into single frame runs if necessary.
If you have a project with a lot of plugins, or power-hungry ones,
where you are forced to use large Jack buffer sizes to make
everything work reasonably well, vari-runs work well.
One reason is because only those plugins whose controls changed will
consume time during your cycle, versus attempting to run Jack at
very low periods.
Thus we can run Jack at 2048 period size and operate a dssi filter or
oscillator control for example, and the result is so smooooth sounding,
responsive, and near-instantaneous that you'd swear you were running 32
period size, because the the runs are broken up into a reasonable near-frame
What about encoder and decoder plugins? Yer switching matrices etc.
Their precise control rates and timestamps must be preserved right?
I guess if LV2 allows hi-speed control rates, it would cure the issue with
some ladspa audio ports being used for hi-speed control, with no way to
know that fact.
So with MusE then, it's /possible/ to have hi-speed control port rates.
Although, I don't know of any ladspa plugin that uses it for say,
encoder/decoder switching matrices, they all use audio ports for that.
Probably more efficient to use audio ports, I suppose.
Caveat: Dssi-vst no likey!
I admit, we needed a special hack to turn off vari-runs for dssi-vst plugins.
But other than the entire dssi-vst, I have not found a ladspa/dssi plugin
or synth yet that doesn't like it. Can you think of any that I might want
to reconsider and test?
Also, we're not out of our woods yet, it was a fun experiment, but we still
need to provide that kind of resolution on our playback, which I admit may
ultimately require fixed run lengths (but still multiple per period), for
interpolated floating point controls (not integer), because if even one
single control is currently on a slope between two points we don't have
much choice but to do the whole plugin period in adjustable fixed
(We do provide a 'Minimum Control Period' user setting as a lower limit
for such and other uses.)
Whaddya you guys think?
Or did I actually just provide arguments /against/ vari-runs? Ha ha...
Linux-audio-dev mailing list