Help starting with Traktion Engine

Hi everyone

First post here.
I wonder if anyone could help me in what I’m sure is a very nooby/newbie question:

I downloaded the Traktion Engine package, but don’t know where to place it.

I’ve got JUCE working fine, but when I’m trying to open any Traktion’s examples PIP, ProJucer ask me to locate the .h file, in order to launch Visual Studio.

JUCE is in C:
Traktion Engine in C: too

Thanks in advance

After you clone traction_engine to a git submodule init and git submodule update to get juce as a submodule.

Then run the script in tests\windows to generate all the example projects.

1 Like

Hi @RolandMR, thanks for the help.

I had in fact downloaded Traktion Engine as a zip file. Ran the bat files in the test folder. Same errors.

Do I have to do the git steps you mentioned to make it work? I don’t really know about git stuff, I am actually a amateur Asm programmer, and some C.

Please ignore the above, I’ve sorted out and am up and running!!!
Thanks once again @RolandMR!

Hi @RolandMR,

Well… I can now compile the examples.
But for some reason RecordingDemo compiles fine but will not execute anymore… I opened it and played around with it and it was fine.

TestRunner, the same thing. Windows tries to load it and aborts.

No interface appears on screen, only the Windows blue round thing, loading the app.

I restarted to pc, rebuilt them to no avail. Other demo apps run fine.

Any suggestions?

What branch are you using?
The TestRunner is a command line app so doesn’t have an interface. It’s not really a demo though, more just a utility tool that we use to run our tests on various build servers etc.

Have you tried running from Visual Studio to see where it gets stuck? It could be an audio device problem or similar.

1 Like

Hi @dave96,

It triggers the debbuger here:

RecordingDemo.exe!tracktion_engine::Edit::Edit(tracktion_engine::Edit::Options options={…}) Line 490 C++ Symbols loaded.

Which is:

jassert (state.isValid());
jassert (state.hasType (IDs::EDIT));
jassert (editProjectItemID.isValid()); // This must be valid or it won’t be able to create temp files etc.

Guys, any idea?

Hi there, I just tried to run the Recording Demo and it loaded ok.
I’m not quite sure what you’ve done to get it in to an invalid state. I imagine you’ve created an Edit file which it is trying to reload on startup but that file hasn’t been fully saved so is empty?

Take a look at line 54 of RecordingDemo.h, is this loading an existing Edit? If so, use the debugger to find the path of that Edit and delete the directory (whilst the app is closed).
This should make it create a new project upon startup.

1 Like

Hi Dave,

It’s saving it in here:


But I pin pointed the issue. Could you try and replicate?

It happens only when one records an audio file.
When quitting, the audio files and Edit are in the folder.
The prog wont run again “unless” one goes and manually delete the audio files. Edit still retains the audio clip reference.

Deleting the audio file using the delete button wont work either, since the file/files remains in the folder

Ok, I’ve fixed this now. It was a subtle problem with File::findChildFiles. It was expecting a bool as the second argument but happily accepted a const char*.
It’s working it’s way through our CI at the moment but it’s currently in a large queue so may be a few hours until it makes it’s way online.

This was the change I made in examples/common/Utilities.h if you want to add it locally for now:

     static inline File findRecentEdit (const File& dir)
-        auto files = dir.findChildFiles (File::findFiles, "*.tracktionedit");
+        auto files = dir.findChildFiles (File::findFiles, false, "*.tracktionedit");

I’ve had pretty good luck with the juce examples, but recently added tracktion and I’m also running into issues with getting started and getting the examples to build.

I THINK I’ve got it downloaded placed correctly. I’m not a git pro- so this was a zip download and dropping into the juce module directory. I ran the scripts to generate the example projects. The projucer seems to see the engine and saves/exports to IDE fine (though it wants to go to 2017 and I’m running 2019)

I’m trying to get the recording demo going and running into compiler errors which I’m guessing has to be due to some configuration misstep.

Visual studio 2019 is puking on tracktion_floataudio……

It’s most likely that you’re using an incompatible version of JUCE if you’ve got the Tracktion Engine and JUCE modules from different times.
Please use Git to get tracktion_engine and the juce submodule as detailed in the readme here:

Then you can generate the examples as detailed and see if you can build.

I grabbed the zip from the developer tree and dropped that into my Juce folder and that did the trick. thx.