Distortion Caused by Automation (Even Volume Automation)

Audio Plugin Hosts and other audio software applications discussion
RELATED
PRODUCTS

Post

In REAPER:
• Generate a 997 Hz sine wave
• Insert REAPER's own Frequency Spectrum Analyzer Meter on the master
• Change the analyzer's floor to -180dBFS
• Hit play
• You should see a pure sine wave with no distortion

Now (while the sine wave is still playing) simply boost or cut the track's volume by moving the track's own fader, and look at the analyzer again while boosting/cutting, and you'll see* so much distortion happening.

* Now I understand seeing distortion in an analyzer does not necessarily mean that it's audible, but still I'm curious as to why this is happening. And if I had a choice between automation without any distortion and automation that caused distortion, I'd choose the former every time, regardless of the audibility of said distortion.

This also happens if you use third-party gain plug-ins such as Kilohearts Gain, or any other plug-in that has an output gain functionality. I tested many plug-ins from different companies such as Kilohearts, Voxengo, ToneBoosters, TDR, FabFilter, DMG, and they all behaved the same way.

But if you use REAPER's own FADE functionality at the end of your sine wave track, you'll see that your analyzer shows very smooth attenuation without any distortion whatsoever.

Now I admit, I though maybe it had to do with the windowing functionality of the analyzer, so I changed the windowing from Blackman-harris to other options, and when Rectangular was chosen, the result of the volume boosting/cutting had less distortion depending on which company's plug-ins I was testing.

But the question remains, why is it that the FADE feature of REAPER introduces NO distortion at all, regardless of what windowing you choose in the analyzer (even when Blackman-harris is used), but simply moving a volume fader or a gain plug-in introduces so much distortion when automated?

The bigger question for me is:

Is automation inherently flawed in digital? Or is there a DAW out there whose automation behaves the same way REAPER's fade in/out functionality does? In other words: Is there a DAW out there that does not introduce any distortion at all when automating its parameters?

I would also love to know how Bitwig fares in this regard, since its whole claim to fame is its ability to automate/LFO everything.

Image
Image

Post

Why 997 Hz and not 1000 Hz? -180dBfs? You can't possibly hear that, it's masked by the spectrum peak at 1000Hz.

An abrupt change in volume will cause a click. Very fast changes in volume can be interpreted by spectrum analysers as "there's something in this frequency bin".

The only way around that is to change volume gently, eg use a slope over 10 millisecs.

I think you discovered that not all volume automation tools are created equally. Zoom in on the outcoming waveform to see what's actually happening.
We are the KVR collective. Resistance is futile. You will be assimilated. Image
My MusicCalc is served over https!!

Post

Generate a 997 Hz sine wave - never tried that and don't know how?
- is this a generated wave or a synth plugin that do this, or?
- 988 Hz is the note B5, seems like a bit flat C5 then?

My thinking is if every plugin you try do the same thing, maybe the source, the sine source is to blame?

I had lots of strangeness when reaper resample stuff and what algos are active.

So I would record the signal so you get an item(clip) on a track.
- then play back and look at what happends

Does the clip say "resampled"?
- I had a pro cd track at 44k that was resampled to 48k and got serious overs
- playing back at 44k all was fine and no overs
- and overs changed as another better algo was used
etc

Having a recorded clip, you can also transfer to another daw and compare.
- does every daw show the same result?

And lastly, not sure why you call a fader move "automation"?


a few things....

Post

BertKoor wrote: Wed Feb 19, 2025 8:47 am Why 997 Hz and not 1000 Hz? -180dBfs? You can't possibly hear that, it's masked by the spectrum peak at 1000Hz.

An abrupt change in volume will cause a click. Very fast changes in volume can be interpreted by spectrum analysers as "there's something in this frequency bin".

The only way around that is to change volume gently, eg use a slope over 10 millisecs.

I think you discovered that not all volume automation tools are created equally. Zoom in on the outcoming waveform to see what's actually happening.
You can go ahead and use 1000 Hz with the same result. But if you have to know why 997 Hz is usually used, here you go:
In audio testing, 997 Hz is often preferred over 1000 Hz because it utilizes a wider range of digital quantization values when sampled at standard rates like 44.1 kHz or 48 kHz, providing a more accurate representation of the audio signal, especially when measuring distortion or other parameters within a digital system; essentially, using 997 Hz allows for better utilization of the available bit depth in the digital conversion process.

