In general, the bottom line is this: in the Waveform Advanced settings, we can manually specify the use of 64-bit math when mixing. This implies high processing accuracy when calculations with variables occur at the level of 16 decimal
places X.000000000000000X
instead of 32-bit mathematics with only 7 digits
X.000000X
The higher the accuracy, the easier it is to avoid some rounding, which sometimes leads to digital distortion, dithering is used to avoid it.
In general, those who understand do not need to explain it to those who do not understand, and they are not interested in reading it.
So, I'm in the process of learning CMajor, where a fairly simple way to interact with an audio data stream
Code: Select all
input stream float LeftIn
output stream float LeftOut
LeftOut <- LeftInCode: Select all
input stream float64 LeftIn
output stream float64 LeftOut
LeftOut <- LeftInOkay, maybe the stream from the sample or synthesizer doesn't match, let's take less and give more output
Code: Select all
input stream float LeftIn
output stream float64 LeftOut
LeftOut <- LeftInCode: Select all
input stream float LeftIn
output stream float64 LeftOut
float64 NNN = LeftIn
LeftOut <- NNNNow we can get 64-bit precision data sequentially in the mixer after we manually converted it, right?
NO
If we try to get the data in 64-bit format sequentially after conversion, the plugin will not receive the audio stream data again and will remain silent.
Why? Well, I have two versions of why this might be happening.
1. Either enabling 64-bit mathematics inside Waveform is a broken function, because the Cmajor Api does not allow streaming without direct conversion, and requiring Waveform to provide 64-bit data, it receives only 32 bits, respectively, which means that all plug-ins always work in 32-bit mathematics and (probably) only when adding the values of several channels. increases accuracy, which completely disavows the idea of free plug-in chains on each track.
2 - Or, an error occurred when embedding the Cmajor Api inside Waveform, where the received stream is Cmajor patches with a maximum capacity of 32 bits.
I never rule out the possibility that I might not understand something, but if Waveform does not adjust the data within the plug-in chain at all, but simply rounds each plug-in to 32 bits at all times, there is a possibility that after each plug-in used (especially complex calculations like reverb, delay, pitch) we need to constantly use dithering for distortion limitations?
