Page 1 of 1

Issue with Live discarding duplicate MIDI messages

Posted: Tue Jun 29, 2010 9:27 pm
by Gravis
Ok, so there definitely a problem with either lives implementation of the MIDI protocol, or Max4Live.

Steps to cause problem ...

1: I send a CC96 on channel 1 to live from my Kenton killamix mini, the message i know reaches my mac cause i have MIDI monitor listening for it.
2: Live registers the message as arriving and passes it to max and my patch prints out the value.
3: I send the SAME MESSAGE again from my controller, the MIDI monitor picks up the message, Live picks up the message, but DOES NOT PASS IT TO MAX.

Why not? is it throwing away duplicates?

.... and more importantly how do i solve this?

I've thought that what i could do is receive the CC96 message from the controller, then have my patch send CC97 to itself, this would effectively reset what MAX4LIVE thinks was the last message, allowing my next CC96 message to arrive and be processed. However, if it is LIVE that is strangling the MIDI messages as it considers them 'duplicates' then this will not work.

Can you please help me find a solution/workaround?

Cheers

Re: Issue with Live discarding duplicate MIDI messages

Posted: Tue Jun 29, 2010 11:37 pm
by broc
You could send CC97 from your patch out to external midi and back into Live using IAC.
And also route the controller over IAC into Live (eg. with MidiPipe).

Or simply use MidiPipe to generate an additional CC97 message after receiving and transmitting CC96.

Re: Issue with Live discarding duplicate MIDI messages

Posted: Wed Jun 30, 2010 12:43 am
by luddy
I don't know whether Live filters out duplicate Control Change events, but it's not uncommon for them to be filtered because they are designed to indicate a change in a controller's value, so in their normal use as controller values, duplicates don't add any information. You might try enabling remote control for the controller, map something like "next locator" to a CC96 with a particular value, and see if it is registering the arrival of each message. (I bet it will when the controller is used for remote control).

-Luddy

Re: Issue with Live discarding duplicate MIDI messages

Posted: Mon Jul 12, 2010 12:01 pm
by Gravis
broc wrote:Use MidiPipe to generate an additional CC97 message after receiving and transmitting CC96.
this sounds exactly what i want!

Thanks broc and luddy :)

Re: Issue with Live discarding duplicate MIDI messages

Posted: Mon Jul 12, 2010 1:33 pm
by broc
After investigating the issue I have to add some clarification/correction.
It appears that Live's duplicate filter remembers the last message of each individual controller.
This means that generating CC97 does *not* work to prevent duplicate filtering of CC96 messages.

Actually you need to generate a different value of CC96.

So, if you want to send the same value x of CC96 twice, you need to generate a different value y between them.
To ensure that y is different from x, it may be calculated for example with y = (x+1)%128.

For simplicity one could generate a different value before each message, as shown in this max patch.
(Note that it must be inserted in the midi input stream outside of Live.)

<pre><code>
----------begin_max5_patcher----------
338.3ocySEsSCBCE84xWQSilnw4B2BSm9l9aXVLLZ0UCzRfRDcY+61VfInSk
IlEegl6ombumyoWV6gHKUU7BB9Z7cXDZsGB4fr.nlZDIMpJNIpvQiH4OqV9D
YR8UZdk1Ayqxxwmbj.NCN8XfNukvCJotP7J2RB7m52.KKSUk5Dt10TnAsFR+
RFuVQDBdQyUBlaLlQedX2dKiRcjI2jKhRv2pRXsWmEoiWIjOdeNOVW2PpefQ
BX3RvdbE0ULep+1wXzkPtUVVrMdd1OSFW7DqSLlauBE+O6b5u24vrKrlkF5N
Bm88NO3O04B4dY7fuZaPHMIXuicsd.iNj.eXHgT20CGChwoe7mI2Tr38StBU
YdbquZVpwuOGFuPKjQZgR1gCsGmUBFiK6tojJXYJSrzHA7hc9JNTEYxQLc.J
hdPUDL.EAGTE8+6U6mTT3HTjoXi2ajj.r8K
-----------end_max5_patcher-----------
</code></pre>