Cavernize Output Has Short Frequent High Pitched Poping Sound
Closed this issue · 7 comments
The Google Drive link shares a .mka file (containing E-AC-3 JOC .ec3 audio), it was from this video on BiliBili: https://www.bilibili.com/video/BV1rhDdYoEtf
https://drive.google.com/file/d/1KBaiWqvz83p-PSpbcOCD7UVa441d5z9B/view?usp=sharing
It's a little bit over the 25 MB limit of GitHub file upload so I need to do that.
I tried making my own test files to reproduce the issue, but my own files can sometimes encounter the issue but a lot of the times are just fine, too random. The audio track from that video was the only one thing that can reproduce the issue 100% of the time. Not sure why.
Open it in Cavernize, select output to be 9.1.6 with top sides, and render now. Open the result file, jump to around 4 or 5 minutes, you would hear extremely annoying high pitched poping sounds, short but frequent, super annoying. The audio wave form in my DAW looks like this:
Those peaks are not part of the content, it's the annoying high pitch pop sounds, extremely frequent. It usually happens with other files I run through Cavernize but again they were usually more random, this video's audio track is the first time it happens that frequently and constantly. Therefore this bug report.
JOC and PCM are out of sync, and when the objects jump around/swap places, they matrix the two channels' audio data together. Object swapping is very common practice, and this behavior was never observed before, this should be an isolated case. For fixing the video, you could add a bit of delay and reencode with the --override-bed argument.
Object swapping is very common practice, and this behavior was never observed before, this should be an isolated case.
Are you saying that this will be the same when the video is played on an actual Dolby Atmos reciever? If not, it doesn't make sense why Cavern or Cavernize would produce this, at least the creator of this content was not aware of this. Are you suggesting this is the fault of the Dolby spatial coding, not Cavern?
It's likely a custom encoder issue that works on a Dolby decoder edge case.
For fixing the video, you could add a bit of delay and reencode with the --override-bed argument.
I have been pondering this, I get the part of getting a .wav out and add a bit delay, but what's the --override-bed argument? Is that some command for some command line tool? Or is it Cavern functionality? If I understand it correctly, it's a functionality to override the 5.1 downmix channel audio while leaving the JOC data untouched?
Yes, it's a command line argument for CavernizeGUI.exe. If it gets any argument, it runs in CLI mode.
Thanks, finally fixed it. For people facing the same issue, I used Shutter Encoder to covert to .wav, and use Music Media Helper to add a little bit of delay (just tried 3ms and it works), then produce a .ec3 file from the delayed file (if you just use the .wav, it shows error of the length being different for some reason), here we have a delayed.ec3. Then use EAC3to to extract the source video's ec3 file (Cavernize command line --override-bed argument only accept the original ec3 file, without any container), and then open up command line window, drag the cavernizeGUI.exe into it, space, drag and drop source.ec3,space, paste --override-bed, space, drag and drop delayed.ec3, hit enter, the GUI will pop up, choose the channel format and render now. It works! Just a tad cumbersome.
Actually, after doing this for several times when viewing different videos with the same issue, it turns out the "add a bit delay" step is not needed. Simply convert a 6ch.wav out, extract source.ec3 from the mka container, then command line
CavernizeGUI.exe source.ec3 --override-bed 6ch.wav
then render out, the decoded 16 channel 9.1.6 audio is now without the pop sound problem.
Not sure what the issue really is, but since adding delay is not needed, might actually be an issue of decoding the 6 channel audio. Anyways, at least we have a manual workaround. I just hope this won't be a problem in the potential future real time media player.