Re: [linux-audio-dev] normalize: destructive or non-destructive ?

New Message Reply About this list Date view Thread view Subject view Author view Other groups

Subject: Re: [linux-audio-dev] normalize: destructive or non-destructive ?
From: Tom Pincince (stillone_AT_snowcrest.net)
Date: Fri Nov 03 2000 - 22:19:12 EET


>what do you exactly mean by 'normalizing' ?

The normalize function locates the highest peak in a soundfile and
computes a scale factor that will cause the highest peak to be raised to
a user definable value, with the maximum value being 0 dbfs, or all
1's. This scale factor is then applied to all samples of the soundfile.

>in considering how to implement "normalize" for Ardour's editor

The short answer.
In the normalize dialog box, offer two user definable functions.

1) Level below 0 dbfs, entered as db's below 0 dbfs, and % below 0
dbfs. The user enters a value in which ever format he is most
comfortable and the program fills in the equivalent value in the other
format. Default to a value of 0 which will cause the soundfile to be
normalized to 0 dbfs, or all 1's for the highest peak.

2) Toggle between "write to original file" and "create new file".
Default to "write to original file" but allow the user to define a new
default as a preference.

AFAIK these two features accommodate all traditional uses of the
normalize function.

The long answer.
Improve upon the concept of normalization.

I am very sensitive to processes that are permanent and processes that
add quantization noise due to rounding errors. If the scale factor is
not a natural number, that is if it contains a fraction, it will produce
rounding errors.

>If necessary, it can be undone by knowing the scale factor used to
>normalize, and rescaling with its reciprocal

If the scale factor resulted in rounding, then the soundfile has been
permanently altered and the reciprocal will not necessarily produce a
bit for bit copy of the original. It might even compound the rounding
errors introduced in the normalization process. I suggest adding a new
feature to normalization, and that is to compute the highest natural
multiplier that can be applied to a soundfile without producing overs.
This is accomplished by rounding down to the nearest natural number the
scale factor that would raise the highest peak to 0 dbfs. This type of
normalization is similar to the float normalization process in that it
does not alter the precision of the mantissa. Dividing the normalized
soundfile by the same multiplier would produce a bit for bit copy of the
original.

Taking this one step further I suggest implementing normalization as a
plugin as well as a soundfile editor. Normalization actually
accomplishes very little, and using it to provide an amplification value
to a gain plugin at the first stage of a virtual channel strip, the trim
pot, is more useful than changing the soundfile. This will minimize the
effect of rounding errors introduced by plugins downstream during
mixing, and still be non destructive. There will be situations where
changing the soundfile is preferred, and this is why I suggest allowing
the scale factor to be used either way.

Normalizing all tracks after recording as policy is not a good idea,
since some tracks will have to be pulled down during mixing, and this
leads to more processing and more rounding errors. The unaltered output
of the a/d converters always offers maximum fidelity, and every
precaution should be taken to allow for the preservation of this
original signal.

Tom


New Message Reply About this list Date view Thread view Subject view Author view Other groups

This archive was generated by hypermail 2b28 : Fri Nov 03 2000 - 22:54:57 EET