Key points about using 997 Hz:

Better bit utilization:
When creating a 1000 Hz sine wave digitally, it might land on the same sample value repeatedly, limiting the ability to accurately measure subtle changes in the signal.

More even distribution of samples:
A 997 Hz signal distributes its cycles across a wider range of sample points, providing a more detailed representation of the waveform.

Prime number advantage:
Since 997 is a prime number, it has less mathematical redundancy when interacting with the digital sampling process, which can lead to cleaner results.
Yeah, this happens even with longer changes. I admit it's better but still not as clean as when REAPER's FADE function is used. REAPER's FADE is clean as it can be, even the shortest of fades are clean. So clearly they can do it cleanly. I'd like to know how I can force the whole program to be as clean as the FADE functionality.

I don't claim to hear this distortion, but I'd also prefer if I could avoid it from the get go.

Also these are Fabien and David Rick's responses on GS: I did what Fabien suggested but the block size does not go smaller than 4 samples. Even in Audio Devices when buffer and samples are set to 1, this problem still remains.
FabienTDR wrote:This is normal behaviour. Not too many people are aware of it.
Every host handles this differently. You'll also likely experience difference between plugin formats, various host settings, and whether this is offline rendered or not.

Audio plugins (much like your DAW as a whole) are processed in a block-wise manner. They don't eat sample by sample, but take a block of samples at once. That's exactly what the audio buffer size defines. This packaging allows them to be aligned much more efficiently in memory, and thus calculated much faster, e.g. in realtime. All automations and control parameter update in between every audio buffer, i.e. whenever the output buffer is written. Not on every sample. Some hosts even do this for their own audio processing, i.e. their own gain and EQ automations.

Plugin devs can partly smooth all external control over and beyond the audio buffer size to avoid all-too obvious distortion (when the host decides to really just update the control params once per audio block), but the problem is largely outside their control. Usually more about the host dev's considerations on CPU performance.

This is the historical default, but some plugin formats and hosts adopted more advanced methods. FL for example uses a dynamic internal audio buffer, which occasionally switches down to 1 sample during automation (to make it smooth whenever necessary).

Do you see the same happening when rendering in reaper? Check Reaper's rendering preferences for something along "Block size to use when rendering" (try setting it to 1)
David Rick wrote:Ah. You're seeing Amplitude Modulation products from the gain automation. The sideband structure is determined by the Fourier Transform of the modulation signal. Some DAW programs only do gain changes at block edges ('cause it's easy to program). That means you'll get stair steps in the gain control signal. Square waves have lots of harmonic components, which sprays crap to either side of the carrier (audio signal) as shown in the picture you linked. More sophisticated DAW's do sample-by-sample gain interpolation, which lowers the modulation bandwidth. Of course you could still write a step change into the automation data, but some DAW's will slew-rate limit that edge to reduce its bandwidth.

It turns out that this same effect can be observed in automated consoles. I remember reading an interview with a console designer (probably from Neve or SSL) who explained that he'd had to add a "de-zooting" circuit to keep that from happening. He didn't say what that circuit was, but I suspect it was some kind of LPF after the gain control DACs

Post

lfm wrote: Wed Feb 19, 2025 10:21 am Generate a 997 Hz sine wave - never tried that and don't know how?
- is this a generated wave or a synth plugin that do this, or?
- 988 Hz is the note B5, seems like a bit flat C5 then?
Click on FX on a track, then go to All Plugins, then search for Tone Generator. This happens with all frequencies, the frequency used is not the problem.
lfm wrote: Wed Feb 19, 2025 10:21 am My thinking is if every plugin you try do the same thing, maybe the source, the sine source is to blame?
I don't think so.
lfm wrote: Wed Feb 19, 2025 10:21 am I had lots of strangeness when reaper resample stuff and what algos are active.

So I would record the signal so you get an item(clip) on a track.
- then play back and look at what happends
That's exactly how I'm doing it too. Rendering the audio then loading it back and testing it.
lfm wrote: Wed Feb 19, 2025 10:21 am Does the clip say "resampled"?
- I had a pro cd track at 44k that was resampled to 48k and got serious overs
- playing back at 44k all was fine and no overs
- and overs changed as another better algo was used
etc
The audio is not resampled. They audio and the DAW are both set to 48kHz.
lfm wrote: Wed Feb 19, 2025 10:21 am
Having a recorded clip, you can also transfer to another daw and compare.
- does every daw show the same result?
I don't have access to Bitwig but I'm really curious as to how it behaves, since Bitwig's all about parameter movement and LFO and automation. I hope it doesn't behave the way REAPER does.

But even REAPER has the potential to be as clean as possible when the FADE is used at the beginning or end of a track. I just want to expand the same behavior for the whole DAW. Not just its fades.
lfm wrote: Wed Feb 19, 2025 10:21 am
And lastly, not sure why you call a fader move "automation"?


a few things....
You can also write automation with the same result. My point is, the moment you change a parameter, whether you're doing it live or it's a pre-written automation, you'll see distortion in the analyzer. In other words, while a parameter is changing, you can see the distortion introduced in the analyzer.

Post

limitlesssss wrote: Wed Feb 19, 2025 5:33 pm You can also write automation with the same result. My point is, the moment you change a parameter, whether you're doing it live or it's a pre-written automation, you'll see distortion in the analyzer. In other words, while a parameter is changing, you can see the distortion introduced in the analyzer.
Thanks for your extensive comments.

hmmm.... maybe I got it all wrong
- it's only while you are moving it, you took snapshot from?

Not that you moved from 0 dBFs and then set to -4 dBFs, and while there produce distortion?

Then I recall some settings how often to sample changes, every 10 ms or 100 ms or similar.

Thinking discrepancy physical changes and software response time if there is something to dive into?


There were a YT video linked on Presonus forum with analysis over distortion while automation faded etc, a lot of daws including StudioOne.
- this video showed similar things like you mention here

Some of daws tested did fix this problem, and believe some did not.
It was all the main daws tested, including ProTools as I recall.

I even remember he provided a analysis tool to just do a simple fade out and then run this analyser to see if your daw had a problem.

This was maybe 5 years ago or so, while I ran StudioOne. That forum is closed as I understand.

You should be able to install trials for many daws just to try things.

Sorry, but cannot remember name for the video. Search for daws and automation distortion or something.

Maybe somebody can chime in which it was....

Post

lfm wrote: Wed Feb 19, 2025 6:20 pm Thanks for your extensive comments.

hmmm.... maybe I got it all wrong
- it's only while you are moving it, you took snapshot from?
Exactly, the distortion is introduced only when the parameter is changing. When it settles, we go back to smooth sine wave, without distortion.
lfm wrote: Wed Feb 19, 2025 6:20 pm
Not that you moved from 0 dBFs and then set to -4 dBFs, and while there produce distortion?
You're right. After the parameter settles, we're back in smoothland.


lfm wrote: Wed Feb 19, 2025 6:20 pm
Then I recall some settings how often to sample changes, every 10 ms or 100 ms or similar.

Thinking discrepancy physical changes and software response time if there is something to dive into?


There were a YT video linked on Presonus forum with analysis over distortion while automation faded etc, a lot of daws including StudioOne.
- this video showed similar things like you mention here

Some of daws tested did fix this problem, and believe some did not.
It was all the main daws tested, including ProTools as I recall.

I even remember he provided a analysis tool to just do a simple fade out and then run this analyser to see if your daw had a problem.

This was maybe 5 years ago or so, while I ran StudioOne. That forum is closed as I understand.

You should be able to install trials for many daws just to try things.

Sorry, but cannot remember name for the video. Search for daws and automation distortion or something.

Maybe somebody can chime in which it was....
Yes, that was Admiral Bumblebee's videos you're talking about.

My point here is, if REAPER is capable of doing smooth FADE transitions without any distortion, why can't we have the same exact behavior for the whole DAW?

You may say, oh but automation will only last a few milliseconds and then we'll back to smooth signal. Sure, but in a DAW like Bitwig whose whole point is being able to LFO and automate everything, it means parameters will be in movement most of the time. And that's why I'm really curious about Bitwig since I'd love to switch to it.

Post

limitlesssss wrote: Wed Feb 19, 2025 6:38 pm
Yes, that was Admiral Bumblebee's videos you're talking about.

My point here is, if REAPER is capable of doing smooth FADE transitions without any distortion, why can't we have the same exact behavior for the whole DAW?

