Waveform 9 review...
-
- KVRian
- 872 posts since 25 Aug, 2006
Re part 8: Plugin Delay Compensation:
Hopefully they can get on top of this. I am really glad that you do include the Good things as well. This is a very informative and thorough review. Well worth the small contribution I made.
"Some plugins exhibit latency. That latency needs to be compensated otherwise things desync. Waveform tries to do this in most places, but there’s places where it doesn’t.
Clip FX are not compensated (as shown in the image above)
Racks are often not compensated correctly.
Latency causing plugins after an Aux Return are not compensated.
Latency causing plugins after an Aux Send are not compensated.
Sometimes PDC doesn’t seem to work correctly at all. I’ve encountered scenarios where the compensation is off by a millisecond or two for no discernible reason. Save the edit. Reload it and everything is fine.
I’ve been tricked in to trying to fix problems that I thought were part of the recording because of phase cancellation issues that were actually the result of incorrect latency compensation! (I wish I knew what caused this so I could report it, Sorry devs!)"
Hopefully they can get on top of this. I am really glad that you do include the Good things as well. This is a very informative and thorough review. Well worth the small contribution I made.
"Some plugins exhibit latency. That latency needs to be compensated otherwise things desync. Waveform tries to do this in most places, but there’s places where it doesn’t.
Clip FX are not compensated (as shown in the image above)
Racks are often not compensated correctly.
Latency causing plugins after an Aux Return are not compensated.
Latency causing plugins after an Aux Send are not compensated.
Sometimes PDC doesn’t seem to work correctly at all. I’ve encountered scenarios where the compensation is off by a millisecond or two for no discernible reason. Save the edit. Reload it and everything is fine.
I’ve been tricked in to trying to fix problems that I thought were part of the recording because of phase cancellation issues that were actually the result of incorrect latency compensation! (I wish I knew what caused this so I could report it, Sorry devs!)"
-
- KVRAF
- 2417 posts since 17 Jun, 2003
This has been a really interesting series of posts/reviews. Thanks Robert
I'd like to see an option on the audio inputs, that's the equivalent of Reaper's "use audio driver reported latency", even though I'd probably end up running loopback tests, and checking that was accurate myself, with my own hardware.
Because the time adjust defaulting to something other than "0.000ms", based on what the interface reports, when you change sample rate, would be better than defaulting to 0m/s, I think.
I'd like to see an option on the audio inputs, that's the equivalent of Reaper's "use audio driver reported latency", even though I'd probably end up running loopback tests, and checking that was accurate myself, with my own hardware.
Because the time adjust defaulting to something other than "0.000ms", based on what the interface reports, when you change sample rate, would be better than defaulting to 0m/s, I think.
"my gosh it's a friggin hardware"
-
- KVRAF
- 1790 posts since 30 Dec, 2012
The "Time Adjust" property is additional compensation, we automatically add the time reported from the driver.
So if you leave this at "0.0ms", you'll still be applying the delay reported by the driver.
I think the main problem here is on macOS, the latency reported by the JUCE audio classes changes every time the audio device changes.
I've reported this as a problem to the JUCE team in the hope that they can take a look.
So if you leave this at "0.0ms", you'll still be applying the delay reported by the driver.
I think the main problem here is on macOS, the latency reported by the JUCE audio classes changes every time the audio device changes.
I've reported this as a problem to the JUCE team in the hope that they can take a look.
-
- KVRAF
- 2417 posts since 17 Jun, 2003
Ah, okay. Cheers Dave, good to know 
I've always found i needed to do a loopback test to get audio recordings fully in sync (on windows), even if the driver reported latency is already compensated. Reaper displays what I think is the driver reported latency in the top right of the gui, like this. Could be useful to compare what Juce/Tracktion reports?
and
I've always found i needed to do a loopback test to get audio recordings fully in sync (on windows), even if the driver reported latency is already compensated. Reaper displays what I think is the driver reported latency in the top right of the gui, like this. Could be useful to compare what Juce/Tracktion reports?
and
You do not have the required permissions to view the files attached to this post.
"my gosh it's a friggin hardware"
- KVRian
- 615 posts since 30 Apr, 2003 from London, UK
I guess this explains why I get a negative figure on loopback test (of -0.2ms) with my Audient ID14. Driver must be reporting latency slightly incorrectly.dRowAudio wrote:The "Time Adjust" property is additional compensation, we automatically add the time reported from the driver.
So if you leave this at "0.0ms", you'll still be applying the delay reported by the driver.
I think the main problem here is on macOS, the latency reported by the JUCE audio classes changes every time the audio device changes.
I've reported this as a problem to the JUCE team in the hope that they can take a look.
'He craved immortality so much, he was prepared to die for it.'
-
Robert Randolph Robert Randolph https://www.kvraudio.com/forum/memberlist.php?mode=viewprofile&u=7328
- KVRAF
- Topic Starter
- 2226 posts since 25 May, 2003 from Saint Petersburg, Florida
In my testing this was not the case. The driver latency was not compensated. The latency in a full loopback was always the total driver latency amount until manual compensation was done.dRowAudio wrote:The "Time Adjust" property is additional compensation, we automatically add the time reported from the driver.
So if you leave this at "0.0ms", you'll still be applying the delay reported by the driver.
I think the main problem here is on macOS, the latency reported by the JUCE audio classes changes every time the audio device changes.
I've reported this as a problem to the JUCE team in the hope that they can take a look.
I sanity checked myself by checking with Reaper and Cubase, both of which were within 30 samples on loopback.
I checked this on 3 computers with 5 different devices.
I can repeat this test on video or a series of screenshots if you'd like. (the review post has screenshots clearly showing the discrepancy already)
-
- KVRAF
- 2417 posts since 17 Jun, 2003
Must get myself an Audient ID4 then, if the complete RTT latency is only 0.2m/s. That's pretty damn good.
When you checked with Reaper Robert, did you turn off "use audio driver reported latency" under Options/Preferences/Audio/Recording before testing?
When you checked with Reaper Robert, did you turn off "use audio driver reported latency" under Options/Preferences/Audio/Recording before testing?
"my gosh it's a friggin hardware"
-
Robert Randolph Robert Randolph https://www.kvraudio.com/forum/memberlist.php?mode=viewprofile&u=7328
- KVRAF
- Topic Starter
- 2226 posts since 25 May, 2003 from Saint Petersburg, Florida
Ok, I tested this again. This is on the macOS High Sierra latest with a Focusrite Saffire pro24 (I stubbed my toe on it walking in the studio this morning, so this is how I'm getting back at it).
I'm using Waveform 9.0.39b.

Firstly, I made sure that the audio device was the default when loading up Waveform. There was no device switching after load.
I then did a loopback with a 1khz click track sound. This allows you to count the waveform periods to get an idea of how many milliseconds of delay there is.
The project is at 44100khz sample rate. 1 millisecond is about 44 samples. (every 10th sample adds a leap-sample
)
Reaper was setup with "Use audio driver reported latency". I feel this is a fair comparison because this is how Waveform should work according to Dave, "So if you leave this at "0.0ms", you'll still be applying the delay reported by the driver."
Results are shown in the graphic:
I'm also concerned that the uncompensated latency is not correct as well. It's only 4-5 samples, but I've never seen another host do this before.
I will test this in Windows now and report back.
I'm using Waveform 9.0.39b.

Firstly, I made sure that the audio device was the default when loading up Waveform. There was no device switching after load.
I then did a loopback with a 1khz click track sound. This allows you to count the waveform periods to get an idea of how many milliseconds of delay there is.
The project is at 44100khz sample rate. 1 millisecond is about 44 samples. (every 10th sample adds a leap-sample
Reaper was setup with "Use audio driver reported latency". I feel this is a fair comparison because this is how Waveform should work according to Dave, "So if you leave this at "0.0ms", you'll still be applying the delay reported by the driver."
Results are shown in the graphic:
- Reaper - sample perfect compensation.
- Waveform with auto-detect loopback (manual setup) - 17 samples off. Just under 0.4ms. Not bad, but not optimal.
- Waveform default, user has done nothing - Over 8ms off, around 352 samples. This is actually strange because the uncompensated delay is 7.89ms (348 samples). I checked this externally with a scope (I have a blog post about how to do this somewhere).
I'm also concerned that the uncompensated latency is not correct as well. It's only 4-5 samples, but I've never seen another host do this before.
I will test this in Windows now and report back.
-
Robert Randolph Robert Randolph https://www.kvraudio.com/forum/memberlist.php?mode=viewprofile&u=7328
- KVRAF
- Topic Starter
- 2226 posts since 25 May, 2003 from Saint Petersburg, Florida
No. That's the default behaviour in Reaper and nearly every single DAW I'm aware of. Most DAWs don't even let you turn this off!chico.co.uk wrote:When you checked with Reaper Robert, did you turn off "use audio driver reported latency" under Options/Preferences/Audio/Recording before testing?
And since Dave said
I think this is a fair comparison to Waveform's default behaviour.So if you leave this at "0.0ms", you'll still be applying the delay reported by the driver.
It seems that Waveform's behaviour is bugged, possibly only on macOS?
-
- KVRAF
- 2417 posts since 17 Jun, 2003
Yes, i know. I was thinking of the fact that operandx gets a loopback test of 0.2m/s, which is obviously too low to *not* be compensating for the driver's reported latency. So i figured that meant compensation was happening, and to see that not happen in Reaper, turn that off.Robert Randolph wrote:No. That's the default behaviour in Reaper and nearly every single DAW I'm aware of. Most DAWs don't even let you turn this off!chico.co.uk wrote:When you checked with Reaper Robert, did you turn off "use audio driver reported latency" under Options/Preferences/Audio/Recording before testing?
But I guess his results must be on windows, because you're obviously seeing much higher values, on OSX ...
I can't test this myself just now, but will do, although it'll be on windows ... i've been planning on moving to OSX for a while, but can't quite justify buying a macbook just to make fun noises
"my gosh it's a friggin hardware"
-
Robert Randolph Robert Randolph https://www.kvraudio.com/forum/memberlist.php?mode=viewprofile&u=7328
- KVRAF
- Topic Starter
- 2226 posts since 25 May, 2003 from Saint Petersburg, Florida
Windows
Windows 10 (updated). Waveform 9.0.39b.
Interface: Focusrite Clarett 8preX at 128 sample buffer size. 44,100 sample rate.
Top is the reference file. 1,000hz click file.
Bottom is the loopback recording.
Waveform Default
Here's the default behaviour in windows for me.

The recorded audio is 1.5ms early!
Waveform Compensated
First, Waveform reports -2.1ms latency, which is wrong.

Then when recording it's (unsurprisingly) 0.6ms late.

We were 1.5ms early before, Waveform tried to offset by -2.1ms. We got the expected errant behaviour of 0.6ms incorrect compensation.
Reaper
Fresh install of Reaper, right off the website.

Pardon my poor gain, I used the incorrect input and didn't adjust the gain correctly.
Regardless... by default with no user adjustment, Reaper is only 1 sample off.
Conclusion
Windows and macOS both behave incorrectly. They do so in different ways, but neither one does recording compensation correctly. Waveform still requires user intervention to get close, but is still incorrect.
Other DAWs handle this without user intervention and are more accurate than Waveform with user intervention.
tldr; Dave, please save us.
Windows 10 (updated). Waveform 9.0.39b.
Interface: Focusrite Clarett 8preX at 128 sample buffer size. 44,100 sample rate.
Top is the reference file. 1,000hz click file.
Bottom is the loopback recording.
Waveform Default
Here's the default behaviour in windows for me.

The recorded audio is 1.5ms early!
Waveform Compensated
First, Waveform reports -2.1ms latency, which is wrong.

Then when recording it's (unsurprisingly) 0.6ms late.

We were 1.5ms early before, Waveform tried to offset by -2.1ms. We got the expected errant behaviour of 0.6ms incorrect compensation.
Reaper
Fresh install of Reaper, right off the website.

Pardon my poor gain, I used the incorrect input and didn't adjust the gain correctly.
Regardless... by default with no user adjustment, Reaper is only 1 sample off.
Conclusion
Windows and macOS both behave incorrectly. They do so in different ways, but neither one does recording compensation correctly. Waveform still requires user intervention to get close, but is still incorrect.
Other DAWs handle this without user intervention and are more accurate than Waveform with user intervention.
tldr; Dave, please save us.
-
Robert Randolph Robert Randolph https://www.kvraudio.com/forum/memberlist.php?mode=viewprofile&u=7328
- KVRAF
- Topic Starter
- 2226 posts since 25 May, 2003 from Saint Petersburg, Florida
Thanks Steve, but I don't see what you corrected or added?Steve Bolivar wrote:Re part 8: Plugin Delay Compensation:
Hopefully they can get on top of this. I am really glad that you do include the Good things as well. This is a very informative and thorough review. Well worth the small contribution I made.
"Some plugins exhibit latency. That latency needs to be compensated otherwise things desync. Waveform tries to do this in most places, but there’s places where it doesn’t.
Clip FX are not compensated (as shown in the image above)
Racks are often not compensated correctly.
Latency causing plugins after an Aux Return are not compensated.
Latency causing plugins after an Aux Send are not compensated.
Sometimes PDC doesn’t seem to work correctly at all. I’ve encountered scenarios where the compensation is off by a millisecond or two for no discernible reason. Save the edit. Reload it and everything is fine.
I’ve been tricked in to trying to fix problems that I thought were part of the recording because of phase cancellation issues that were actually the result of incorrect latency compensation! (I wish I knew what caused this so I could report it, Sorry devs!)"
I would just run a Diff on it, but there's a lot of formatting in the original article code.
-
- KVRian
- 872 posts since 25 Aug, 2006
Sorry, I was just quoting your review to put my comments in context. I have nothing to correct or add, only compliments for now.
-
- KVRAF
- 1790 posts since 30 Dec, 2012
Point taken. I was aware of some problem with macOS reported figures, I thought this worked well on Windows though.
I'll add it to the bug tracker to take a closer look at.
I'll add it to the bug tracker to take a closer look at.
- KVRian
- 599 posts since 8 Apr, 2014 from USA
Robert,
Be sure to check out the new 9.1 release. Hopefully there is still time for an addendum addressing the new features/fixes.
Be sure to check out the new 9.1 release. Hopefully there is still time for an addendum addressing the new features/fixes.
