Where to capture MIDI Clock messages


#1

Hello, I am trying to make an arpeggiator plugin (just a MIDI generator, no TG). I would prefer to use MIDI clock for syncing to the host, as it is more robust than checking the tempo every process block. My issue that I have run into is that in the process block, I never seem to be receiving any MIDI clock messages.

I haven’t really been able to find any answers poking around the forum or stackoverflow, so I was hoping someone could enlighten me. Thanks very much

Current trivial processing block (just trying to get midi clock at this point):

void ArpeggiatorAudioProcessor::processBlock (AudioSampleBuffer& buffer, MidiBuffer& midiMessages)
{
    buffer.clear();

    int time;
    MidiMessage m;

    for (MidiBuffer::Iterator i (midiMessages); i.getNextEvent (m, time);)
    {
        if(m.isMidiClock())
        {
            m_nClockCount++;
        }        
    }    
}

#2

I would strongly disagree!

Why are you expecting MIDI clock messages? Even if you have an external device that’s sending it, most DAWs won’t pass it on to the plugins, they’ll just sync to it themselves and filter out the messages.


#3

Oh, interesting. I guess I was in the mindset of a standalone device or program, not a hosted plugin. Thanks for pointing out my flawed assumption