You may say, oh but automation will only last a few milliseconds and then we'll back to smooth signal. Sure, but in a DAW like Bitwig whose whole point is being able to LFO and automate everything, it means parameters will be in movement most of the time. And that's why I'm really curious about Bitwig since I'd love to switch to it.
Thanks for the reminder, that's the video.

Forward to Cockos team if manual adjustments needs attention.

Programmed automation there daw can look ahead, when you move a fader in realtime daw has no clue, if to guess a bit.

But let's say you do realtime rendering, not offline, then what you mentioned surely matters since artifacts will be part of final audio.
- you move faders manually in realtime also

Report to Cockos!
- but don't hold your breath

I reported 10 years ago about the resample issue, but all I got was denial and it must be intersample peaks and whatnot, not their algos for resampling.

Post

lfm wrote: Wed Feb 19, 2025 7:33 pm
limitlesssss wrote: Wed Feb 19, 2025 6:38 pm
Yes, that was Admiral Bumblebee's videos you're talking about.

My point here is, if REAPER is capable of doing smooth FADE transitions without any distortion, why can't we have the same exact behavior for the whole DAW?

You may say, oh but automation will only last a few milliseconds and then we'll back to smooth signal. Sure, but in a DAW like Bitwig whose whole point is being able to LFO and automate everything, it means parameters will be in movement most of the time. And that's why I'm really curious about Bitwig since I'd love to switch to it.
Thanks for the reminder, that's the video.

Forward to Cockos team if manual adjustments needs attention.

Programmed automation there daw can look ahead, when you move a fader in realtime daw has no clue, if to guess a bit.

But let's say you do realtime rendering, not offline, then what you mentioned surely matters since artifacts will be part of final audio.
- you move faders manually in realtime also

Report to Cockos!
- but don't hold your breath

I reported 10 years ago about the resample issue, but all I got was denial and it must be intersample peaks and whatnot, not their algos for resampling.
Yes, I used to have a REAPER forum account. I don't have anymore. I hope someone who does and cares about this would ask them.

But my concern now is only about Bitwig and then Cubase/Nuendo. These two are the DAWs that I will eventually switch to. Watching Polarity's videos makes you fall in love with Bitwig.

Post

limitlesssss wrote: Wed Feb 19, 2025 7:57 pm But my concern now is only about Bitwig and then Cubase/Nuendo. These two are the DAWs that I will eventually switch to. Watching Polarity's videos makes you fall in love with Bitwig.
And that's why I asked the same question from folks in the Bitwig forum. So far no responses though:

Does Bitwig Cause Distortion When Automating Parameters Like REAPER Does?

Post

This is a 3-second 997 Hz sine wave @ -6dBFS. There is a 1-second gain automation in the middle (12dB reduction) using all these third-party plug-ins + REAPER's own fade-out that obviously goes to -inf.

Image

Post

Is this thread for people to show their lack of understanding of basic DSP principles?
Ever heard of measuring artifacts? Its a limitation of your fft analyzer, and not at all a distortion…
If you are a musician, you don’t need to worry about the skills of sound engineers, its a different skill set. Though its helpful for electronic musicians to learn just the basics…

Post

Using spectrum analyzers to hunt for artifacts you can’t hear is just a huge waste of time.

Post

Tj Shredder wrote: Fri Feb 21, 2025 6:04 am Is this thread for people to show their lack of understanding of basic DSP principles?
Ever heard of measuring artifacts? Its a limitation of your fft analyzer, and not at all a distortion…
If you are a musician, you don’t need to worry about the skills of sound engineers, its a different skill set. Though its helpful for electronic musicians to learn just the basics…
How about demonstrating the truth of your statement with some examples, instead of trying to unsuccessfully take people down a peg or two just for being curious and asking questions? Wouldn't that be more educational and productive?

Post

FFT is mathematically complicated and there a whole books about that topic. But to explain it in simple words, there is a technical contradiction between a precise frequency and time representation. A kind of variant of Heisenbergs principle.
As FFT is based on bigger frames of data, maybe 2048 samples or 16384 samples.
The bigger the frame the more accurate the frequency and the less accurate the time…
Any frequency change in a signal will smear the time information. That is what you see. Its absolutely expected the way it is. The process is simply too slow to be precise…
Better trust your ears. Measuring equipment is just an aid if you know what and how it works…

Post Reply

Return to “Hosts & Applications (Sequencers, DAWs, Audio Editors, etc.)”