Tracktion Engine now Open Source!

Thanks! Yes, we hope it serves as some good examples for people.

Yes, that’s correct, it’s per “developer seat”. I’ll get that updated for clarification.

2 Likes

This is great! You guys are awesome for doing this, there are a lot of devs that are talented but just don’t have time to write a full audio engine and/skill level.

But there are a lot of devs with dreams and this is fantastic! Going to try some android stuff.

Glad it’s getting a good response!

Dave deserves the vast majority of the credit for this, but I’ve also been pretty deeply involved in the slash-and-burn job of cleaning up and refactoring the code to the point where it’s safe to reveal to the public. :slight_smile:

If you like it, please share the news around on your “socials”, and help get us some github stars!

12 Likes

Did you guys have plans of integrating some type of extension system in the DAW itself that could load “modules” that were apps as well but maybe not VSTs?

This would be great, since it would be more of a compromise for some that don’t want to release VST but do mobile/desktop.

This is a brilliant initiative. Thanks Dave and Jules.

1 Like

Trying to build the step sequencer sample I get an error in VS2017

Severity	Code	Description	Project	File	Line	Suppression State
Error	C1128	number of sections exceeded object file format limit: compile with /bigobj	StepSequencerDemo_App	X:\dev\audio\tracktion_engine\examples\projects\StepSequencerDemo\JuceLibraryCode\include_tracktion_engine_model.cpp	1

Are you compiling a 64-bit app?

Yes, it’s the only build target, I am on Windows 10 Pro/64.

Have you got something specific in mind?

I do have a plan to make the Modifiers modular, and you can always provide your own bits of an app via custom ValueTree properties (we do this in Waveform for things that are specific to our DAW).

But I’m wondering what other “modules” you’d need. That would essentially mean creating an API for the “module” and that means it would need a spec/use case :wink:

How much RAM have you got?

32GB - Ryzen 1700

The fix is right there in the error message : try compiling with the /bigobj switch. I wonder if the TE code could be improved not to require that, though…?

Not really. :slight_smile:

I’m going to get into the code and then I can put something on github if the exact use case comes to me.

I forgot it’s the engine not the DAW that is OS, so maybe what I said is not quite applicable to what I was thinking.

Bear with me, I am a bit new to these low-level compiling with JUCE so I am trying to get bearings.

Where would the switch be? In the Exporter list for Windows?

Sorry for the noise again, I will ask on Discord if I have any of these weird issues.

I fixed it by putting the flag in Extra Compiler Flags. :slight_smile: Duh.

1 Like

You’re right. That’s odd, it doesn’t happen from the command line which gets run on our CI for every commit.

Also looks like the PIP generator doesn’t add the “warnings are errors” flag on Windows either so there are some warnings I’ll clean up.

In the mean time if you right click the project in VS and show properties. Scroll down to “C/C++” and in the “Command Line” section add /bigobj it should build.

Actually it might be working on our CI as we have an environment variable set up to force VS to use the 64-bit build tools. The VS app might not be using that and hence the problem.

Thanks, I put the flag in the projuicer and worked fine.

@dave96 Have you tested these on Android? I created a new Android Studio exporter but I can’t get the project to compile.

No, these examples aren’t for Android, they don’t have Android exporters do they?

The Engine should build on Android but it’s not one of our main systems so may need a bit of convincing…

No I created one.

I am an Android dev that already has audio apps up and having this engine will allow me to keep pushing my Android ideas farther.

So I will just start with a simple hello world android and go from there building something. :slight_smile: