Closed richardpl closed 2 years ago
Is that file the original input or already processed by DynAudNorm?
If that is supposed to be the original input, then it's already heavily clipped and DynAudNorm cannot "magically" fix this 😮
Your provided file:
Zoomed in:
Regards.
I fixed in in my version of filter. Your code just clips audio at start, badly.
I don't know what you fixed in "your version" of the filter, or what "your version" of the filter is. You did not explain that.
But, as pointed out above, the sample file that you provided already is heavily distorted. Load that file into Audacity (or whatever audio editor you prefer) and press play. Sounds totally distorted. And if you zoom in, you will see that this file sounds extremely distorted because it already is heavily clipped. Actually, just look at the screenshots I have posted above... 😏
So, again: If that is supposed to be the original input file, then it is perfectly expected to get clipping, because, well... the clipping is in the input! If you process a file which already is heavily distorted with DynAudNorm, then things can only get worse.
Regards.
Input is in floating sample format wav. I fixed it in FFmpeg, do us you wish with your broken code.
I don't know why you give thumbs down. You still haven't clarified whether your sample file is supposed to be the original input (1) that results in clipping when processed by DynAudNorm, or whether it is processed output (2) produced by DynAudNorm.
In case (1), as pointed out before, your input already is heavily clipped/distorted and DynAudNorm cannot "magically" repair this; just load the file in Audacity or Audition to see/hear yourself, if you don't trust my screenshots. In case (2), I would need the original (unprocessed) input file in order to re-produce the issue, because the processed output (alone) is not very helpful here.
Input is in floating sample format wav
The DynAudNorm "core" library always processes samples as floating-point. The DynAudNorm CLI tools use libsndfile to read the input file and write the output file, which always returns/takes samples in floating-point format, regardless of file format:
sf_count_t sf_readf_double(SNDFILE *sndfile, double *ptr, sf_count_t frames);
The data type used by the calling program and the data format of the file do not need to be the same.
Regardless of whether data in the file is 8, 16, 24 or 32 bit wide, the data will be read as floating
point data in the range [-1.0, 1.0]
I fixed it in FFmpeg, do us you wish with your broken code.
Please note that the "dynaudnorm" filter in FFmpeg is a separate codebase from my DynAudNorm project.
(it was completely re-written/adapted by FFmpge team)
Anyhow, it would be helpful, if you could elaborate on what exactly you "fixed" in FFmpeg code and how you did it 😃
Regards.
Input is in floating sample format wav. I fixed it in FFmpeg, do us you wish with your broken code. -- @richardpl
As someone who utilizes this project (as a consumer, not a contributor) and whom also utilizes ffmpeg... I'd really like to see @lordmulder's questions answered.
Also, the tone in your response... specifically the "do as you wish with your broken code" seems very off base given that everything I'm seeing is that @lordmulder is trying to understand and actually assist; but without clear input and cooperation, how is that supposed to happen. Taking it to insults is just distasteful and completely childish.
On that note... @lordmulder THANK YOU for the effort that you to put into this project.
No sufficient explanation provided. Closed.
Clipping happens at start, try with this file: https://0x0.st/-gtd.wav