This is a fork of Tracktion Engine, the C++ / JUCE library for building sequencers and DAWs. It is maintained for Ondinha, a DAW with mixing tools built in.
The fork is upstream plus a short list of small, targeted fixes. Each fix is also proposed upstream, so the list should shrink over time. If you aren't building Ondinha, you probably want the original.
| Branch | What it is |
|---|---|
ondinha |
The branch to use. Upstream develop plus the patches below, rebased on each upstream update. |
develop, master |
Untouched mirrors of upstream. |
Because ondinha is rebased, its history is rewritten. Pin a commit (as a git submodule does), not the branch tip.
git submodule add -b ondinha https://github.com/ondinha/tracktion_engine.git external/tracktion_engine
git submodule update --init --recursiveadd_subdirectory(external/tracktion_engine/modules/juce)
add_subdirectory(external/tracktion_engine/modules)
target_link_libraries(MyApp PRIVATE tracktion::tracktion_engine)The API is upstream's, and the upstream documentation, examples and tutorials all apply.
| # | Area | Fix | Upstream PR |
|---|---|---|---|
| — | — | none yet: ondinha is currently identical to upstream 5ee811e (2026-10-01) |
— |
Planned, in priority order:
- Side-chain: external VST3 compressors that ignore their side-chain key when hosted in the engine but work when hosted directly in JUCE (FabFilter Pro-C 2).
- Track outputs: saved by track ID instead of track number, so routing survives adding and removing tracks, and undo.
- Parameters: live plug-in parameters follow state changes and undo/redo; volume, pan and send setters are undoable.
- Built-in synths: an optional deterministic voice phase, so renders are bit-identical.
- Rendering: a per-plug-in "keep real-time during render" flag; automation put back on its curves after a render.
- Branch from
ondinha, keep one fix per commit, and prefix the message with the area (Side-chain: ..., matching upstream's style). - Include a test or a reproduction in the commit message.
- Open the PR here against
ondinha, and open the same change againstTracktion/tracktion_enginedevelop. - Add a row to the table above with the upstream PR link.
git fetch upstream # upstream = https://github.com/Tracktion/tracktion_engine.git
git rebase upstream/develop ondinha
git push --force-with-lease origin ondinhaDrop any patch that upstream has merged.
Same as upstream: Tracktion Engine is dual-licensed under GPLv3 (or later) or a
commercial licence from Tracktion. JUCE (in modules/juce)
is dual-licensed under AGPLv3 or a commercial JUCE licence. See LICENSE.md. This fork's patches
are under the same terms. Forking does not change the licence.
Tracktion Engine is © Tracktion Corporation. This fork is not affiliated with or endorsed by Tracktion.