Audio plugins, 64-bit processing (double precision DSP) in AudioUnits

It would appear that several DAWs built for OS X (Digital Performer, DSP Quattro, possibly even) Logic) are capable of processing audio internally using 64-bit samples. However, I can’t get an AU to build that will do that. My VST build seems to be working fine.

It would appear that in support for ‘processBlock (AudioBuffer…’ is missing.

Is it possible to build a double precision AU format plugin ?

Unless it has changed recently, AudioUnits only support 32 bit floating point processing. (That of course doesn’t stop the hosts from doing their internal calculations like bus mixing as 64 bit floating point.)

AAX plugins seem to have the same issue.

Is it possible to build a double precision AAX format plugin ?

should throw an assertion if the host can’t support 64-bit processing, yet for both AU and AAX plugins it is returning without throwing any errors.


Are you calling setProcessingPrecision? This method is called by the host, see the docs:

A client of the AudioProcessor calls this function to indicate which version of processBlock (single or double precision) it intends to call.

A client of the AudioProcessor is a DAW (i.e. plugin host), using the extra functionality that the AudioProcessor serves.

Your plugin offers double precision processing by returning true from AudioProcessor::supportsDoublePrecisionProcessing(). But you will have to select in the host, that you want to do double precision processing in the plugins.

1 Like

This makes more sense now =D
Thank you.

Apparently, only VSTs can process double precision audio.

Is this accurate ?

VST2/VST3 can process double precision audio. Technically, AU/AUv3s can also process double precision audio but I don’t think any host supports this (JUCE certainly doesn’t).

According to this page on Avid, 64 bit is a HDX feature:

Achieve pristine sound
[…] Get more headroom—and less headaches—thanks to 64-bit floating-point processing.