1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188
|
Pour les amigaistes :
Rcuprer et installer ixemul.lha disponible sur Aminet afin
d'amliorer la compatibilit des programmes utilisant ixemul.library.
En cas de problmes, me contacter : fr3dy@retemail.es
------------------------------------------------------------------------
Ceci est la version 0.5.2 de Normalize, un ajusteur de volume pour fichier wav.
Copyleft 2001, Chris Vaill <chrisvaill@gmail.com>
Normalize est un outil excessivement complexe pour ajuster le volume
de fichiers wave un volume standard. Cela s'avre utile pour la
cration de compilation de fichiers mp3 dont les niveaux sonores
d'enregistrement sont diffrents, provoquant des variations de volume
d'une chanson l'autre.
Pour le construire, tapez :
./configure
make
make install
Consultez le fichier INSTALL pour plus d'informations.
Consultez le fichier normalize.1 dans le tiroir man pour les paramres.
Envoyer les bugs, suggestions et commentaires chrisvaill@gmail.com
normalize est freeware. Consultez le fichier COPYING pour sa diffusion.
-------------------------------------------------------------------------
1 Sur quelles plates-formes fonctionne-t-il?
Je l'ai test sous GNU/Linux sur x86 et sous Solaris sur sparc. J'ai
entendu dire qu'il fonctionne galement sous GNU/Linux sur alpha et
sur BeOS R5 (en utilisant les options de configuration
--with-included-gettext et --disable-nls).
J'ai essay de faire un code aussi portable que possible et
j'apprierais de savoir s'il fonctionne sur d'autres plates-formes.
2 A quoi sert-il?
Disons que vous avez une floppe de fichiers wav contenant, selon
vous, le meilleur d'Elvis Presley et provenant de diffrents
albums. Vous voulez crer des fichiers mp3 pour les rajouter votre
collection existante mais comme ils proviennent de sources diverses,
ils sont tous enregistrs des volumes diffrents. Si vous avez dj
utilis normalize pour crer votre collection de mp3 ( partir de
fichiers wav), les fichiers ont tous le mme niveau sonore et vous
voulez que ces nouveaux titres aient galement le mme volume. Rien de
plus simple, lancez normalize sans options et chaque titre sera ajust
au niveau sonore standard :
normalize "Hound Dog.wav" "Blue Suede Shoes.wav" \
"Here Comes Santa Claus.wav" ...
Maintenant supposez que vous venez de rcuprer en fichiers wav les
titres de l'album "Start today" de Gorilla Biscuits, dont vous savez
qu'il a t enregistr un volume particulirement bas. On veut que
l'album entier soit plus fort mais que chaque piste garde le mme
volume par rapport aux autres. On utilise donc le mode batch. Les
fichiers sont dnomms 01.wav jusqu' 14.wav et sont dans le mme
tiroir que normalize. On lance normalize en mode batch pour conserver
les niveaux sonores relatifs, les autres options sont par dfault.
normalize -b *.wav
Vous lancez ensuite votre compresseur de mp3 et au final l'album
complet sera uniformment plus fort.
Maintenant supposez que vous voulez compresser l'album "When Forever
Comes Crashing" du groupe Converge. Cet album contient un titre, "Ten
Cents" relativement faible alors que les autres titres sont de volume
quivalent entre eux et plus fort. On lance normalize en mode batch
avec l'option v (verbosity) pour voir ce qui se passe :
> normalize -bv *.wav
Je calcule des niveaux...
Niveau pour track01.cdda.wav: -9,3980dBFS (0,0000dBFS maximum)
Niveau pour track02.cdda.wav: -9,2464dBFS (-0,1538dBFS maximum)
Niveau pour track03.cdda.wav: -8,6308dBFS (-0,2520dBFS maximum)
Niveau pour track04.cdda.wav: -8,7390dBFS (0,0000dBFS maximum)
Niveau pour track05.cdda.wav: -8,1000dBFS (-0,0003dBFS maximum)
Niveau pour track06.cdda.wav: -8,2215dBFS (-0,1754dBFS maximum)
Niveau pour track07.cdda.wav: -8,9346dBFS (-0,1765dBFS maximum)
Niveau pour track08.cdda.wav: -13,6175dBFS (-0,4552dBFS maximum)
Niveau pour track09.cdda.wav: -9,0107dBFS (-0,1778dBFS maximum)
Niveau pour track10.cdda.wav: -8,1824dBFS (-0,4519dBFS maximum)
Niveau pour track11.cdda.wav: -8,5700dBFS (-0,1778dBFS maximum)
L'cart type est 1,47 dB
Je jette de niveau -13,6175dBFS (diffrent par 4,58dB)
Moyen niveau: -8,6929dBFS
Je m'applique le rglage de -3,35dB...
Le volume de "Ten Cents", qui est la piste 8, diffre de la moyenne de
4.65 decibels, ce qui le classe comme aberration statistique d'aprs
la dviation standard de 1.48 decibels. Il n'est donc pas pris en
compte dans la moyenne mais l'ensemble de l'album est ajust, y
compris le titre "Ten Cents". Est considr comme aberration
statistique tout fichier ayant un niveau suprieur au double de la
dviation standard. Ce seuil peut tre chang en utilisant l'option
-t.
Pour finir, vous voulez faire une compilation de chansons des annes
80 pour votre maman ou quelqu'un d'autre. Vous ne voulez pas que ces
titres viennent polluer votre collection et donc leurs niveaux sonores
absolus importent peu du moment qu'ils soient equivalents, pour que
votre maman n ai pas besoin de rgler le volume chaque titre. On
lance normalize en mode mix :
normalize -m *.wav
Ainsi le volume de chaque titre sera ajust en fonction de la moyenne
obtenue pour tous ces fichiers et non pas en fonction du niveau par
dfault.
3 Comment a marche?
Voici juste une petite explication sur la faon dont normalize
fonctionne, pour les plus curieux.
Les volumes calculs correspondent des amplitudes RMS correspondant
grosso modo au volume peru. Mesurer l'amplitude RMS d'un fichier
entier n'apporte que peu de renseignements car une chanson douce
comprenant des parties bruyantes courtes sera toujours une chanson
douce mais les ajustements feront ressortir encore plus les parties
bruyantes.
On veut prendre en compte le volume maximum du fichier et ajust en
fonction de ce volume. Le signal est divis en 100 petits morceaux par
seconde et chaque morceau est analys de faon obtenir une
estimation de la "puissance instantanne" par unit de temps.
Malheureusement ce signal varie normment rendant la mesure de la
puissance maximale du signal original allatoire donc on applique un
algorythme sur la puissance du signal (en fait, un filtre moyen avec
une fentre de 100 lments de large). Le point maximum du signal le
plus stable reflte bien la puissance du fichier. On prend ensuite la
racine carre de la puissance pour obtenir la valeur de l'amplitude
RMS maximale.
Pour l'amplitude par dfaut de 0.25, j'ai trouv qu'elle tait dj
assez proche du niveau de la plupart de mes albums mais pas assez pour
occasionner des coupures dans des albums de volume sonore faible. Vous
pouvez changer l'amplitude par dfaut en fonction de votre collection
musicale (mais assurez-vous que tout soit ajust la mme amplitude
pour avoir le mme volume!).
Attention : je ne suis ni un ingnieur acoustique ni un statisticien
et ma thorie pour le traitement du signal peut tre incorrecte. Je
serais heureux d'avoir le point de vue d'un gnie du traitement des
signaux acoustiques si mes suppositions concernant la puissance du
signal, le signal peru, ou sur n'importe quel point de la thorie du
signal, sont errones.
4 Pourquoi ne pas utiliser l'ajustement par crte la place de
l'ajustement par amplitude RMS?
Cela fonctionnait comme a dans les versions prcdentes (non
distribues). J'ai simplement dcouvert que a ne fonctionnait pas
correctement. Le volume peru par l'oreille correspond plus une
amplitude RMS moyenne qu' un niveau de crte. Par consquent en
ajustant deux fichiers la mme amplitude RMS, on obtient un volume
peru identique (approximativement identique car certaines frquences
paraissent plus fortes la mme amplitude car l'oreille est
simplement plus sensible a ces frquences). Il est possible que j'en
tienne compte dans une version future mais a implique un tas de
nouveaux problmes.
L'ajustement par crte rend normalement les fichiers de gamme
dynamique restreinte trs fort et ne fait rien sur ceux gamme
dynamique tendue. Il n'y a pas vraiment d'ajustement, cela ressemble
plus l'extension d'un histogramme. Nanmoins depuis la version 0.5
vous pouvez utilisez l'option --peak pour l'ajustement par crte.
Au sujet des coupes : depuis la version 0.5.1 l'option -c effectue une
compression de la gamme dynamique au lieu des coupures ce qui limine
compltement les coupures mais donne un volume d'ajustement
incorrect. Merci Ted Wright pour cette suggestion.
5 Normalize pourrait-il oprer directement sur des fichiers mp3?
Je ne connais pas grand'chose sur le fonctionnement du mpeg audio,
mais je crois que pour analyser le volume et spcialement pour le
manipuler il faut des donnes audio au format PCM. Donc pour ajuster
un fichier mp3, vous devez le dcompresser, l'ajuster et le
re-compresser au risque de subir une deuxime perte due la
re-compression. Si cela ne vous pose aucun problme vous pouvez faire
ces oprations en lanant le script "normalize-mp3" inclus dans la
distribution.
|