ModPlug Central

Community => General Chatter => Topic started by: djkurzman on May 21, 2016, 05:53:16

Title: Midi Clock Send
Post by: djkurzman on May 21, 2016, 05:53:16
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.
Title: Re: Midi Clock Send
Post by: Diamond on May 21, 2016, 09:36:15
I second this one.
Title: Re: Midi Clock Send
Post by: Saga Musix on May 21, 2016, 11:30:35
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.
Title: Re: Midi Clock Send
Post by: Diamond on May 21, 2016, 11:37:07
Nice.  Is it already in the latest test build?
Title: Re: Midi Clock Send
Post by: Saga Musix on May 21, 2016, 11:38:14
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.
Title: Re: Midi Clock Send
Post by: Diamond on May 21, 2016, 12:23:56
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.
Title: Re: Midi Clock Send
Post by: Saga Musix on May 21, 2016, 22:49:11
I thought about implementing MIDI Song Position Pointer (http://www.blitter.com/~russtopia/MIDI/~jglatt/tech/midispec/ssp.htm) 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 (https://en.wikipedia.org/wiki/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.
Title: Re: Midi Clock Send
Post by: Diamond on May 21, 2016, 22:56:55
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.
Title: Re: Midi Clock Send
Post by: Saga Musix on May 21, 2016, 23:00:24
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.
Title: Re: Midi Clock Send
Post by: djkurzman on May 22, 2016, 20:20:53
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!!!
Title: Re: Midi Clock Send
Post by: djkurzman on May 22, 2016, 20:35:13
Just tried it out and it works great!
Title: Re: Midi Clock Send
Post by: Saga Musix on May 22, 2016, 23:27:37
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?
Title: Re: Midi Clock Send
Post by: djkurzman on May 23, 2016, 03:50:23
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.
Title: Re: Midi Clock Send
Post by: Saga Musix on May 23, 2016, 11:28:49
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!
Title: Re: Midi Clock Send
Post by: djkurzman on May 24, 2016, 01:30:46
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.
Title: Re: Midi Clock Send
Post by: Saga Musix on May 25, 2016, 14:28:50
I don't want to state the obvious, but just to be sure, did you assign the channel on which you sent the Zxx macro to the MIDI I/O plugin? The MIDI implementation chart of the Volca Beats does indeed suggest that it should respond to Song Position Pointers.
Title: Re: Midi Clock Send
Post by: djkurzman on May 25, 2016, 15:00:43
Hah, that's a safe question. I'll admit that I am a bit of a midi newbie. The last test I ran was with the file you attached. I have everything running across a Quadra Thru splitter (even bypassed it just to make sure). Keys, Bass and Beats are set on channels 2, 3 and 10 respectively.

With each macro I attempted
-Only Zxx parameter changes in pattern with MPT channel assigned to Midi I/O plugin
-Same as above with added Instrument assignment number to pattern. Instrument linked to Midi I/O plugin and midi channels assigned to each Volca.