I have seen success implementing a note based delay through evaluatingÂ m_HostProcessInfo.dBPM with the equation listed above the Midiclock(); function in the comments.
My question is how to increment a counter within the midiClock function to switch a bool?
In simple terms how do you toggle a switch every quarter note?
Running blank on this one guys plus the link in the MidiClock(); function is down also!
Do you have the flag m_bWantAllMIDIMessages = true in your derived class constructor? If so, RackAFX will call it if it received this message.
However, I've found that the other APIs don't transmit it directly via a message (probably because it chokes up the message queue with zillions of messages).Â
This is what I have inside the midiClock, and the Counter variable is declared in the header as an int.
I did not haveÂ m_bWantAllMIDIMessages = true.
However after changing the bool and multiple tests inside Ableton and RackAFX. I have not seen success incrementing a variable per midiClock.Â
bool __stdcall CFunctionTest::midiClock()
m_fCounter = (float) Counter;
The MIDI Clock transmit code is alive in RackAFX. If the function is not called, then it means that no MIDI clockÂ is flowing into RackAFX, which just parrots the MIDI it receives out to your plugin. You might want to monitor the MIDI into RackAFX with a tool like MIDI OX.
If you are using Ableton, then you are using a VST2 plugin (acutally the VST3 plugin with the built-in Steinberg VST3->VST2 wrapper). MIDI clock messages are not transmitted in VST3 (or VST2 with wrapper). As outlined in my Synth book, the only MIDI messages delivered to a VST3 pluginÂ (or VST2 with wrapper)Â are Note On, Note Off and Polyphonic Pressure events.Â
Your RackAFX plugin-as-VST3-plugin will now set a host information data structure you can use. This is documented here:
However, RackAFX only transmits the host information that is common to all APIs - AAX, AU and VST3. However, each one has some extra information that you can trap, but you need to use the Make XXX function in RackAFX to generate a project that you can compile and alter to pick up the other information. For VST3, this is found in the ivstprocesscontext.h file, in the:
You can get information about timing via SMPTE and absolute sample position. There is also a member variable:
int32 samplesToNextClock; ///< MIDI Clock Resolution (24 Per Quarter Note), can be negative (nearest)
that is transmitted.Â
You will need the VST3 SDK and Make VST to create a project that you can access this information with -- see the:Â
function; the ProcessContext struct is a member of ProcessData.
Thanks for the info, I have been investigating the information you steered me towards, and the forum community for the solution. Â I even downloaded MIDI OX.
I tried all different types of ideas and came to the conclusion that I have to learn the checkGuiUpdate function better. Â This is why a lot of my tests were coming back "negative" but when I tested through the manipulating of audio I saw success!
I appreciate your time!
Most Users Ever Online: 152
Currently Browsing this Page:
Guest Posters: 2
Moderators: W Pirkle: 693