# Tracktion Engine Update?

**URL:** <https://forum.juce.com/t/tracktion-engine-update/42115>\
**Category:** Tracktion Engine\
**Created:** [October 8, 2020, 4:36pm UTC](https://forum.juce.com/t/tracktion-engine-update/42115 "2020-10-08T16:36:00Z")\
**Posts on this page:** 10\
**Page:** 1

<div class="post-metadata">

**Author:** ![bwall](https://sea2.discourse-cdn.com/flex026/user_avatar/forum.juce.com/bwall/32/618_2.png) [@bwall](https://forum.juce.com/u/bwall)\
**Post date:** [October 8, 2020, 4:36pm UTC](https://forum.juce.com/t/tracktion-engine-update/42115/1 "2020-10-08T16:36:00Z")

</div>

I know that a significant update for Tracktion Engine has been in the works for some time now.

What is the ETA for this update?

What are the major changes?

Breaking changes?

Thank you!

---

<div class="post-metadata">

**Author:** ![dave96](https://sea2.discourse-cdn.com/flex026/user_avatar/forum.juce.com/dave96/32/8487_2.png) [@dave96](https://forum.juce.com/u/dave96)\
**Post date:** [October 8, 2020, 6:03pm UTC](https://forum.juce.com/t/tracktion-engine-update/42115/2 "2020-10-08T18:03:24Z")

</div>

Yes, the update is to change the audio playback engine. I’ve been working on it for nearly six months. It’s probably been the most difficult thing I’ve ever worked on.  
It’s been in public beta builds of Waveform for about a month but I’m still ironing out the last few bugs.

> [@bwall](#):
>
> What is the ETA for this update?

Difficult to say when it will become the _only_ engine in use but you can use it today in your apps by using the `tracktion_graph` branch and enabling the `ENABLE_EXPERIMENTAL_TRACKTION_GRAPH` flag.  
I’m definitely hoping it will be the only engine in W12 which we normally release in early Feb so I’d say definitely by then but hopefully before.

> [@bwall](#):
>
> What are the major changes?

On the feature level very little. Under the hood PDC will work correctly in all situations as long as you don’t insert a cycle and CPU load should be improved (this is difficult to quantify though as Edit configuration makes a big difference to how much CPU is spent on the Tracktion side of things, how much is spent inside plugins and how parallelisable processing can be).

> [@bwall](#):
>
> Breaking changes?

Hopefully this should be a fairly seamless change but as I mentioned above you can test by switching to the `tracktion_graph` branch.

* * *

Is there something specific you’re hoping for or a change you’re waiting for?

We’ve needed to do this for a long time to build the groundwork for new features in the future but this won’t be a flashy “now you can do this” update I’m afraid…

---

<div class="post-metadata">

**Author:** ![bwall](https://sea2.discourse-cdn.com/flex026/user_avatar/forum.juce.com/bwall/32/618_2.png) [@bwall](https://forum.juce.com/u/bwall)\
**Post date:** [October 8, 2020, 8:14pm UTC](https://forum.juce.com/t/tracktion-engine-update/42115/3 "2020-10-08T20:14:08Z")

</div>

You have answered my questions. I mainly wanted to know if I will need to make any significant modifications to the DAW I am working on. And it sounds like there may be no changes needed, which is good news.

I will try out the tracktion\_graph branch and see how it goes. I will let you know.

Thank you!

---

<div class="post-metadata">

**Author:** ![bwall](https://sea2.discourse-cdn.com/flex026/user_avatar/forum.juce.com/bwall/32/618_2.png) [@bwall](https://forum.juce.com/u/bwall)\
**Post date:** [October 8, 2020, 8:49pm UTC](https://forum.juce.com/t/tracktion-engine-update/42115/4 "2020-10-08T20:49:26Z")

</div>

Good news! Everything looks good except for the `tracktion_graph` branch not having the new overloads for `te::loadEditFromFile()` and `te::createEmptyEdit()`. I cherry picked them into my copy of `tracktion_graph` branch and everything compiled and ran just fine.

I will do some more testing tonight in my studio. But, for now, it looks good!

Thank you!

---

<div class="post-metadata">

**Author:** ![bwall](https://sea2.discourse-cdn.com/flex026/user_avatar/forum.juce.com/bwall/32/618_2.png) [@bwall](https://forum.juce.com/u/bwall)\
**Post date:** [October 9, 2020, 2:03pm UTC](https://forum.juce.com/t/tracktion-engine-update/42115/5 "2020-10-09T14:03:45Z")

</div>

My additional testing in my studio went smoothly. So, at least for my DAW, the `tracktion_graph` branch appears to be working as expected.

Thank you for your hard work!

---

<div class="post-metadata">

**Author:** ![bwall](https://sea2.discourse-cdn.com/flex026/user_avatar/forum.juce.com/bwall/32/618_2.png) [@bwall](https://forum.juce.com/u/bwall)\
**Post date:** [October 9, 2020, 6:44pm UTC](https://forum.juce.com/t/tracktion-engine-update/42115/6 "2020-10-09T18:44:08Z")

</div>

Well, I spoke too soon! When I read back through your post above, I noticed that I also needed to set `ENABLE_EXPERIMENTAL_TRACKTION_GRAPH` to `true` in order to actually compile with the new graph.

Now, when I compile, I get link errors;  
example:

```auto
include_tracktion_engine_playback.obj : error LNK2001: unresolved external symbol "public: int __cdecl tracktion_graph::LockFreeMultiThreadedNodePlayer::process(struct tracktion_graph::Node::ProcessContext const &)"

```

Please advise?

---

<div class="post-metadata">

**Author:** ![bwall](https://sea2.discourse-cdn.com/flex026/user_avatar/forum.juce.com/bwall/32/618_2.png) [@bwall](https://forum.juce.com/u/bwall)\
**Post date:** [October 9, 2020, 6:54pm UTC](https://forum.juce.com/t/tracktion-engine-update/42115/7 "2020-10-09T18:54:46Z")

</div>

I just figured out that `tracktion_graph` must be added as an additional module in ProJucer, in addition to setting `ENABLE_EXPERIMENTAL_TRACKTION_GRAPH` to true.

So, everything is fine now. And the testing is still positive. So, far everything works as expected.

Thank you.

---

<div class="post-metadata">

**Author:** ![LiamG](https://sea2.discourse-cdn.com/flex026/user_avatar/forum.juce.com/liamg/32/6844_2.png) [@LiamG](https://forum.juce.com/u/LiamG)\
**Post date:** [October 14, 2020, 9:23am UTC](https://forum.juce.com/t/tracktion-engine-update/42115/8 "2020-10-14T09:23:21Z")

</div>

I want to learn more about the new Graph modules, in particular the Node class. The [documentation](https://github.com/Tracktion/tracktion_engine/blob/e7e388efdccd86cb767b72f1532d513d4be94c44/modules/tracktion_graph/docs/tracktion_graph_part_2_node.md) is very helpful, and there are a lot of files also inside `modules/tracktion_graph/tracktion_graph/` for me to study. My question is: what about the files in `modules/tracktion_engine/playback/audionodes/`, ie. `AudioNode`? Do I need to study these as well, or will they be replaced by the new files on the Tracktion Graph branch?

---

<div class="post-metadata">

**Author:** ![bwall](https://sea2.discourse-cdn.com/flex026/user_avatar/forum.juce.com/bwall/32/618_2.png) [@bwall](https://forum.juce.com/u/bwall)\
**Post date:** [October 14, 2020, 2:06pm UTC](https://forum.juce.com/t/tracktion-engine-update/42115/9 "2020-10-14T14:06:18Z")

</div>

I have been simply using the `tracktion_graph` module as a replacement for the legacy code. I have not delved any deeper into it yet.

Perhaps @dave96, who is the author of `tracktion_graph`, can offer some insight.

You may have new possibilities for your unique situation because the new `tracktion_graph` splits off the graph capabilities as a separate module. Therefore, there may be entry points not accessible before.

I hope it works out for you. Good luck!

---

<div class="post-metadata">

**Author:** ![RolandMR](https://sea2.discourse-cdn.com/flex026/user_avatar/forum.juce.com/rolandmr/32/641_2.png) [@RolandMR](https://forum.juce.com/u/RolandMR)\
**Post date:** [October 14, 2020, 5:02pm UTC](https://forum.juce.com/t/tracktion-engine-update/42115/10 "2020-10-14T17:02:01Z")

</div>

Dave is currently on holiday for the next 2 weeks. However the classes in `audionodes` will be replaced by `nodes` in the `playback/graph` folder.
