summaryrefslogtreecommitdiff
path: root/content/Perso/2013-06-22-platine.rst
blob: 2cad9294855178100987a9f096b9db234a941e60 (plain)
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
.. -*- mode: rst -*-
.. -*-  coding: utf-8 -*-

##############################
Écouter ses vinyles sous linux
##############################

:date: 2013-06-22
:tags: Libre, DIY
:logo: /images/platine/tete_75.jpeg
:summary: |summary|

.. image:: {filename}/images/platine/lecture_150.jpg
    :width: 150
    :class: floatright
    :alt: Tête de lecture

|summary|

.. |summary| replace::
    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.

.. admonition:: 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…

.. _procédure: http://www.freedesktop.org/wiki/Software/PulseAudio/Documentation/User/SystemWide/

Branchement
===========

.. image:: {filename}/images/platine/jack2rca.jpg
    :class: floatleft
    :alt: jack to rca

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.

.. image:: {filename}/images/platine/line-in.jpg
    :class: floatright
    :alt: line-in

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`_

.. _égalisation RIAA: https://fr.wikipedia.org/wiki/%C3%89galisation_RIAA

Lors de la lecture nous allons avoir besoin d'effectuer la coure de traitement
inverse pour restaurer le son :

.. image:: {filename}/images/platine/riaa.jpg
    :alt: La courbe riaa

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 ? |:-)|)

.. _ladspa: http://www.ladspa.org/
.. _bordelique: http://blogs.adobe.com/penguinswf/2007/05/welcome_to_the_jungle.html

.. |:-)| image:: {filename}/images/icons/face-smile.png

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.

.. _feuilles de calculs: http://www.bonavolta.ch/hobby/en/audio/riaa.htm

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 :

.. code-block:: ini

    # 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 :

.. code-block:: console

    $ 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 ?
choisir de l'afficher sur la carte.) .. image:: {filename}../images/Capture-Navit-e1332787251467.png :width: 400 :class: center :alt: menus de navit On peut déjà commencer à calculer les trajets et essayer différents habillages. Sur le wiki vous pouvez télécharger des thèmes déjà préparés qu'il suffit d'installer. Limitations =========== .. figure:: {filename}/images/gps.jpg :figwidth: 150 :figclass: floatright :alt: Wrong way ! Image : `Jennymcb`_ (creativecommons_) .. _Jennymcb: https://www.flickr.com/photos/jenmcb/7411096128/ Même si le logiciel est utilisable au quotidien, il n'est pas parfait. (Il s'est cependant grandement amélioré dans ses dernières versions, je recommande d'utiliser la version 0.5 qui corrige de nombreux soucis dans l'interface et la consommation mémoire.) * Une fâcheuse tendance de navit et de ne pas prendre en compte les limites géographiques des villes. En conséquence, la sélection de la destination à partir de la ville et des noms de rues n'est pas fiable : certaines rues n'apparaissent pas alors qu'elles sont enregistrées sur la carte, ou (plus grave), peut se tromper de ville. Il m'est déjà arrivé de me rendre à destination, dans la bonne rue, mais pas dans la bonne ville ! J'ai maintenant pris l'habitude de n'entrer les destinations qu'à partir de la carte, et non pas à partir de l'index des rues. * Par rapport aux solutions commerciales, capables d'afficher l'état du trafic, Navit est vraiment en retard. On peut résumer en disant qu'il s'agit davantage d'une carte interactive qu'une solution de guidage, il reste nécessaire de prévoir son trajet avant de partir. On est limité par le support, navit ne fourni qu'une carte interractive, et les informations sur le traffic sont émies par radio, il manque un système pour les interpréter et les transmettre au logiel. * Enfin, contrairement aux gps embarqués, on est dépendant de la qualité du support : si l'on dispose d'un portable avec écran brillant, on sera forcément gêné lors du suivi de la navigation. OpenstreetMap ============= .. figure:: {filename}/images/osm_logo.png :figwidth: 150 :figclass: floatleft :alt: OpenstreetMap logo Impossible de parler de navit sans aborder openstreetmap_ ! Pour faire une analogie, openstreetmap est à la cartographie ce que wikipédia est à l'encyclopédie : une plateforme donnant à chacun le moyen la possibilité de contribuer. La navigation GPS est pour moi l'utilisation la plus pratique de ce service : d'une part parce que les cartes sont libres, et d'autre part parce que cela donne envie de contribuer à son tour : en rajoutant les feux aux carrefours, les parkings, en fonction des différents trajets que l'on réalise; on voit à l'utilisation les défauts sur les cartes, et une fois de retour chez soi, on corrige la carte en fonction. .. admonition:: mise à jour OpenstreetMap change très vite, et les cartes sont mises à jour en continu. C'est pourquoi je vous propose d'automatiser le téléchargement de vos cartes. Rien de mieux pour ça qu'une tâche dans un cron ! Vous vous souvenez de l'url que je vous avais demandé de noter dans un coin tout à l'heure ? C'est maintenant qu'elle va être réutilisée. .. code-block:: bash $ crontab -e Dans l'éditeur de texte qui s'ouvre, on va entrer notre tâche planifiée : .. code-block:: bash 25 3 * * 1 wget -O ~/.navit/carte.bin ${url} > /dev/null 2>&1 Ainsi, la carte se mettra à jour automatiquement. J'ai dit tout à l'heure qu'openstreetmap permettait à tout un chacun de modifier les cartes, cela signifie que, comme wikipédia, la qualité des cartes est inégale selon les endroits que vous visitez : il n'y a probablement pas de problème dans une grande ville, mais cela risque d'être plus compliqué pour retrouver le nom d'une rue dans un hameau ou un petit village. Dans ce cas, n'hésitez pas à mettre à jour la carte ! (Ça n'est pas l'objet de l'article ici, mais il existe de nombreux tutoriels pour vous expliquer comment faire.) Conclusion ========== J'ai parlé du coût de la solution au début de l'article : il s'agit du coût du récepteur GPS. On peut en trouver par 30€ sur ebay, ce qui est investissement suffisant pour se lancer (si l'on compare aux gps tactiles qui sont vendus en supermarché). Pour ma part, j'utilise un récepteur `ND100` de globalsat_ qui est reconnu sans problème sous linux. Au final on dispose donc d'une aide à la navigation qui s'avère très pratique, et assez amusante ! On a l'avantage de disposer de cartes gratuites et mises à jour en permanence (même si la qualité laisse parfois à désirer), mais aussi de ne pas dépendre d'un système fermé (il est possible de modifier les cartes à l'aide de l'éditeur d'OpenstreetMap quand on rencontre des erreurs). .. _`Navit planet extractor`: http://maps.navit-project.org/ .. _openstreetmap: https://www.openstreetmap.org/ .. _globalsat: http://www.ebay.com/sch/?_nkw=globalsat%20nd%20100&clk_rvr_id=327330038890