Historique: splitvinyl
Aperçu de cette version: 22
SplitVinyl est un utilitaire permettant d'automatiser le découpage d'un fichier audio issu de l'enregistrement des faces d'un disque vinyle.
Version actuelle : 1.01.
Licence : GNU GPL v3.
Plateforme : GNU/Linux.
Développeurs : cjpsimon.
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'é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 :
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 http://gwc.sourceforge.net/ ou autre. Bien sur un saut de sillon ne pourra pas être reconnu/réparé 😑.
D'autre part la lib mxml est utilisée pour le codages en XML du fichier d'information qui contient les tags générés dans les fichiers son de chaque titre. Le fichier d'information 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.
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.
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 vendeur 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 permet les formats suivants :- WAV : Microsoft WAV format (little endian default)
- AIFF : Apple/SGI AIFF format (big endian)
- AU : Sun/NeXT AU format (big endian)
- RAW : RAW PCM data
- PAF : Ensoniq PARIS file format
- SVX : Amiga IFF / SVX8 / SV16 format
- NIST : Sphere NIST format
- VOC : VOC files
- IRCAM : Berkeley/IRCAM/CARL
- W64 : Sonic Foundry's 64 bit RIFF/WAV
- MAT4 : Matlab (tm) V4.2 / GNU Octave 2.0
- MAT5 : Matlab (tm) V5.0 / GNU Octave 2.1
- PVF : Portable Voice Format
- XI : Fasttracker 2 Extended Instrument
- HTK : HMM Tool Kit format
- SDS : Midi Sample Dump Standard
- AVR : Audio Visual Research
- WAVEX : MS WAVE with WAVEFORMATEX
- SD2 : Sound Designer 2
- FLAC : FLAC lossless file format
- CAF : Core Audio File format
- WVE : Psion WVE format
- OGG : Xiph OGG container
- MPC2K : Akai MPC 2000 sampler
- RF64 : RF64 WAV file
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 http://gwc.sourceforge.net/ ou autre. Bien sur un saut de sillon ne pourra pas être reconnu/réparé 😑.
Etat 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 à é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 lib libsndfile qui est portable sur de nombreux système et est d'une grande simplicité d'utilisation. Cette lib permet de lire et d'écrire et de modifier un fichier son. D'autre alternatives peuvent être envisagées.D'autre part la lib mxml est utilisée pour le codages en XML du fichier d'information qui contient les tags générés dans les fichiers son de chaque titre. Le fichier d'information 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 .wavLe 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.
A 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