Over the last few weeks @dave96 and I have made some changes to the Tracktion Engine so it is now usable from a plugin.
All singletons were removed so multiple instances can be created without issues
Added support or MIDI out
Sync engine playhead to DAW playhead
One input can now be assigned to multiple tracks
EngineInPlugin demo updated. It now has two tracks, with the MIDI input assigned to both. Track was has a 4OSC synth routed to audio out. Track 2 passes the input MIDI directly to the output.
The only thing I’m aware of that isn’t supported is using control surfaces to control a plugin. I don’t currently have plans to support it, but if you have a use case for it, please let me know and we can discuss how it should be implemented.
If you’ve been asking for this feature, I’m curious what your use-case is. I know its been a popular request, so there must be something I’m missing…
Tracktion Engine sessions/edits are built around a sequencable timeline. Most audio plugins don’t manage their own content timelines, and with VSTs I didn’t think it was even feasible to sync events to the host timeline (like you can with ARA).
When you are building a plugin that is designed to run in a host, what do you get from the Tracktion Engine that’s not available in JUCE?
Hope this doesn’t sound rude, as a I know that a lot of people want this feature. I’m just curious!
I think a lot of people use the sequencer elements for playing back MIDI or step clips through some custom sound generator or even the internal sampler.
Syncing an internal plugin timeline to a DAW timeline is a surprisingly tricky thing to do and with Tracktion Engine this is as simple as adding/removing clips to a timeline.
If there are other use cases I’d be interested to hear them.