Deep-Symmetry / carabiner

A loose connector for interacting with Ableton Link
GNU General Public License v2.0
157 stars 14 forks source link

Start/Stop Sync - After 'Start' peer waits for next bar before playing clicks. #21

Closed mungewell closed 2 years ago

mungewell commented 2 years ago

Working to overcome some issues with Desktop MPC. It can peer with a Ableton Link session and correctly gets/sets/tracks tempo, however it is missing the start/stop capabilities. It does output MMC messages, and I wrote a small Python script to receive these and issue the AbletonLink Stop/Start.

I added the appropriate commands to 'Link-to-Py' here: https://github.com/bdyetton/LinkToPy/pull/1

However the bug I am seeing is that the peer (SoundBrenner Metronome app) waits for 2nd bar before starting/producing clicks. This is probably a lack of my know how, rather than a bug... but trying to understand. I have not measured if there is a time delay/offset between MPC and SB once they are both playing, but seems OK at a glance.

When starting a stopped session (ie 'Playing: false') is there something else other than issuing the start-playing message with a time stamp? At present I am using the time stamp from the previous status message/callback, I guess it is better to correct this with the increase in local time since that occurred.

At the moment of pressing the 'play' button, are there other commands which should be sent to make this moment in time the downbeat?

I am using the prebuilt 1.1.6 release on Windows 10. MPC v2.10 running on the same machine. WiFi link to SoundBrenner app on Android.

brunchboy commented 2 years ago

I’m afraid I don’t understand what this has to do with Carabiner. It sounds more like you are asking questions about the nature of the Ableton Link protocol? Those should probably be directed to Ableton. Also, I don’t know what MPC is, nor have I heard of SoundBrenner. However, looking at the Link documentation, it sounds like what SoundBrenner is doing is perfectly valid according to the protocol: “As every application handles start and stop commands according to its capabilities and quantization, it is not expected that applications start or stop at the same time. Rather every application should start according to its quantum and phase.”

So your best bet would be to open an issue or support case with the developers of SoundBrenner, and ask them for a configuration option that responds to Start messages in the middle of a bar, rather than waiting for the next one.

mungewell commented 2 years ago

Thank for the references. Yes, you are correct that it's not so much to do with MPC and SoundBrenner - both closed applications.

On 'starting late'; it seems that this is just the way it is, MPC only issues the MMC Start command when the sequence/song starts and expects MIDI attached equipment to start instantly. Taking MMC and converting to AbletonLink start means that it arrives AFTER the beat which trigger it... SoundBrenner then starts up on the NEXT beat.