As a newbie, start with Tracktion Engine or JUCE?

Hi everyone,

I’m an engineer, industrial designer and a hobby musician that wants to learn to make audio applications. I have some basic C++ knowledge but not really extensive, so for me some JUCE methods are a little bit advanced for me. So then I discovered the Tracktion Engine, which seems to simplify things a lot, specially in terms of memory allocation management and threading I think.

Do you recommend me to start with Tracktion Engine and then jump to the full JUCE framework or start little by little with JUCE first? My idea is to make simple apps like recording and playing tracks with the waveforms, samplers and these kind of things, nothing mathematically crazy.

It’s worth noting about the Tracktion Engine that there is no documentation for it. (Not even many comments in the header files.) You may be able to get some understanding of some things by looking at the example projects but for example myself I’ve had to ask here in the forum about many things, which isn’t exactly efficient for development.

The Tracktion Engine apparently isn’t very suitable for use within plugins. So if you start a project as a standalone application but later want to make it into a plugin, there may be some problems.

1 Like

I think you’d be better off starting with Juce. For a start, the Tracktion engine depends on Juce, so you’d need to know Juce either way. Additionally, Juce has a lot of introductory tutorials whereas the Tracktion engine does not, so getting started with plain Juce will probably be easier.

1 Like

Using Tracktion Engine will probably be better for creating the kind of applications you listed (there’s a lot of concepts and code involved in recording/playback/waveforms/samplers etc.) but as others have said in this thread, you’ll need some fairly decent JUCE and C++ knowledge to use the framework anyway.

We’re adding documentation and examples all the time so this will improve, the main difficult we face is what areas to focus on as almost everyone comes to Engine with a different use case. So at the moment we’re focusing on adding examples and documentation for the most active users.

It is our intention in the future to either add a higher level abstraction to Engine for the common use cases or bindings for other languages. This should make it simpler for beginners to pick up.
The general approach of this can be seen in some of the example utility code: https://github.com/Tracktion/tracktion_engine/blob/master/examples/common/Utilities.h

I also recommend watching the talk me and Jules gave at the Audio Dev Meetup a couple of months ago to get a high level overview of the Engine: https://github.com/drowaudio/presentations/#tracktion-engine

1 Like