Tracktion Engine 1.1 Update News

Hi everyone I thought this would be a good time to share an update on the Tracktion Engine status.
Everything described below relates to v1.1 of the engine, currently available on the develop branch. If you’re not using the develop branch I would suggest migrating to that for the benefits it brings.

New Engine

The big change is I’ve now completed work on the new playback engine. This uses an all new processing library called Tracktion Graph. It:

  • Fixes PDC in lots of tricky edge cases
  • Reduces latency overall when using sends and Racks
  • Utilises multiple threads better (so is optimised for modern multi-core machines)
  • Reduces CPU consumption in most cases (~25% is typical)

This also provides more customisability as it’s now possible to create your own playback graph for an Edit model should you wish to do so.

The Tracktion Graph module can also be used independently of the main Tracktion Engine module so if you’re building your own playback engine you might want to use that. It’s under the same licence as Tracktion Engine at the moment but if you’re a large company and have a specific use for it get in contact with us.

Discord

There is also now a Tracktion Engine channel on The Audio Programmer Discord for real-time discussion of the engine.

Engine Showcase

We’d like to build out a page on tracktion.com to show case people’s uses of the engine so if you’ve made something cool with it and want to share it let us know.

Licensing

Finally a note on licensing as there’s been some confusion…
Tracktion Engine is not part of JUCE. It is licensed separately.
In order to use it you either need to be using it under the terms of the GPL or have an appropriate license as detailed here: Commercial License Options

If there’s any confusion get in contact with us and we’ll make sure you’ve got the appropriate licence.


Cheers and thanks to everyone who’s been using it.
It’s really great to see all the different applications of the Engine!

3 Likes

Congrats Dave!

Quick question – could the tracktion graph at all be viewed as a potentially replacement for the standard JUCE Audio Processor Graph? Or are things like multi threading etc baked into it?

I guess so… but it’s a bit more low level than that.
It’s more like it could be used internally by juce::AudioProcessorGraph::RenderSequenceBuilder.

But if you’re building your own app then it could be used instead of it.

Multithreading isn’t baked in to the graph but it’s a way of playing a graph. So you build the graph out of Nodes and then play it back either single threaded or multi-threaded (with multiple threading strategies).

I’m assuming “not possible” is a typo? Are there any examples on creating a playback graph?

Yes, sorry. Should have been “now”.
There aren’t any additional examples but if you want to see how the default graph is constructed take a look at EditNodeBuilder.cpp.


I should also add that I’m currently on paternity leave for another week or so which is why I’ve not been able to answer Tracktion Engine questions on the forum recently. I’ll try and get to them if I find a spare bit of time but they often require more brain power than my sleep is allowing me to have at the moment… Apologies!

4 Likes

congrats and enjoy your time!