Tracktion's block timing / vst internal midi sync


#1

When Tracktion calls process() on a plugin, is it predictable enough to be able to send MIDI messages directly to a MIDI output port in sync with when they would be played back on receipt back into a track? The only way i can see of sending sysex to some external hardware is to have the plugin open the port directly, but then Tracktion obviously can’t send the rest of the midi data thru.

I understand that the deltaframes shows how the midi message offsets from the block’s start, but is it possible to translate that to a schedule for the plug to send the messages? or, is it just so that Tracktion has a hidden agenda about when the block will actually be used as output, and it would be impossible to sync the messages from within the plugin?

EDIT: OR, is it possible that (as it is hosted within Tracktion) the plugin can have access to the port whilst tracktion has it open? i presume that it’s treated as a separate process.


#2

Well it is accurate enough, but I’m not sure it’s a good idea - there could be problems with some audio drivers if you call a midi output routine from an audio callback. And don’t forget that your plugin will get called while rendering too, not only when it’s playing back in realtime.


#3

yeah, i don’t really want to have to do that… it’d be a lot of work for something that would be dodgy at best :hihi: it’s only for when sysex is required. i think that for when sysex is needed the user can use virtual ports (one opened inside the plug and the other for the track output) and a separate merger app running alongside Tracktion can hold the real output port.


#4