View Issue Details

IDProjectCategoryView StatusLast Update
0000804OpenMPTGeneralpublic2016-11-07 23:50
ReporterSaga Musix Assigned To 
PrioritylowSeverityfeatureReproducibilityN/A
Status newResolutionopen 
Product VersionOpenMPT 1.26.02.00 / libopenmpt 0.2-beta17 (upgrade first) 
Summary0000804: OpenMPT as MIDI Clock slave
Description

OpenMPT can now send out MIDI Clock signals, but it would be a nice bonus if it could also sync to a MIDI clock source, e.g. for a live setup with two synced OpenMPT instances or when using another hardware sequencer as a master.

TagsNo tags attached.
Has the bug occurred in previous versions?
Tested code revision (in case you know it)

Activities

Diamond

Diamond

2016-10-24 02:41

reporter   ~0002706

I came here to post this very same feature request. Any progress on this one? I have much more interest now that I own several hardware sequencers and Virtual DJ sends out MIDI clock as well.

Saga Musix

Saga Musix

2016-10-24 11:53

administrator   ~0002707

No, it's actually very complicated to implement this, if it's possible at all. Since the MIDI clock always has 24 ticks per beat, it's difficult to keep a steady clock if any other tick rate is used in the module.

Saga Musix

Saga Musix

2016-10-24 17:37

administrator   ~0002708

For what it's worth, I tried implementing this shortly after posting the request but the result was extremely unsteady.

Diamond

Diamond

2016-10-24 17:50

reporter   ~0002709

Thanks for trying anyway. Maybe you'll be inspired to work around the difficulties at some point in the future. We can always hope.

Saga Musix

Saga Musix

2016-10-24 23:17

administrator   ~0002710

Last edited: 2016-10-24 23:18

Well, the thing is that I do not have any proper hardware sequencers, just synthesizers, so I also can only guess how things would work in real life. Just syncing OpenMPT's tempo to MIDI clock ticks is possible (but the thing I implemented back then was not very stable, might need to interpolate more between previous clock time timestamps), but that alone won't "sync" two devices. For that, OpenMPT needs to know the position in the current beat or song - I think MIDI Machine Control might help there, but I have no idea how widespread that is, or if hardware sequencers use something different.

Diamond

Diamond

2016-10-25 20:40

reporter   ~0002711

The manual of my ESX-1 says something about sending Song Position Pointer messages, but that's about as much as I know.

Saga Musix

Saga Musix

2016-11-07 23:41

administrator   ~0002728

I have written code for several types of song position messages just to test this whole thing. While it works in theory, it requires more though to put into it, for example we somehow need to handle latency: By the time the position message arrives, it's already late, and by the time the new position made it through the audio buffer and can be heard is even later.

For time-based synchronization (MIDI time code), we could seek to (received time stamp + latency), in case the time stamp was the exact position of a beat (which is likely), then it would no longer be exact after adding the latency (OpenMPT can only seek to the start of a row, not to entirely arbitrary positions specified in seconds).

Diamond

Diamond

2016-11-07 23:45

reporter   ~0002729

Sounds like at least a bit of progress though.

Saga Musix

Saga Musix

2016-11-07 23:48

administrator   ~0002730

That was the easy part though :)

Diamond

Diamond

2016-11-07 23:50

reporter   ~0002731

LOL I have faith in your ability and ingenuity.

Issue History

Date Modified Username Field Change
2016-05-24 22:25 Saga Musix New Issue
2016-10-24 02:41 Diamond Note Added: 0002706
2016-10-24 11:53 Saga Musix Note Added: 0002707
2016-10-24 17:37 Saga Musix Note Added: 0002708
2016-10-24 17:50 Diamond Note Added: 0002709
2016-10-24 23:17 Saga Musix Note Added: 0002710
2016-10-24 23:18 Saga Musix Note Edited: 0002710
2016-10-25 20:40 Diamond Note Added: 0002711
2016-11-07 23:41 Saga Musix Note Added: 0002728
2016-11-07 23:45 Diamond Note Added: 0002729
2016-11-07 23:48 Saga Musix Note Added: 0002730
2016-11-07 23:50 Diamond Note Added: 0002731