Tracktion_Graph Branch 64 bit?

Is 64bit end-to-end processing on the new tracktion_graph branch ready yet?

If so, how do we enable 64 bit processing?

Thank you.

I don’t know the serious answer to this question, so I’ll leave that for Dave to answer, but a quick way to enable 64-bit processing is:

  • add a switch to your app that says “Enable 64-bit processing”
  • don’t bother making it do anything
  • sit back and let the placebo effect do the work :slight_smile:

The simplest option is as Jules said above…

But in terms of actual processing, no, end-to-end 64-bit processing isn’t enabled yet. I’m still working on the Tracktion Graph API (and trying to write a talk on it at the same time).

What is implemented is 64-bit summation. So anywhere there is a SummingNode this can sum its inputs in to a 64-bit buffer.

In order to get full 64-bit end-to-end, all the internal buffers will need to have 32 and 64 bit versions, probably with some wrapper class around it. That only then makes sense if plugins support 64-bit processing and we implement that.

Of course then everyone will complain that things run twice as slow as all the hard work developers put in to writing vectorised code will only be able to run half as many computations.

TL:DR no, not yet, it is still planned but will probably be at least several months until I get around to it.

Computer based real numbers (float, double) are not able to represent all values. Going from float to double expands the range. But, you know that, of course, and are teasing.

In my own code, I have had templated versions of my plugins that use double or float for over four years now. So, I have been ready for 64 bit processing for quite a while. And, since it mentions in the tracktion_engine docs that 64bit processing will be possible, I was just curious to know when.

Yeah, it’s a feature we’re targeting, just getting the new engine to work the same as the old one feature wise and then cleaning up the API will have to happen first I’m afraid.

I wish I could give a solid estimate of when that will be but I’m very unsure of how long this will take (I hoped tracktion_graph would be finished a month or two ago).

The other thing to remember is that priorities change over time and I have to work on other bits of software as stuff comes up in the company so any estimates I give will be subject to change.

Understood. I am happy that it is on the roadmap.

It will be a feature that tracktion_engine users can enable to take advantage of the expanded precision.

And, remember, as time goes by and processors get more powerful, the performance penalty for doubles will be less of a factor. In my work, it is already not an issue!