MuLab Plugin - Composer Sync Issue

Official support for: mutools.com
Post Reply New Topic
RELATED
PRODUCTS

Post

Hi, I noticed this problem with the composer some time ago - it makes it pretty unusable in my workflow. The attached video shows my testing procedure:

Two identical loops - 1st in MuLab Composer, 2nd directly on DAW's audio track playing simultaneously. Switching the phase polarity of 2nd track should null the output - and its true for the first 15 seconds. After that, we can hear the phasing issues - MuLab plays out of sync in both scenarios: Beat Lock "On" and Beat Lock "Off".

It happens not only with audio loops, but also with plugins playing loops and hosted in Mulab Composer: NI Maschine plugin plays the loop perfectly in sync when loaded directly to DAW's instrument track (and out of sync when placed in MuLab Composer Plugin loaded to DAW's instrument track). Also, automation envelopes have some time variations because of that, so triggering timing is not perfect and it can get messy.


Post

I like the idea of adding new features to MuLab, but I'd like to make sure the existing features work as expected.

Post

Bugs always get sorted first ;)
That's why MuLab is rock solid!

Post

Unfortunately it's normal.
Please see this doc page: https://www.mutools.com/info/M9/docs/mu ... -host.html

Thing is that as soon as a loop starts playing in MuLab it uses its own independent clock, of course at the same time tempo as the host DAW. Theoretically if you play 2 loops at the same tempo they will stay in sync infinitely. But due to rounding errors, in host DAW and/or in MuLab (even 64 bit float values are not perfect and induce rounding errors; also host DAW and MuLab may use different calculation methods which can result in a difference in the rounding errors) it might be that when you let play a loop for a longer time then these rounding errors accumulate and start being hearable, as you experience.

These very very small phase differences are musically not a problem most of the time.
If for a techncal reason it is a problem and you really need a phase sync as sample accurate as possible, then best to retrigger MuLab's musical content from the DAW, using note events, as much as possible to keep both clocks synced as tight as possible, because each time a play-trigger note is received MuLab will restart playing from the DAW's position.

Post

PS: About the limitations of IEEE754 float data:
Doing N times A = A + B may not give the same result as doing A = A + (N * B)
This may be one of the possible causes why host and plugin clocks might drift a little bit over a longer time because host and plugin might use different calculation methods.

Post

mutools wrote: Tue Apr 11, 2023 11:07 am
Unfortunately it's normal.
Please see this doc page: https://www.mutools.com/info/M9/docs/mu ... -host.html
That's not good. Are there any plans to make it work like NI Maschine / Akai MPC plugins (in terms of synchronization)? Currently, I use MuLab's sequence players triggered by 3rd party sequencers to modulate instrument parameters, but it's not very convenient.

Post

As i explained, it's mathematically unavoidable. The fact that some plugins might sync well to a host for a longer time may be a coincidence because they coincidentally both use the same calculation methods. When i discovered this unavoidable mathematical imperfection (see my PS example about the IEEE 754 float data type) i gave up on trying to do it perfectly, because it's mathematically impossible, and also because there is another very important aspect regarding syncing: When you start playing from 1.1.0000 and play MIDI notes, then the actual sample accurate points where the note on and off are sent might differ when you start playing from 5.1.000, at the exact same tempo! Again this is not MuLab's fault, the very cause is embedded in the imperfection of the IEEE 754 float data type. I could give you complicated examples (with embedded step sequencers at odd tempi etc, i spent A Lot of time investigating that) where things play right 99.9% of the time but then unexpectedly cause a hanging note due to a mismatch in the sample accurate timing between note ons and note offs. And as playing and combining musical clips & loops is one of the main goals of MuLab, and as *guaranteed* perfect syncing to a host DAW is impossible anyway, i decided to give priority to internal timing integrity and ensure that internal timing is guaranteed to be equal independent from the start position of a clip, and thus that combining clips even from various modules at different points in the module hierarchy will be perfectly compatible wrt note ons and note offs (or any other events). Again, syncing to a host DAW musically works fine. And if in some specific case you really need an even more close-to-sample-accurate timing of musical clips and loops being played in parallel then retrigger them often enough. The only thing i can do, and that's indeed on the wishlist (not on short term though), is to use an 128 bit value for timing, that will decrease rounding errors, but even then it will not be a solution for the possible small differences in sample accurate timing between a host and a plugin. Blame the IEEE 754 float data type.

Post

Ok, thanks for the detailed explanation. It seems that sequence players and plugins placed within the mux directly are not affected, so I thought the problem is with the composer module itself - not with the MuLab.

Post

mutools wrote: Tue Apr 11, 2023 12:56 pm The fact that some plugins might sync well to a host for a longer time may be a coincidence because they coincidentally both use the same calculation methods.
Hi, I’m back with some more thoughts on the issue. I found that all other plugins I use for MIDI and Audio Sequencing and Looping “coincidentally” sync well to my host. Can this sort of “coincidence” be also implemented in MuLab Plugin?

Currently, the only benefit of using MuLab 9 Plugin over the MUX 8 is the ability to map 128 MP Knobs instead of 32. The capability of opening MuLab projects using MuLab 9 Plugin is pretty useless and the Project Bar only takes space.

These are the Audio/MIDI sequencing and Hosting plugins, Groove boxes, Audio Loopers etc. that “coincidentally” sync well to my host:

NI Maschine and Kore, PluginGuru Unify, Audiomodern Loopmix, FXpansion Geist 2, Spectrasonics StylusRMX, Steinberg Groove Agent, Toontrack EZ/Superior Drummer line, Toontrack EZplayer, Reason Rack, Akai MPC, Modalics Beat Scholar, Plogue Bidule, Image Line Minihost Modular and many more…

Post Reply

Return to “MuTools”