sync Live and Max perfectly

max's icon

Hi,
I would like to sync my live transport with my max transport, in order to record the midi flux which outs from Max in Live tracks. I tried to use Link, it works but it doesn't seem to be accurate.
Can anyone tell me how I proceed how I can have the best possible synchronisation?
Thanks
M

Source Audio's icon

you can try midi beat clock,
or record midi in max and import into live.
is that Link sync so bad ?



max's icon

Thanks Source Audio
yes i'm not really convinced by Link, but maybe I don't use exactly like I have to (but in a way, i don't see special functions I won't have seen)
no more modern system than midiclock do you think ? in this case, yes I will use this solution

Source Audio's icon

I don't use Live at all, but remember users here complaining about Link sync not working reliably ...
Makes me wonder why do they advertise it as such ?
old good midi clock is what it is, I don't know how tight you need
your max output synced into live recording,
but as I suggested, you can allways record midi in max and import into Live.
You might also check if midi sync is different if max or live acts as clock master.


max's icon

thanks !
my idea is to keep this link between the both softwares - Live is the score which controls my max patch.
The transport and the sequencer are in Max (driven by the transport) and I want to use Live to control my pattrstorage, that organise the change in my different patterns - the timeline provided by Live are easier to make musical scenarios.

Iain Duncan's icon

FWIW, I worked on the same sort of thing for a while and ultimately switched to moving my Max into M4L devices. It is *much* easier to get super tight sync that way. I got it to decent with external Max, but now it's absolutely locked in. There are lots of things about M4L I don't love - the editing workflow is really annoying compared to standard Max, but overall it was worth it. I still prototype in stand-alone Max a lot though.

BTW, the key to getting great sync in M4L is to listen to the plugsync~ object.

Just figured I'd share in case that helps!

👽'tW∆s ∆lienz👽's icon

i would expect the best answer, as Iain wrote above, is to work within Live(using M4L), but just in case it helps:
Link sync, while it doesn't offer specific detailed control over position, can be nicely accurate/tight, but it's most robust when you run it on a completely private-network, ideally something like a personal hotspot with only the devices you require for working in the Link session, logged into that network
(if you run Link, even across applications on the same computer, but you're logged into regular wifi which accesses the larger world-wide-web, there are many different possible network services/interruptions that can cause Link to become unreliable... and also, some routers are setup by default to block specific ports it requires...)


if you're just looking for sync(and can work the Max-side of things around basic start/stop-control: for example, in Max, maybe you don't need to work by a specific point on a timeline tracked within Max alone, and in Live, you can always skip to the position you'd like then restart transport, this is how it would be using Live as the main timeline anyways), then Link can be great especially on a personal-hotspot-type connection(thinking about wireless sync in a performance-context, you would probably want to use a personal hotspot anyways: traveling venue to venue and expecting ideal wifi at every one wouldn't be feasible (also leaves you a bit exposed if you're an artist who becomes well-known for this, then hackers will be able to expect you to be logged into certain networks during specific showtimes.. but maybe i'm being paranoid there :D)).

Source Audio's icon

Ha,ha, RAJA - it is not paranoid at all,
one can flood any kind of wifi network to bring it down,
being private or public, no mater if SSID is hidden or not.

Kids make this kind of things just for fun...
is Live Link not running on ethernet as well ?
would be a missery if one is bound to wifi only.

by the way, midi clock with SPP is just as well able to follow any DAW transport, and jumps in timeline.

max's icon

Thank you for your messages.
unfortunately, also with the WIFI close, link doesn't seem really accurate.
So I decided to use midiclock with one of SourceAudio patch I found on an other post. But it's the version with the transport, because I use a lot of different quantified metro in my patch linked to the transport.

It works well but when I record the midi from Max in Ableton, it's not very accurate either (as you can see on the image attached on which I send some 1/16 notes). it looks like regular, but always with a bit of offset.

Do you know how I could fix that ?

Thanks,
M.


Source Audio's icon

here few infos :

in max midi routed to - from IAC buss has latency of ± 33 𝔲s
same in any DAW, like Digital Performer.


in Live midi output from a track via IAC buss recorded to different track has ± 8.5 ms latency !?!?

