Midi Clock Send

Started by djkurzman, May 21, 2016, 05:53:16

Previous topic - Next topic

djkurzman

I've been playing a bit more with controlling midi hardware with OMPT. I know that there currently isn't any sort of clock send in OMPT or the Midi plugin. Since OMPT is able to sync with enabled VSTs, is it feasible for either OMPT or the Midi plugin to send midi clock data? There are a few events that I can change in the devices internal sequencer that don't have CC mappings for outside control and I think this would be a handy addition.

If this hasn't been asked about before and sounds like something that would be possible, I'll happily drop it in the feature tracker.

Diamond


Saga Musix

#2
That's incredibly funny timing on your side, because I have just implemented that last week and today's OpenMPT 1.26 release will include this new feature in the MIDI I/O plugin.
» No support, bug reports, feature requests via private messages - they will not be answered. Use the forums and the issue tracker so that everyone can benefit from your post.

Diamond

Nice.  Is it already in the latest test build?

Saga Musix

Yes, since Thursday evening. ;) I tested it on my own synths and it seemed to work great, even with tempo changes. Arpeggiators stayed rock-solid even after several minutes of playback.
» No support, bug reports, feature requests via private messages - they will not be answered. Use the forums and the issue tracker so that everyone can benefit from your post.

Diamond

Cool.  I have a Korg Electribe EMX1-SD
https://www.youtube.com/watch?v=1SPzc5UC2P4
and a Korg microSAMPLER
https://www.youtube.com/watch?v=9aBaiHGMiow
I'm going to try this with when I have a chance.

Saga Musix

I thought about implementing MIDI Song Position Pointer messages as well, but I don't think that I have any device that could do anything with them - I suppose it's more for those synths with a built-in sequencer. MIDI Machine Control messages could also be implemented but again I have nothing to test them with. If any of you would have some use for those messages, I'd gladly try to implement them.
» No support, bug reports, feature requests via private messages - they will not be answered. Use the forums and the issue tracker so that everyone can benefit from your post.

Diamond

I'm not sure if I have any way of testing those, but how about play/continue/stop Song messages?  Although if such messages were added, it should be necessary to explicitly enable them.

Saga Musix

Play and stop are sent when starting and stopping playback as well as when jumping around in the order list; I do think that they must not be disabled when sending MIDI Clocks, because when stopping playback a synth may go back to synchronizing its LFOs / arpeggiators / etc. to a different time source when no more clock signals are sent.
However, if I am going to add even more timing options, I will probably make them checkable one-by-one.
» No support, bug reports, feature requests via private messages - they will not be answered. Use the forums and the issue tracker so that everyone can benefit from your post.

djkurzman

That's awesome! I've been using the Korg Volca set and an Alpha Juno 2. The Volca Sample hogs a lot of midi channels, so it's easier for me to use it's internal sequencer. I'm excited to try out the new build. Thank you!!!

djkurzman

Just tried it out and it works great!

Saga Musix

I'm glad to hear that it works for you. :)
Since you mentioned that you use the internal sequencer, would you be up for a little experiment to test if implementing MIDI Song Position Pointer events would be feasible?
For this test, open the MIDI Macro Config dialog and assign the macro string "F2 z 00" or "F2 00 z". When sending this macro using Z00 to Z7F messages, does the play position in Volca's sequencer jump around?
» No support, bug reports, feature requests via private messages - they will not be answered. Use the forums and the issue tracker so that everyone can benefit from your post.

djkurzman

I tried "F2 z 00" and "F2 00 z" and neither had any effect of the pattern position on the Volcas internal sequencer. I double checked the configuration on the sequencer and it should be set to receive song position data. Let me know if there's anything else you want me to try. I'll be more than happy to test it out.

Saga Musix

#13
I confirmed that "F2 z 00" sets the playback position e.g. when sending it to Renoise (in this case, the Zxx parameter specifies the offset in the song in 16th notes). However, the MIDI implementation chart of the Volca Sample suggests that it cannot actually receive Song Position commands.
Maybe it supports MMC commands instead? Try sending this macro: F07F7F064406010000z0000F7 (Zxx parameter = song position in seconds)
Edit: I've attached a module that sets up the MMC command for you already. It will set the song position to 0 seconds, 1 second, 2 seconds... as you can see in the pattern. Be sure to select the correct MIDI device in the MIDI I/O plugin!
» No support, bug reports, feature requests via private messages - they will not be answered. Use the forums and the issue tracker so that everyone can benefit from your post.

djkurzman

Yeah, I think it may be a limitation on the part of the Volca set. I tested mostly on the Volca Beats since the Sample seems to have more issues with midi control than the others. The chart for the Beats seems to indicate it can receive position data as long as the clock source is Auto, which is the default setting for the Beats. I haven't really seen it in action though. I ended up trying all of the macros with the Sample, Beats, Keys and Bass. No luck with the song position sadly. Definitely let me know if there's anything else I can help test.