Tracktion Engine now Open Source!


#1

Hi everyone, we’ve got some exciting news to announce today, we’ve just open sourced the Tracktion Engine!

Our aim with Tracktion Engine is to take care of all the difficult and time consuming aspects of developing audio apps so you can focus on building great features and user interfaces people will love.

Tracktion Engine defines a high level document object model for time based, sequenced audio applications and provides an API to create, modify and play these back. Create an Engine object, our arrangement object, called an Edit, add some elements to it such as audio files, MIDI and plugins, then play it back or render it to an audio file.

Tracktion Engine is provided in JUCE module format making it incredibly quick and easy to setup and start creating projects. We’ve included a bunch of examples and accompanying tutorials along with scripts to build them so you can get up and running with the minimum of fuss. More information can be found in the repository’s README.


The best place to get started and find out more is the GitHUb repo: https://github.com/Tracktion/tracktion_engine/

And you can see the webpage here with a longer feature list:

And we also did a video!

If you’ve got any questions just let us know!


#2

WOW! :exploding_head: this is incredible! fantastic! Christmas coming early!
can’t wait to go through the code! thank you!

It worths mentioning that there are multiple commercial licensing options also.


#3

Just after we finish one for our project this happens … :slight_smile:

Admittedly yours looks a little more comprehensive :wink:


#4

I’ll show you mine if you show me yours…
Oh, wait, we already did!


#5

I’m looking at yours right now :slight_smile:


#6
   samps[0] = 1.0f;

   if (loGain->getCurrentValue() != 0)     IIRFilter (low[0]) .processSamples (samps, sampSize);

This is cute… we went to the trouble of calcualting the transfer function for ours :-/


#7

Yeah, I think this is quite an old way of doing it and will work for any filter.
It’s probably a lot less efficient than using the transfer function though.

In our DAW Essentials EQ we use the transfer function.


#8

I’ve got some filters I don’t really fancy doing the transfer function for, and this technique is new to me. So good to have discovered it even if I am late to the party :slight_smile:


#9

I thought you had to sign an agreement with Propellerheads for REX support?

From the REX header…

/*
REX by Propellerhead, © Copyright Propellerhead Software AB.
REX and Propellerhead are trademarks of Propellerhead Software
AB. email: rex@propellerheads.se
*/

The license is free.

Rail


#10

Yes, there are a few things that are supported by the Engine which require additional licence agreements (similar to JUCE and VST2/3).

These include things like Rex, ReWire, Automap, ARA, Ableton Link, Elastique etc.

You can turn these off with module config defines to build without them or contact the relevant parties to get access to the SDKs and include the headers/libs as necessary.


#11

Very nice indeed. Is this code from before the name change and all the value tree stuff went in? Or perhaps I’m thinking of another DAW?


#12

Nope, it’s the most up to date version of the engine which we are currently developing Waveform 10 on.

A few years ago we changed the name of the DAW from “Tracktion” to “Waveform” in part to disambiguate from the company and to allow us to do things like this.
You can think of it as “Waveform, built on the Tracktion Engine” if that helps?


#13

Wow OK, there’s so much work gone into this. It will be interesting to understand the value tree usage a bit better.
Thank-you very much!


#14

Yep, it’s been a 15 year project so far :wink:


#15

Can I ask, does it use Juce’s rendering engine?


#16

What do you mean by “rendering engine”? GUI/audio/file etc.


#17

What does it use for lines/polygons/boxes/waveforms/text etc


#18

The Engine doesn’t really have any UI, it’s a data model and audio engine. You need to build your own UIs on top of it.

Obviously our DAW uses JUCE for the UI and the examples in the Engine use JUCE but there’s no reason you couldn’t use another UI toolkit.


#19

I understand. Thanks again.


#20

@dave96 Thanks for publishing this incredible piece of work. Aside from being a solid audio engine, I think it’s super-valuable as a learning resource.

One question: the license pricing… I’m assuming that’s $35 per developer per month (JUCE style pricing)? Not per user as stated, which could potentially work out insanely expensive!