Bienvenue à Sandy
Souhaitons la bienvenue à Sandy, nouvelle recrue de l’équipe, fruit des travaux de ma collègue Lidwine pour une tête artificielle low-cost.
La tête est une tête d’entraînement pour élèves coiffeurs, les oreilles sont des oreilles pour apprentissage de l’acupuncture.
Sandy est passée dans les mains de l’atelier menuiserie de France Télévisions, ils aiment les clous ! (Et coller le silicone n’est pas aisé).
Maintenant, il faut tester les résultats …
libebur128 modulaire
Depuis quelques jours, l’excellente bibliothèque libebur128 a été séparée en deux dépôts git : la bibliothèque elle même, et loudness-scanner, l’application qui permet de mesurer des fichiers par l’intermédiaire de modules externes comme libsndfile ou FFmpeg.
Cela permet de simplifier la compilation pour ceux qui ne souhaitent que la bibliothèque. On peut aussi voir dans les discussions qu’il y aura peut-être bientôt un paquet debian.
Mesure loudness avec des logiciels libres
La vidéo de la présentation que j’ai eu le plaisir de présenter aux RMLL2013. Au menu : libebur128, FFmpeg et freelcs. En anglais (enfin … presque).
![]()
La présentation peut être trouvée ici.
Mesure loudness avec FFmpeg
J’ai eu la bonne surprise de découvrir que FFmpeg propose désormais un filtre ebur128 ! Pour en bénéficier, il vous faudra utiliser (au moins) la version 1.1 de FFmpeg, qui n’est peut-être pas encore installée par votre gestionnaire de paquets favori.
Étant donné que j’étais impatient de tester cette nouvelle fonctionnalité, j’ai fait une installation (non standard) de FFmpeg à partir des sources de la version 1.2 « Magic ».
Ce filtre propose deux modes d’utilisation : production d’un rapport dans le Terminal, ou création d’une fenêtre affichant graphiquement la mesure.
Mode Terminal :
(J’ai supprimé une partie des lignes).
manu@debian-wheezy:~/Sources/ffmpeg-1.2$ ./ffmpeg -nostats -i '/home/manu/Musique/seq-3341-3-16bit.wav' -filter_complex ebur128 -f null - ffmpeg version 1.2 Copyright (c) 2000-2013 the FFmpeg developers built on Apr 28 2013 08:32:29 with gcc 4.7 (Debian 4.7.2-5) configuration: --enable-gpl libavutil 52. 18.100 / 52. 18.100 libavcodec 54. 92.100 / 54. 92.100 libavformat 54. 63.104 / 54. 63.104 libavdevice 54. 3.103 / 54. 3.103 libavfilter 3. 42.103 / 3. 42.103 libswscale 2. 2.100 / 2. 2.100 libswresample 0. 17.102 / 0. 17.102 libpostproc 52. 2.100 / 52. 2.100 [wav @ 0x34b6020] max_analyze_duration 5000000 reached at 5013333 microseconds Guessed Channel Layout for Input Stream #0.0 : stereo Input #0, wav, from '/home/manu/Musique/seq-3341-3-16bit.wav': Duration: 00:01:00.00, bitrate: 1536 kb/s Stream #0:0: Audio: pcm_s16le ([1][0][0][0] / 0x0001), 48000 Hz, stereo, s16, 1536 kb/s Output #0, null, to 'pipe:': Metadata: encoder : Lavf54.63.104 Stream #0:0: Audio: pcm_s16le, 48000 Hz, stereo, s16, 1536 kb/s Stream mapping: Stream #0:0 (pcm_s16le) -> ebur128 ebur128 -> Stream #0:0 (pcm_s16le) Press [q] to stop, [?] for help [Parsed_ebur128_0 @ 0x34b8660] t: 0.0999792 M:-120.7 S:-120.7 I: -70.0 LUFS LRA: 0.0 LU [Parsed_ebur128_0 @ 0x34b8660] t: 0.199979 M:-120.7 S:-120.7 I: -70.0 LUFS LRA: 0.0 LU [Parsed_ebur128_0 @ 0x34b8660] t: 0.299979 M:-120.7 S:-120.7 I: -70.0 LUFS LRA: 0.0 LU [Parsed_ebur128_0 @ 0x34b8660] t: 0.399979 M: -40.0 S:-120.7 I: -40.0 LUFS LRA: 0.0 LU [Parsed_ebur128_0 @ 0x34b8660] t: 0.499979 M: -40.0 S:-120.7 I: -40.0 LUFS LRA: 0.0 LU [Parsed_ebur128_0 @ 0x34b8660] t: 0.599979 M: -40.0 S:-120.7 I: -40.0 LUFS LRA: 0.0 LU [Parsed_ebur128_0 @ 0x34b8660] t: 0.699979 M: -40.0 S:-120.7 I: -40.0 LUFS LRA: 0.0 LU [Parsed_ebur128_0 @ 0x34b8660] t: 0.799979 M: -40.0 S:-120.7 I: -40.0 LUFS LRA: 0.0 LU [Parsed_ebur128_0 @ 0x34b8660] t: 0.899979 M: -40.0 S:-120.7 I: -40.0 LUFS LRA: 0.0 LU [Parsed_ebur128_0 @ 0x34b8660] t: 0.999979 M: -40.0 S:-120.7 I: -40.0 LUFS LRA: 0.0 LU [Parsed_ebur128_0 @ 0x34b8660] t: 1.09998 M: -40.0 S:-120.7 I: -40.0 LUFS LRA: 0.0 LU [Parsed_ebur128_0 @ 0x34b8660] t: 1.19998 M: -40.0 S:-120.7 I: -40.0 LUFS LRA: 0.0 LU [Parsed_ebur128_0 @ 0x34b8660] t: 1.29998 M: -40.0 S:-120.7 I: -40.0 LUFS LRA: 0.0 LU [Parsed_ebur128_0 @ 0x34b8660] t: 1.39998 M: -40.0 S:-120.7 I: -40.0 LUFS LRA: 0.0 LU [Parsed_ebur128_0 @ 0x34b8660] t: 1.49998 M: -40.0 S:-120.7 I: -40.0 LUFS LRA: 0.0 LU [Parsed_ebur128_0 @ 0x34b8660] t: 1.59998 M: -40.0 S:-120.7 I: -40.0 LUFS LRA: 0.0 LU [Parsed_ebur128_0 @ 0x34b8660] t: 1.69998 M: -40.0 S:-120.7 I: -40.0 LUFS LRA: 0.0 LU [Parsed_ebur128_0 @ 0x34b8660] t: 1.79998 M: -40.0 S:-120.7 I: -40.0 LUFS LRA: 0.0 LU [Parsed_ebur128_0 @ 0x34b8660] t: 1.89998 M: -40.0 S:-120.7 I: -40.0 LUFS LRA: 0.0 LU [Parsed_ebur128_0 @ 0x34b8660] t: 1.99998 M: -40.0 S:-120.7 I: -40.0 LUFS LRA: 0.0 LU [Parsed_ebur128_0 @ 0x34b8660] t: 2.09998 M: -40.0 S:-120.7 I: -40.0 LUFS LRA: 0.0 LU [Parsed_ebur128_0 @ 0x34b8660] t: 2.19998 M: -40.0 S:-120.7 I: -40.0 LUFS LRA: 0.0 LU ... (snip) ... [Parsed_ebur128_0 @ 0x34b8660] t: 59.5 M: -40.0 S: -40.0 I: -23.0 LUFS LRA: 17.0 LU [Parsed_ebur128_0 @ 0x34b8660] t: 59.6 M: -40.0 S: -40.0 I: -23.0 LUFS LRA: 17.0 LU [Parsed_ebur128_0 @ 0x34b8660] t: 59.7 M: -40.0 S: -40.0 I: -23.0 LUFS LRA: 17.0 LU [Parsed_ebur128_0 @ 0x34b8660] t: 59.8 M: -40.0 S: -40.0 I: -23.0 LUFS LRA: 17.0 LU [Parsed_ebur128_0 @ 0x34b8660] t: 59.9 M: -40.0 S: -40.0 I: -23.0 LUFS LRA: 17.0 LU [Parsed_ebur128_0 @ 0x34b8660] t: 60 M: -40.0 S: -40.0 I: -23.0 LUFS LRA: 17.0 LU size=N/A time=00:01:00.00 bitrate=N/A video:0kB audio:11250kB subtitle:0 global headers:0kB muxing overhead -100.000191% Summary: Integrated loudness: I: -23.0 LUFS Threshold: -37.5 LUFS Loudness range: LRA: 17.0 LU Threshold: -47.4 LUFS LRA low: -40.0 LUFS LRA high: -23.0 LUFS
Mode graphique :
manu@debian-wheezy:~/Sources/ffmpeg-1.2$ ./ffplay -f lavfi -i "amovie='/home/manu/Musique/seq-3341-3-16bit.wav',ebur128=video=1:meter=18 [out0][out1]" ffplay version 1.2 Copyright (c) 2003-2013 the FFmpeg developers built on Apr 28 2013 10:59:36 with gcc 4.7 (Debian 4.7.2-5) configuration: --enable-gpl --enable-nonfree libavutil 52. 18.100 / 52. 18.100 libavcodec 54. 92.100 / 54. 92.100 libavformat 54. 63.104 / 54. 63.104 libavdevice 54. 3.103 / 54. 3.103 libavfilter 3. 42.103 / 3. 42.103 libswscale 2. 2.100 / 2. 2.100 libswresample 0. 17.102 / 0. 17.102 libpostproc 52. 2.100 / 52. 2.100 [wav @ 0x2b76320] max_analyze_duration 5000000 reached at 5013333 microseconds [Parsed_amovie_0 @ 0x2b514c0] Channel layout is not set in output stream 0, guessed channel layout is 'stereo' [lavfi @ 0x2b51d80] Estimating duration from bitrate, this may be inaccurate Input #0, lavfi, from 'amovie='/home/manu/Musique/seq-3341-3-16bit.wav',ebur128=video=1:meter=18 [out0][out1]': Duration: N/A, bitrate: N/A Stream #0:0: Video: rawvideo (RGB[24] / 0x18424752), rgb24, 640x480 [SAR 1:1 DAR 4:3], 48k tbr, 48k tbn, 48k tbc Stream #0:1: Audio: pcm_f64le, 48000 Hz, stereo, dbl, 6144 kb/s [Parsed_ebur128_1 @ 0x2b4ffc0] Summary:vq= 0KB sq= 0B f=0/0 Integrated loudness: I: -23.0 LUFS Threshold: -37.5 LUFS Loudness range: LRA: 17.0 LU Threshold: -47.4 LUFS LRA low: -40.0 LUFS LRA high: -23.0 LUFS
Et vous obtenez un graphique :
Pour le moment, il n’est pas possible de mesurer le true-peak.
r128x avec interface graphique
Le projet r128x vient d’être mis à jour avec une version graphique. Ce logiciel permet les mesures de loudness, lra et true-peak de fichiers audio sous Mac OS x.6 et au delà. Il est distribué sous licence GPL.
La recommandation ITU BS.1770 passe en version 3
Cet été, la recommandation ITU BS.1770 est passée en version 3, pouvez la trouver ici. Principale nouveauté : précisions sur le mesure true-peak par la fourniture de coefficients de filtres pour un signal à 48 KHz de fréquence d’échantillonnage.
Cela devrait permettre à terme une meilleure cohérence des mesures true-peak sur différents outils.
r128x, mesure loudness sous Mac OS X
Pour ceux que l’installation de libebur128 rebute malgré mes conseils, j’ai essayé d’utiliser cette bibliothèque pour développer une application Mac OS X en ligne de commande qui puisse être utilisée sans devoir installer des bibliothèques supplémentaires.
r128x utilise donc libebur128 pour les mesures Integrated Loudness et Loudness Range, et fait appel aux services de CoreAudio pour lire les fichiers audio et effectuer le sur-échantillonage nécessaire à la mesure True Peak. Licence open source.
Il y a un exécutable Intel téléchargeable directement ici.
freelcs : correction du loudness open source
Lors des RMLL 2012, j’ai eu l’occasion de découvrir freelcs, un serveur de correction du loudness sur des fichiers. Cette application met en place un serveur auprès duquel vous pouvez déposer des fichiers audio. Ces fichiers sont ensuite analysés et éventuellement corrigés pour atteindre un niveau cible de -23 LUFS. L’application produit en même temps un graphique du loudness du fichier.
Cette application a été développée par un salarié de la télévision publique Finlandaise Yle.
Pour le moment, installeur sous Ubuntu 12.04 LTS avec une documentation détaillée.
Learning Core Audio
Attendu depuis longtemps, enfin disponible en téléchargement pour la modique somme de 25$, Learning Core Audio, A Hands-On Guide to Audio Programming for Mac and iOS devrait combler ceux qui sont rebutés par l’hermétisme de la documentation Apple concernant Core Audio.



