Écouter ses vinyles sous linux
Peut-être avez-vous dans votre grenier une platine vinyle qui prend la poussière, ainsi qu’une collection de disques dans des cartons. Je vous propose aujourd’hui de ressuciter la platine et récupérer le son sur votre ordinateur. Il n’y a pas que les platines USB qui peuvent être branchées sur un PC, même la plus ancienne peut faire l’affaire !
Merci pulseaudio
Pour toutes les opérations, nous allons nous servir de pulseaudio qui va grandement nous simplifier les traitements à réaliser.
Pour faire les tests, nous allons nous servir de pavucontrol qui permet de contrôler les flux d’entrée, et d’afficher un audiomètre (pratique pour voir sur quelle entrée provient notre son…)
System-wide
Il est nécessaire que pulseaudio tourne en continu pour rediriger le son dès que la platine tourne. Ça n’est pas le cas par défaut, pour des raisons de sécurité, et il va être nécessaire de modifier la configuration pour ça. En effet, le comportement par défaut est de se lancer pour la durée nécessaire, via dbus, puis se couper une fois que la demande est terminée. Il n’existe pas à ma connaissance de modèle de platine capable de lancer demander à pulseaudio de se mettre en route, on va donc laisser pulseaudio tourner en continu.
Attention !
Il n’est pas conseillé de lancer pulseaudio en tant que démon du système. Comme le wiki l’indique, cela ne devrait être utilisé que dans des cas particuliers (serveur de son accessible uniquement par le réseau).
De nombreuses failles de sécurité ont été trouvés utilisant pulseaudio pour obtenir un accès root à la machine.
Dans notre cas nous n’avons pas le choix, puisque la platine ne correspond à aucun utilisateur du système, mais vous êtes prévenus !
Le wiki explique la procédure en détail, je ne rentre pas dans le détail : les explications données sur le wiki sont assez claires, et je préfère ne pas inciter à trop jouer avec votre système…
Branchement
Il est fort probable que votre platine dispose d’une sortie RCA. Pour le connecter à l’ordinateur, il va nous falloir un adaptateur, comme celui montré en photo. Pour ma part, je l’ai trouvé, non pas chez les vendeurs de disques, mais dans une grande surface de bricolage, sinon, vous pourrez le commander facilement sur internet.
Nous n’avons plus qu’à brancher notre cablage, de préférence sur l’entrée line-in de l’ordinateur, qui est faite pour récupérer du son directement depuis un autre appareil (moins de parasites). Il s’agit normalement d’une prise bleue sur la carte son.
Le volume de sortie de platine est suffisant pour être lu directement par l’ordinateur, à partir de ce moment là, vous pouvez commencer à mettre un disque, et jouer avec audacity pour récupérer le son !
Par défaut, l’entrée audio de pulseaudio est la prise micro, il va falloir modifier l’entrée dans l’interface de contrôle pour la faire passer sur l’entrée line-in.
L’égalisation RIAA
Ça y est, le son tourne ! Mettez donc un disque que vous connaissez, et surprise ; mais où sont les basses ?? En fait, pour éviter au sillon de sauter à cause de l’amplitude des basses, un traitement est fait au son avant de le presser : les basses sont atténuées, et les aigües sont augmentées — c’est l’égalisation RIAA
Lors de la lecture nous allons avoir besoin d’effectuer la coure de traitement inverse pour restaurer le son :
Pulseaudio ne sait pas égaliser le son nativement, mais il est possible de passer le son dans des filtres qui vont faire le boulot pour nous. En effet, il existe une norme, ladspa, qui permet de créer des plugins sous linux pouvant être utilisés par n’importe quelle application. (Qui a dit que la gestion du son était bordelique sous linux ? )
Le plugin que nous allons utiliser est celui de l’égaliseur multibande, son petit nom étant mbeq_1197. (Dans Debian, vous le trouverez dans le paquet swh-plugin).
D’après sa page de manuel, il prend des corrections à appliquer pour les fréquences suivantes : 50Hz, 100Hz, 156Hz, 220Hz, 311Hz, 440Hz, 622Hz, 880Hz, 1250Hz, 1750Hz, 2500Hz, 3500Hz, 5KHz, 10KHz et 20KHz. Il ne sera donc pas possible de reproduire la courbe RIAA parfaitement, mais en comparant avec la courbe ci-dessus, vous pourrez constater qu’il s’agit d’une approximation, qui couvre la totalité de fréquence audible, et qui permet de générer un son suffisament fidèle à l’oreille.
Il ne reste plus qu’à calculer les valeurs pour chaque fréquence, sortez vos calculettes ! Bon, on va faire plus simple, il existe des feuilles de calculs toutes prêtes qui n’attendent plus que nous rentrions nos fréquences.
Pour finir
Après cette longue introduction, nous allons pouvoir créer notre paramétrage facilement. Il suffit d’éditer le fichier de configuration de pulseaudio et rajouter les lignes suivantes :
# Crée un filtre qui applique l'égalisation RIAA load-module module-ladspa-sink sink_name=riaa_eq master=0 plugin=mbeq_1197 label=mbeq control=17.035,13.177,10.079,7.641,5.347,3.367,1.731,0.514,-0.655,-1.915,-3.611,-5.619,-8.121,-13.645,-19.531 # Prend l'entrée et la redirige vers notre filtre load-module module-loopback source=1 sink=riaa_eq
Le paramètre source=1 peut être différent sur votre configuration. La valeur peut être trouvée grace à la commande suivante :
$ pactl list sources | grep -E "Source|Description" Source #0 Description : Monitor of Audio interne Stéréo analogique Source #1 Description : Audio interne Stéréo analogique Source #2 Description : Monitor of LADSPA Plugin Multiband EQ on Audio interne Stéréo analogique
Voilà, à travers ces deux lignes, nous venons de connecter notre platine vinyle sur les enceintes du PC et donner au son le dynamisme qui lui faut !
Pour ma part, je suis bluffé par le fait que des disques ayant presque quarante ans d’âge puissent encore être écouté parfaitement sur un ordinateur conçu bien longtemps après. Aujourd’hui la musique passe majoritairement par des lecteurs mp3, bien souvent disposant d’une connexion propriétaire et volontairement non standard. Pensez-vous qu’en 2060, il sera possible de brancher un IPod sur un ordinateur neuf pour en lire la musique ? Qui prend les paris ?