Saw wrote: ↑24 May 2023, 01:27
Ableton Live was sending MIDI via USB to the Midronome, while Midronome was starting Ableton Live, so I don’t know if maybe the Start/Stop commands sent back to the Midronome could have something to do.
Good news Fernando, I was able to reproduce the issue. I thought it was an actual bug in the Midronome (an endless loop), but it is not! So
still not a single bug found in the code - that's crazy
Also it has nothing to do with the Mute button, it's a combination of a strange Ableton behavior (one could call it a bug), and the Reset mode of the Midronome.
Summary
It's a loop between Ableton and the Midronome over the USB-MIDI.
Code: Select all
Midronome sends Start+stop to Ableton -> Ableton sends Start+stop to the Midronome (-> and so on)
It only happens when you have the "Sync" enabled for both Midronome Commands and Midronome Clock & Start, and only when using Reset mode on the Midronome.
So to prevent it from happening:
- deactivate "Sync" for Midronome Commands in Ableton's Preferences (see screenshot)
- or do not use the Reset Mode (rES setting to OFF on the Midronome)
Analysis & long explanation
Even though there is a loop, this should not happen, and there's a reason why it only happens in Reset Mode. The Reset Mode used to be very "aggressive", simply resetting right away no matter where the clock was. This created issues in some of the receiving devices which did not like being "reset". So now it is softer, it only resets on the next MIDI Clock (which means that at low tempos there can be a tiny delay between the press of the button and the actual reset, max 83ms at 30bpm).
This worked with all devices that had issues with the aggressive reset mode. But my guess is Ableton still gets bothered by the reset, depending on when the MIDI Start message is sent according to the clock.
See the attached screenshot of a MIDI monitor:
- At 10:00:10 Play is pressed -> Midronome sends SPP 0 and Start, then Ableton sends SPP 0 and Start (which are ignored by the Midronome), so all is good
- At 10:00:12 Play is pressed again -> now Midronome sends Stop, then Ableton sends Stop (also ignored), all is still good
- At 10:00:14 Play is pressed again and this time the issue happens: Midronome sends SPP 0 and Start, and Ableton sends SPP 0 and Start (ignored by the Midronome)... followed by Stop, SPP 0, Continue!! (highlighted line on the screenshot)
- These messages get the Midronome to send Stop to Ableton and Start right after, which are then sent by Ableton to the Midronome, and so on... And there we have our loop. To stop it you can simply press the "Ext" button on Ableton.
So why is Ableton sending the extra Stop, SPP 0 and Continue? My guess is that it knows devices receiving the Clock will not like the reset, it wants to make sure they all start together.
Maybe this could be improved on the Midronome by adding extra checks on when the MIDI Start message is sent (since this does not happen every time), but for now unless you or someone else has something to say about this I will close the issue stating in the manual that you cannot use Sync on both Clock&Start and Commands if you are using the Reset mode.