latest live version 11.3.12, no audio tracks, effects or plugins.
that delay is same if midi comes from max,
and has nothing to do with midi clock.
next annoying detail is that IAC midi latency in Live is dependent on
audio buffer size - which is completely nonesense.
that 8.5 ms at 128 samples buffer drops to arround 4.6 ms at 32 samples buffer,
but what has audio buffer to do with midi ?

I don't see any options to "fix" that, Live seems not to be able to
use IAC buss properly.
I don't use Live and have no interest in it,
otherwise I would take time to measure it's midi clock, midi to - from
any external sources etc.


mheton's icon

@sourceaudio thank you this is very helpfull

max's icon

yes very helpful, thanks !

ivicam's icon

I don't see any options to "fix" that, Live seems not to be able to
use IAC buss properly.

This is not specific to IAC. Live record latency into audio and midi tracks when monitoring is set to In or Auto. They believe that musicians will naturally play slightly earlier to compensate for the latency. It's a debatable design choice different from any other DAW as far as I know, but it is documented in the Live manual:

If you are using playthrough while recording, you will want to record what you hear — even if, because of latency, this occurs slightly later than what you play.


During playthrough, a DAW must constantly deal with events that should be heard as soon as possible, but which inevitably occurred in the past due to inherent latency and system delays. So a choice must be made: should events be played at the moment they are received (which can re- sult in jitter if that moment happens to occur when the system is busy) or should they be delayed (which adds latency)? Ableton‘s choice is to add latency, as we believe that it is easier for users to adjust to consistent latency than to random jitter.

When monitoring is enabled during recording, Live adds an additional delay to the timestamp of the event based on the buffer size of your audio hardware. This added latency makes it possible to record events to the clip at the time you hear them — not the time you play them.


Do not enable track monitoring if you are recording MIDI while listening directly to a hard- ware device such as an external synthesizer (as opposed to listening to the device‘s audio through Live via the External Instrument device). Likewise, disable track monitoring when recording MIDI data that is generated by another MIDI device (such as a drum machine). When monitoring is enabled, Live adds latency to compensate for playthrough jitter. Therefore, it is important to only enable monitoring when actually playing through.

There are a few solutions:

  1. Monitor directly through another device (e.g. audio interface when recording audio or external synth or Max when recording MIDI)

  2. Record 2 tracks simultaneously, one with monitoring In or Auto and another with monitoring Off and then replace the region in the monitored track with the region from the non-monitored track

  3. Setting -NoMidiMonitorLatencyCompensation to True in Options.txt fixes the issue for MIDI, but not for audio tracks

Iain Duncan's icon

Well today I learned that I don't always play late recording into live, LOL! (Which I always thought was weird because I know damned well I'm a rusher-not-a-dragger, ha.

Thanks for sharing that. I guess I should really reread the whole manual.

ecuk's icon

Although I do recommend reading the entire Live manual — which is well written as these things go — it could take a while to find the information quoted above if you simply read from beginning to end.

For MIDI timing in particular you might want to start near the end with the chapter (or appendix?) entitled ‘MIDI Fact Sheet’.

ivicam's icon

This was finally addressed in Live 12. There is now a track option named "Keep Latency". When the option is off, Live will not record latency.

sousastep's icon

FWIW, Live Link fails when Ableton's tempo has a large discontinuity. If Ableton's tempo always changes smoothly, then Live Link is fine.

My solution is to use phasor~ 1n @lock 1 in a m4l device, and send the phasor to Max via a loopback channel in my audio interface. I vaguely remember my RME FF800 not being able to accurately reproduce the phasor ramp via loopback, but my RME MADIface works perfectly.

Then I can do manual delay compensation in Max by nudging the phasor back a bit

sousastep's icon

Additionally, afaik, the best way to share BPM info with Max from Live is to do so via MIDI

m4l
max

Source Audio's icon

due to live latency detected (at least in < 12 version)

I would not suggest anything else than midi beat clock.

time signature & tempo changes affect other kinds of sync too much.

But if you want to send tempo and tsig as a value , I'd prefer OSC

time signature & tempo changes affect other kinds of sync too much.