SplitVinyl est un utilitaire permettant d'automatiser le découpage d'un fichier audio issu de l'enregistrement des faces d'un disque vinyle.
Site web officiel : https://sites.google.com/site/splitvinyl/home .
Version actuelle : 1.01 du 2011 11 16.
Licence : GNU GPL v3.
Plateforme : GNU/Linux.
Développeurs : cjpsimon.
Ce projet est une tentative d'automatiser le découpage d'un fichier audio issu de l'enregistrement des faces d'un disque vinyle.
Le but final est de créer autant de fichiers audio que de titres de l'album (face par face). Chaque enregistrement étant pourvu des informations sur l'auteur, le titre, l'album, la date, etc...
Il y a donc plusieurs phases dans le production des fichiers audio :
Ces informations peuvent être collectées à différents moments suivant leur nature.
Peuvent être inscrits sur l'enregistrement de la face au moment de sa sauvegarde par le logiciel d'enregistrement ou dans le fichier d'information :
Peuvent être enregistrés dans le fichier d'information pour chaque titre dans l'ordre de l'enregistrement :
Peuvent être enregistrés dans chaque fichier audio :
Remarques : les formats d'enregistrements n'acceptent pas tous l'insertion de ces informations. Il y aura des choix à faire.
L'album est numérisé par un logiciel. Pour l'instant le choix s'est porté sur Audacity car c'est le logiciel fournit par nombre de vendeurs de platines vinyle USB, mais d'autres logiciels sont possibles bien entendu. Le choix du format d'enregistrement doit être reconnu par la bibliothèque de lecture, par exemple libsndfile utilisé dans le premier développement.
L'étape de numérisation est importante car de sa qualité dépendra la qualité du résultat. Un format sans compression comme WAV sera préférable. Si la taille de l'enregistrement est critique le format OGG est le plus performant tout en conservant une qualité intacte en dessous de 20 khz si l'on en croit http://cf2mweb.phpnet.org/comparatif_audio/ .
Il y a cinq étapes dans la numérisation :
Le découpage de l'album en autant de fichiers que de titres se fait avec SplitVinyl à partir de l'enregistrement audio et du fichier des informations particulières aux titres.
Cette opération demande de fournir des valeurs comme la durée minimum de blanc entre chaque titre ainsi que le niveau sonore maxi du blanc (un blanc n'est jamais tout blanc).
SplitVinyl se charge de nettoyer les plages blanches des craquements du disque vinyle. De plus, il permet d'ajouter une zone blanche d'une durée à fournir en début et en fin de titre.
Le but n'est pas de nettoyer l'enregistrement mais seulement de permettre le découpage du disque. Pour le nettoyage voire GWC ou autre. Bien sûr, un saut de sillon ne pourra pas être reconnu/réparé .
Un premier jet de programme à titre de preuve du concept permet le découpage d'une face d'un disque en autant de fichier que de titres. Ce résultat n'est possible actuellement qu'en jouant sur deux paramètres : le plafond de blanc (la valeur de niveau de son en dessous de laquelle on considère qu'il s'agit d'un blanc) et de la durée minimale des blancs du disque. Un algorithme simple a été développé et testé. Pour que le résultat soit exploitable, il faut faire des essais pour trouver le bon paramétrage et cela pour chaque face de chaque disque à traiter.
Le développement actuel est basé sur la bibliothèque libsndfile qui est portable sur de nombreux systèmes et est d'une grande simplicité d'utilisation. Cette bibliothèque permet de lire, d'écrire, et de modifier un fichier son. D'autres alternatives peuvent être envisagées.
D'autre part, la bibliothèque mxml est utilisée pour le codage en XML du fichier d'informations qui contient les tags générés dans les fichiers son de chaque titre. Le fichier d'informations est à créer et remplir à l'aide d'un éditeur de texte standard. Voir un exemple dans le fichier readme sur le site https://sites.google.com/site/splitvinyl/ rubrique code version v 0.03.
La version ligne de commande fonctionne sur des tests de fichiers .wav, je prévois de faire des tests pour les formats OGG et FLAC afin de valider les tags qui sont partiels dans le format .wav .
Le développement est fait sous Eclipse en C mais n'est pas dépendant d'Eclipse.
L'IHM graphique est en cours de spécification, une maquette est en cours de développement basée sur GTK : https://sites.google.com/site/splitvinyl/home/images .
Le nombre de lignes de code source est actuellement 2118 pour 15 fichiers.
Claude Simon
Table des matières
Informations
Site web officiel : https://sites.google.com/site/splitvinyl/home .
Version actuelle : 1.01 du 2011 11 16.
Licence : GNU GPL v3.
Plateforme : GNU/Linux.
Développeurs : cjpsimon.
Description
Ce projet est une tentative d'automatiser le découpage d'un fichier audio issu de l'enregistrement des faces d'un disque vinyle.
Le but final est de créer autant de fichiers audio que de titres de l'album (face par face). Chaque enregistrement étant pourvu des informations sur l'auteur, le titre, l'album, la date, etc...
Il y a donc plusieurs phases dans le production des fichiers audio :
- enregistrement des informations de l'album,
- numérisation de l'album,
- découpage de l'album,
- association des informations avec chaque fichier.
Utilisation
Enregistrement des informations pour chaque titre
- Album.
- Artiste(s).
- Date.
- Commentaire général.
- Titre (piste).
- Durée.
- Nom du fichier du titre.
- Format du titre.
Ces informations peuvent être collectées à différents moments suivant leur nature.
Peuvent être inscrits sur l'enregistrement de la face au moment de sa sauvegarde par le logiciel d'enregistrement ou dans le fichier d'information :
- Album.
- Artiste(s).
- Date.
- Commentaire général.
Peuvent être enregistrés dans le fichier d'information pour chaque titre dans l'ordre de l'enregistrement :
- Titres.
- Auteur du titre (ajouté au commentaire général).
- Artistes du titre (ajouté au commentaire général).
- Nom du fichier du titre.
- Format du titre.
Peuvent être enregistrés dans chaque fichier audio :
- Durées (calculées par le logiciel SplitVinyl).
Remarques : les formats d'enregistrements n'acceptent pas tous l'insertion de ces informations. Il y aura des choix à faire.
numérisation de l'album
L'album est numérisé par un logiciel. Pour l'instant le choix s'est porté sur Audacity car c'est le logiciel fournit par nombre de vendeurs de platines vinyle USB, mais d'autres logiciels sont possibles bien entendu. Le choix du format d'enregistrement doit être reconnu par la bibliothèque de lecture, par exemple libsndfile utilisé dans le premier développement.
L'étape de numérisation est importante car de sa qualité dépendra la qualité du résultat. Un format sans compression comme WAV sera préférable. Si la taille de l'enregistrement est critique le format OGG est le plus performant tout en conservant une qualité intacte en dessous de 20 khz si l'on en croit http://cf2mweb.phpnet.org/comparatif_audio/ .
Il y a cinq étapes dans la numérisation :
- Nettoyage du disque vinyle : voir http://www.homemedia.fr/tests-guides/101-Enregistrer-vos-vinyles-en-MP3-grace-a-l-USB-3.html
- tests d'enregistrement pour faire le réglage du niveau d'enregistrement.
- Enregistrement de la face du disque avec audacity.
- Vérification de l'enregistrement.
- Sauvegarde de l'enregistrement avec renseignement (facultatif : on peut aussi fournir ces renseignements dans le fichier d'information) des information générales.
découpage de l'album
Le découpage de l'album en autant de fichiers que de titres se fait avec SplitVinyl à partir de l'enregistrement audio et du fichier des informations particulières aux titres.
Cette opération demande de fournir des valeurs comme la durée minimum de blanc entre chaque titre ainsi que le niveau sonore maxi du blanc (un blanc n'est jamais tout blanc).
SplitVinyl se charge de nettoyer les plages blanches des craquements du disque vinyle. De plus, il permet d'ajouter une zone blanche d'une durée à fournir en début et en fin de titre.
Le but n'est pas de nettoyer l'enregistrement mais seulement de permettre le découpage du disque. Pour le nettoyage voire GWC ou autre. Bien sûr, un saut de sillon ne pourra pas être reconnu/réparé .
État d'avancement
Un premier jet de programme à titre de preuve du concept permet le découpage d'une face d'un disque en autant de fichier que de titres. Ce résultat n'est possible actuellement qu'en jouant sur deux paramètres : le plafond de blanc (la valeur de niveau de son en dessous de laquelle on considère qu'il s'agit d'un blanc) et de la durée minimale des blancs du disque. Un algorithme simple a été développé et testé. Pour que le résultat soit exploitable, il faut faire des essais pour trouver le bon paramétrage et cela pour chaque face de chaque disque à traiter.
Changelog
[+]Notes
Outils utilisés
Le développement actuel est basé sur la bibliothèque libsndfile qui est portable sur de nombreux systèmes et est d'une grande simplicité d'utilisation. Cette bibliothèque permet de lire, d'écrire, et de modifier un fichier son. D'autres alternatives peuvent être envisagées.
D'autre part, la bibliothèque mxml est utilisée pour le codage en XML du fichier d'informations qui contient les tags générés dans les fichiers son de chaque titre. Le fichier d'informations est à créer et remplir à l'aide d'un éditeur de texte standard. Voir un exemple dans le fichier readme sur le site https://sites.google.com/site/splitvinyl/ rubrique code version v 0.03.
Développement en cours
La version ligne de commande fonctionne sur des tests de fichiers .wav, je prévois de faire des tests pour les formats OGG et FLAC afin de valider les tags qui sont partiels dans le format .wav .
Le développement est fait sous Eclipse en C mais n'est pas dépendant d'Eclipse.
L'IHM graphique est en cours de spécification, une maquette est en cours de développement basée sur GTK : https://sites.google.com/site/splitvinyl/home/images .
À faire
- Tester le fonctionnement sur plusieurs fichiers son et corriger les anomalies détectées par ces tests.
- Permettre d'enregistrer les titres dans un format autre que celui du fichier source.
- Développer l'IHM graphique.
- Voir si des améliorations sont nécessaires et possibles.
- Réfléchir à une restructuration pour une version finale.
Le nombre de lignes de code source est actuellement 2118 pour 15 fichiers.
Claude Simon