help-octave
[Top][All Lists]

## Re: Audio Compressor

 From: Doug Stewart Subject: Re: Audio Compressor Date: Tue, 18 Aug 2020 11:44:25 -0400

On Tue, Aug 18, 2020 at 11:26 AM Renato S. Yamane <renatoyamane@gmail.com> wrote:
Em ter., 18 de ago. de 2020 às 15:12, Doug Stewart <doug.dastew@gmail.com> escreveu:
On Tue, Aug 18, 2020 at 9:41 AM Renato S. Yamane <renatoyamane@gmail.com> wrote:
Is there an Audio Compressor available in Octave?

I'm compressing my noises in the worst way, as you can see in the "while" condition on the example below.

In my way, the peaks will be "clipped", and I would like to avoid my stupid workaround:

====================
crest_factor = 6;
typenoise = noise(10*44100, 1, 'pink');
[z, p, k] = butter(4, [100/(44100/2), 500/(44100/2)]);
sos = zp2sos (z, p, k);
filtered = sosfilt(sos, typenoise);
normalized = filtered / (rms(filtered) / 10^(-crest_factor/20));

#{
Now I'm making an stupid workaround, as the audio file must be in
a range from -1 to +1:
#}

while (normalized(normalized > 1) || normalized(normalized < -1))
normalized(normalized > 1) = 1;
normalized(normalized < -1) = -1;
normalized = normalized / (rms(normalized) / 10^(-crest_factor/20));
endwhile

audiowrite ('AudioFile.wav', normalized, 44100);
====================

There are many ways to do Audio Compression.
Tell us more about what you want to accomplish.

I just need to the user define the crest factor (first line of the code above) and the script must generate the noise (wav file) with the respective crest factor without clipping.
I'm expecting the user define the Crest Factor between -6 to -12dB.

Many thanks,
Renato

But crest factor and clipping are 2 independent things. you can have a crest factor of some value  and still have clipping or no clipping.

--
DAS