alo icon indicating copy to clipboard operation
alo copied to clipboard

Multiple free running instances length sync?

Open mxmilkiib opened this issue 3 years ago • 11 comments

If there are multiple instances of the plugin, all set to free running, can it be so that instances beyond the first get their loop length set by the length of loop the first gets? So that they can all work together?

mxmilkiib avatar Oct 25 '21 18:10 mxmilkiib

That would be cool, but I don't know if it's possible

devcurmudgeon avatar Oct 25 '21 19:10 devcurmudgeon

global variables would allow for this, but they would need very special care due to plugins running in parallel.

falkTX avatar Oct 25 '21 19:10 falkTX

Thanks @falkTX - I'll take a look

devcurmudgeon avatar Oct 25 '21 19:10 devcurmudgeon

My friend said they would buy a Dwarf if this could be possible.

mxmilkiib avatar Nov 01 '21 22:11 mxmilkiib

Why not just take the time from the host? then all looper instances are in sync. Using globals is risky for many reasons and hard to get right, plus thinking more about it because of multi-threaded graph/pedalboard the plugin instance that runs first is undefined..

falkTX avatar Nov 01 '21 22:11 falkTX

I think they wish to have personal agency over leading the music/loop timing in the moment rather than have to follow a predefined tempo.

Could the use of Atoms not work to sync instances? Or even just CV?

mxmilkiib avatar Nov 01 '21 23:11 mxmilkiib

Atoms have nothing to do with that. Connecting some port from one instance to another will make it so that jack always runs one client before the other though. so a dummy audio/cv port can be used

falkTX avatar Nov 01 '21 23:11 falkTX

I thought LV2 plugins can communicate with each other through atoms after their event ports are connected, and that mechanism could be used to inform of something like loop length lead status etc? But if CV ports for triggering things could be possible, then that would be awesome.

mxmilkiib avatar Nov 01 '21 23:11 mxmilkiib

LV2 can communicate as much as the host support such things. Typical hosts only handle the messages they are interested in and discard the rest. The idea of audio/cv port for ensuring order of processing has nothing to do with triggering stuff. only so that on the audio processing graph we ensure one runs before the other (because by being connected one must obviously be done before the other)

falkTX avatar Nov 01 '21 23:11 falkTX

Ok.

A related feature my friend mentioned is that the newer Boss looper device does for free running mode is the ability to create a loop of whatever length on one track then create another loop track with exactly double the length of the first tracks free length loop. A nice advanced things for sure, not sure how what could be setup, just mentioning it sooner rather than later in case it jogs any ideas.

mxmilkiib avatar Nov 03 '21 02:11 mxmilkiib

That would be easy enough to do, i think

devcurmudgeon avatar Nov 03 '21 08:11 devcurmudgeon