sync [mtr] with Live in an external max patch (not m4L)
Hello
Sorry if it has been already discussed somewhere in the forum, I don't find the information...
I try without success to loop incoming midi in an external max patch with [mtr] and synchronisation with Live.
I don't want the midi informations to be quantized, but the play/loop/stop has to be quantized..
For now I am here, it's almost working but it's not in sync for a long time...
I am sure it should have an easier way to achieve that...
Any idea is welcomed.
thank you

"For now I am here, it's almost working but it's not in sync for a long time..."
that says it all -- you need some sort of running sync,
otherwise live and max will drift appart.
pressing record-stop button for mtr, from external message
does not necessary give you that same length as for example 1 bar in live.
sync~ is guessing tempo, it is fluctuating,
even smallest difference to calculated length from tempo,
will multiply itself on each loop like a snowball.
this should be 120 bpm:

.....
I am not posting any suggestions, because I don't understand what purpose
all this has, I mean why not record directly into live m4l device.
or use old good midi beat clock.
Il dont use Live because of it's midi channel limitations.
I work with a midi guitar with 6 channnels and i need the process to be outside of Live.
Please it's not the question here ;)
So no idea how to simply sync mtr with Live in ⁰a no-m4L context ?
if you are forced to do so, and imp.midi externals are no options ....
you could use midi beat clock
or OSC based link Max-Live.
If you don't use tempo and time signature changes in live set,
it will be quite reliable.
Would you mind telling more details about your needs ?
like record 6x guitar incl. pitch bend etc into max, synced to Live Transport
then ...
send midi back to live ? again channel separation problem ...
P.S.
I don't know how reliable link package is ?
maybe you could try that instead od sync~ ?
Hello SourceAudio,
thank you again for your help.
I work on a patch I started a long time ago...
it's really working good for my purpose. (despite I don't manage for now to sync mtr)
Since the midi guitar involves a much bigger latency than any other controllers,
after a lot of testing (some years ago..), the best latency I had was to use max outside of Live with a direct monitoring with the RME fireface UC and let the Live monitoring to OFF.
This external patch is a router and I can on the fly choose which string controls which live track.
I tried with imp.midi and I don't remember why I choosed to do not use this solution.
Thank to your advice I decided to try it again with an example patch.
And I have a big latency, and above all a very big number of stuck notes...
I can even say that almost no note off messages are transmitted..
You can see this try here.
In this example patch, the imp.midiin is the midi in of the soundcard,
the 3 imp.midiout are 3 ports created with loopMIDI.
I have no error in the console about port assignation problems...
Maybe I am not using imp.midi as it should.
EDIT : I precise that I have almost no note-off message sent to Live without touching at all the matrixctrl object..For this test, I just choose a config and try to play (in the picture, the strings are the rows and the live tracks are the columns. Here, 2 first strings should be sent to the 1st track, 2 middles string to the 2nd track and the 2 low strings to the 3rd track

For your advice to use midi beat clock or OSC,
I use often tempo change..so as you say, I am not sure it's a solution
I am out of the house for today, and can't have a look at the patch.
It can be true that live and midi latency
(which has nothing to do with midi guitar), is worse
than in any other app.
Unless you reduce audio vector to minimum.
Windows is anyway bad when it comes to midi routing.
So you are not in a very lucky situation.
What guitar to midi device do you use ?
anyway, I asked someone that uses link if it is reliable ....
sort of, beat sync is reflecting bar length much better than
sync~ but without mention of tempo changes.
I use an electric guitar with a gk3 audio to midi converter and an AXON ax100mk2 to send the midi datas, midiguitar is worst for latency due to the audio to midi conversion that has to wait for at least one cycle of the string vibration to recognize the good note. For the lowest note of the lowest string it can be more than 30ms; it's a physical problem. (That's why I always play at the top octave of the handle and repitch lower the notes after.)
anyway =)
I have a bad memory of LINK, i will try again..
Axon - even AX100 is much faster than 1 cycle, you should know that.
I don't remember if one could disable neural detector, which actually
detects pick position on string to avoid waiting for that 1 cycle.
I took a short look at the patch.
You merge all string notes and pitch bends into single channel at output?
....
To the latency.
I would have to test Axon on windows, because I allways used Macs for serious stuff.
Even before Axon, (I used almost all ever existing guit-midi devices)
from shadow over photon, IVL Pitchrider etc
Axon is the fastest and best I ever tried for my purpose.
I use self made hex piezo pickups on both steel and nylon strings.
At the end I settled with AX50 USB, because it is faster
when driving soft synths directly via USB then 5pol midi.
Axon 100 was fast and reliable on the stage with hardware synths.
which makes a big diference compared to softsynths.
Your problem definitely is live.
I don't know if you simply want to play, in which case I would suggest max standalone
app with inserted multichannel vst plugins, IO and SIG vector
down to 64/32.
If all you want is to record into live, then I would do the same,
but try to avoid sending midi into live for real time recording.
I would monitor and record into max.
Import recording into live later, or send as OSC to tracks for recording ???
That because one adapts to timing differences between strings when listenning to the output,
which in case of live and that latency is impossible.
If you make precise tests, one could automate 6 strings midi recording alignment.
So far for now, I am out till tomorrow.
Hello.
I use the midi guitar to control external synths and softsynths.
With guitar output and ax100mk2 midioutput directly plugged in a daw i have a 17ms latency on low E string and 12ms on high E string. I never managed to have a better latency whatever the settings of the hex pickup and axon are...
You are right about imp.midiin problem with legato notes.
I tested this on mac, and if midi notes on same channel follow each other very fast, imp.midi forgets to turn notes off.
one can deal with that, but it would be better if it worked without any "fixes"

is there anything else I can help you about this all ?
while testing imp.midi in live 11 on mac, I found
pure midi latency is quite ok, if one lowers audio buffer size in live.