Tracktion_engine headless (without X11)


I’m currently working on a minimal linux buildroot configuration for raspberry pi, for a project using tracktion_engine.

My code runs fine in the console on my desktop since I removed the mainwindow and all UI-related code, but the tracktion_engine module requires a lot of GUI related modules.

So my question is, how hard would it eventually be to run a X11-free tracktion_engine ? And are there any plans to split tracktion_engine in multiple modules ?

Best regards,

I’m not too familiar with X11 to know what would have to be removed to get it to build.
If it’s just GUI component stuff then it would probably be pretty easy.

If it required X11 for the messaging system though that would be pretty impossible to remove. Tracktion Engine is inherently async and if you’re editing an Edit there’s no real way around that.

Over time it probably will be split up in to more modules. I’m in the process of pulling the audio engine backbone in to its own module. I can also see “main”, “gui”, “utility” and “vocabulary” modules pretty easily. Long term I’d like to split it in to as many free standing libraries as possible but the core “Edit model” library will probably always be fairly sizeable.

Well, having the gui in its own module would be a huge help for what I’m trying to do, so it’s good to know that there are plans for it in the future.

I’m trying to build the StepSequencer example for a Raspberry Pi Zero W and while X11 is not necessarily an issue anymore, there’s also the webkit2GTK dependency that I can’t meet, since it requires an OpenGL backend, which (if I’m not mistaken) is not supported on the Pi Zero.

webkit2GTK Shouldn’t be required. Do you know what’s pulling in that dependency? It might just be a default juce setting or PJ project generation.

Either way, we can almost certainly get rid of that one easily if we can find the cause.

1 Like

re: webkit2GTK

You can disable the web browser stuff by defining JUCE_WEB_BROWSER=0 or use the Projucer to disable this (works out to the same). This is part of the juce_gui_extra module.

I’m not courant with the cmake stuff that juce provides, though I’m sure there’s a simple flag you can toggle that’ll do similar in there.

1 Like

Thanks @dave96 and @jrlanglois, it turns out that the webkit part solved my dependency problems and it now builds correctly for the Pi Zero.

Also, I tried a vanilla Juce app, and removing all the GUI dependencies effectively removed the need for X11, it’s not so much a problem anymore for my use-case, but it seems it’s only used for the GUI parts in the juce modules.

@hommesdoutant do you mind sharing your buildroot package config?

trying to setup something similiar