« Ripper » un CD audio, c'est en extraire le flux audio sans perte pour le copier sur un ordinateur. L'objectif est de le ré-empaqueter pour qu'il soit lisible sans lecteur de CD. Ici je ne souhaite pas particulièrement être en mesure de produire un duplicata du disque d'origine. En revanche nous allons nous assurer d'en avoir extrait tout le contenu sans en laisser une miette.
Tout d'abord je créé un répertoire qui va contenir mes fichiers temporaires puis mon fichier final et je place mon shell dans ce répertoire.
Une fois mon cd disposé dans mon lecteur, j'utilise la commande cd-info > cd-info.log qui me renvoie :
cd-info version 2.1.0 x86_64-pc-linux-gnu Copyright (c) 2003-2005, 2007-2008, 2011-2015, 2017 R. Bernstein This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. CD location : /dev/cdrom CD driver name: GNU/Linux access mode: IOCTL Vendor : MATSHITA Model : DVD-RAM UJ8A7AS Revision : 1.00 Hardware : CD-ROM or DVD Can eject : Yes Can close tray : No Can disable manual eject : Yes Can select juke-box disc : No Can set drive speed : No Can read multiple sessions (e.g. PhotoCD) : Yes Can hard reset device : Yes Reading.... Can read Mode 2 Form 1 : Yes Can read Mode 2 Form 2 : Yes Can read (S)VCD (i.e. Mode 2 Form 1/2) : Yes Can read C2 Errors : Yes Can read IRSC : Yes Can read Media Channel Number (or UPC) : Yes Can play audio : Yes Can read CD-DA : Yes Can read CD-R : Yes Can read CD-RW : Yes Can read DVD-ROM : Yes Writing.... Can write CD-RW : Yes Can write DVD-R : Yes Can write DVD-RAM : Yes Can write DVD-RW : No Can write DVD+RW : No __________________________________ Disc mode is listed as: CD-DA CD-ROM Track List (1 - 12) #: MSF LSN Type Green? Copy? Channels Premphasis? 1: 00:02:00 000000 audio false no 2 no 2: 03:31:06 015681 audio false no 2 no 3: 05:54:32 026432 audio false no 2 no 4: 08:55:71 040046 audio false no 2 no 5: 12:31:27 056202 audio false no 2 no 6: 15:14:49 068449 audio false no 2 no 7: 18:43:14 084089 audio false no 2 no 8: 20:35:60 092535 audio false no 2 no 9: 23:54:39 107439 audio false no 2 no 10: 26:30:65 119165 audio false no 2 no 11: 29:53:35 134360 audio false no 2 no 12: 33:02:06 148506 audio false no 2 no 170: 38:23:11 172586 leadout (387 MB raw, 387 MB formatted) Media Catalog Number (MCN): 0000000000000 TRACK 1 ISRC: FRI420040010 TRACK 2 ISRC: FRI420040020 TRACK 3 ISRC: FRI420040030 TRACK 4 ISRC: FRI420040040 TRACK 5 ISRC: FRI420040050 TRACK 6 ISRC: FRI420040060 TRACK 7 ISRC: FRI420040070 TRACK 8 ISRC: FRI420040080 TRACK 9 ISRC: FRI420040090 TRACK 10 ISRC: FRI420040100 TRACK 11 ISRC: FRI420040110 TRACK 12 ISRC: FRI420040120 Last CD Session LSN: 0 audio status: no status volume level port 0: 255 (0..255) 100 (0..100) volume level port 1: 255 (0..255) 100 (0..100) volume level port 2: 0 (0..255) 0 (0..100) volume level port 3: 0 (0..255) 0 (0..100) __________________________________ CD Analysis Report Audio CD, CDDB disc ID is 8f08fd0c ++ WARN: unknown host name ++ WARN: command data missing cd-info: command data missing No CD-TEXT on Disc.
Notez que toutes les pistes mentionnées sont de type audio, et aucune n'est de type data. Par ailleurs le listing mentionne Last CD Session LSN: 0, indiquant que la dernière session du disque démarre à zéro. Autrement dit : il n'y a qu'une seule session, et toutes ses pistes sont de type audio, nous avons affaire à un CD audio numérique (CDDA) Red Book standard. On peut donc continuer.
Ensuite, je vais utiliser la commande¹ cdparanoia -O 102 -XB pour effectuer mon rip. La valeur « 102 » est spécifique à mon lecteur de CD, et correspond à un décalage de tout le train d'octets pour obtenir un résultat exact. Il existe des tableaux qui listent ces décalage en fonction du modèle². Le paramètre « X » va faire échouer la commande dès la première erreur, et le paramètre « B » va produire 1 fichier par piste. À ce stade on obtient une liste de fichier du type :
track01.cdda.wav track02.cdda.wav track03.cdda.wav track04.cdda.wav track05.cdda.wav track06.cdda.wav track07.cdda.wav track08.cdda.wav track09.cdda.wav track10.cdda.wav track11.cdda.wav track12.cdda.wav
On souhaite maintenant s'assurer que le rip est correct. Pour cela on va utiliser la commande arver *.wav > accuraterip.log pendant que le disque est encore dans le lecteur. Cette commande³ va calculer des sommes de contrôle des fichiers wav en utilisant l'aglorithme AccurateRip⁴ et comparer les résultats avec la base de données d'AccurateRip. Plus de gens auront rippé le même disque et obtenu le même résultat, plus on pourra avoir confiance dans notre propre rip. Ici on obtient un rapport comme suit :
AccurateRip disc ID: 012-0012b2fc-00ad6d29-9e09bc0c
MusicBrainz disc ID: Er1eeCGmvoB_zcPaisukIRK3MU8-
Disc type: Audio CD
track length frames
----- -------- ------
1 3:51.38 17363
2 4:07.71 18596
3 2:44.36 12336
4 3:02.39 13689
5 3:36.24 16224
6 4:05.20 18395
7 3:26.30 15480
8 3:07.28 14053
9 2:39.02 11927
10 3:35.43 16168
11 3:25.12 15387
12 3:50.57 17307
Got 2 AccurateRip responses (max confidence: 18)
Verifying 12 tracks:
Track 1:
Path: track01.cdda.wav
Copy CRC: fdf6fe36
AccurateRip: c5e5365b (ARv2), confidence 17, response 1
Track 2:
Path: track02.cdda.wav
Copy CRC: 6465af95
AccurateRip: bc4d24ea (ARv2), confidence 18, response 1
Track 3:
Path: track03.cdda.wav
Copy CRC: 5273a2db
AccurateRip: e2ed53cc (ARv2), confidence 18, response 1
Track 4:
Path: track04.cdda.wav
Copy CRC: 04810779
AccurateRip: 94ad0e74 (ARv2), confidence 18, response 1
Track 5:
Path: track05.cdda.wav
Copy CRC: 7644702c
AccurateRip: 7a91bb3e (ARv2), confidence 18, response 1
Track 6:
Path: track06.cdda.wav
Copy CRC: 2c41212e
AccurateRip: b44171af (ARv2), confidence 17, response 1
Track 7:
Path: track07.cdda.wav
Copy CRC: beb6f071
AccurateRip: 1f3330b0 (ARv2), confidence 18, response 1
Track 8:
Path: track08.cdda.wav
Copy CRC: 601f71fd
AccurateRip: aff8466b (ARv2), confidence 18, response 1
Track 9:
Path: track09.cdda.wav
Copy CRC: 9ad2b7b2
AccurateRip: 2ce3f58a (ARv2), confidence 17, response 1
Track 10:
Path: track10.cdda.wav
Copy CRC: 592318b6
AccurateRip: 3c7ae124 (ARv2), confidence 17, response 1
Track 11:
Path: track11.cdda.wav
Copy CRC: d0b29cf6
AccurateRip: b8555446 (ARv2), confidence 18, response 1
Track 12:
Path: track12.cdda.wav
Copy CRC: 86173d2a
AccurateRip: b2a80fe2 (ARv2), confidence 18, response 1
file name result checksum type conf resp
------------------------------ ------ -------- ---- ---- ----
track01.cdda.wav OK c5e5365b ARv2 17 1
track02.cdda.wav OK bc4d24ea ARv2 18 1
track03.cdda.wav OK e2ed53cc ARv2 18 1
track04.cdda.wav OK 94ad0e74 ARv2 18 1
track05.cdda.wav OK 7a91bb3e ARv2 18 1
track06.cdda.wav OK b44171af ARv2 17 1
track07.cdda.wav OK 1f3330b0 ARv2 18 1
track08.cdda.wav OK aff8466b ARv2 18 1
track09.cdda.wav OK 2ce3f58a ARv2 17 1
track10.cdda.wav OK 3c7ae124 ARv2 17 1
track11.cdda.wav OK b8555446 ARv2 18 1
track12.cdda.wav OK b2a80fe2 ARv2 18 1
All tracks verified successfully.
Ici la base AccurateRip dispose de 2 réponses, et notre rip est en accord avec celui ayant le plus grand indice de confiance. C'est rassurant. Vous pouvez noter également les identifiant AccurateRip (012-0012b2fc-00ad6d29-9e09bc0c) et MusicBrainz (Er1eeCGmvoB_zcPaisukIRK3MU8-). Ils sont calculés à partir du support, et identifient donc la release. En particulier la dernière partie de l'identifiant AccurateRip (9e09bc0c) est calculée à partir de la table des matières. On peut également la retrouver avec la commande⁵ cd-discid et correspond à l'identifiant CDDB du disque.
Nous allons maintenant extraire la table des matières de notre disque avec la commande⁶ cdrdao read-toc data.toc qui va écrire dans le fichier « data.toc » :
CD_DA // Track 1 TRACK AUDIO NO COPY NO PRE_EMPHASIS TWO_CHANNEL_AUDIO ISRC "FRI420700010" FILE "data.wav" 0 03:50:38 // Track 2 TRACK AUDIO NO COPY NO PRE_EMPHASIS TWO_CHANNEL_AUDIO ISRC "FRI420700020" FILE "data.wav" 03:50:38 04:05:71 START 00:01:00 // Track 3 TRACK AUDIO NO COPY NO PRE_EMPHASIS TWO_CHANNEL_AUDIO ISRC "FRI420700030" FILE "data.wav" 07:56:34 02:47:36 START 00:03:00 // Track 4 TRACK AUDIO NO COPY NO PRE_EMPHASIS TWO_CHANNEL_AUDIO ISRC "FRI420700040" FILE "data.wav" 10:43:70 03:02:39 // Track 5 TRACK AUDIO NO COPY NO PRE_EMPHASIS TWO_CHANNEL_AUDIO ISRC "FRI420700050" FILE "data.wav" 13:46:34 03:34:27 // Track 6 TRACK AUDIO NO COPY NO PRE_EMPHASIS TWO_CHANNEL_AUDIO ISRC "FRI420700060" FILE "data.wav" 17:20:61 04:05:19 START 00:01:72 // Track 7 TRACK AUDIO NO COPY NO PRE_EMPHASIS TWO_CHANNEL_AUDIO ISRC "FRI420700070" FILE "data.wav" 21:26:05 03:27:30 START 00:01:73 // Track 8 TRACK AUDIO NO COPY NO PRE_EMPHASIS TWO_CHANNEL_AUDIO ISRC "FRI420700080" FILE "data.wav" 24:53:35 03:07:63 START 00:00:73 // Track 9 TRACK AUDIO NO COPY NO PRE_EMPHASIS TWO_CHANNEL_AUDIO ISRC "FRI420700090" FILE "data.wav" 28:01:23 02:37:43 START 00:00:38 // Track 10 TRACK AUDIO NO COPY NO PRE_EMPHASIS TWO_CHANNEL_AUDIO ISRC "FRI420700100" FILE "data.wav" 30:38:66 03:36:41 START 00:01:72 // Track 11 TRACK AUDIO NO COPY NO PRE_EMPHASIS TWO_CHANNEL_AUDIO ISRC "FRI420700110" FILE "data.wav" 34:15:32 03:23:13 START 00:00:74 // Track 12 TRACK AUDIO NO COPY NO PRE_EMPHASIS TWO_CHANNEL_AUDIO ISRC "FRI420700120" FILE "data.wav" 37:38:45 03:53:55 START 00:02:73
Ici ce n'est pas le cas, mais s'il y avait des informations complémentaires du type CD-TEXT sur le CD, elles auraient été intégrées dans cette sortie. Une autre information importante est ressortie ici : ce sont les « pregaps », ces temps entre la fin d'une piste et le début de la suivante, qui sont plus fréquents sur les albums live que studio.
Nous allons maintenant changer le format de cette table des matières pour le format CUE avec la commande⁷ cueconvert data.toc > data.cue, ce qui produit le fichier data.cue :
FILE "data.wav" WAVE TRACK 01 AUDIO ISRC FRI420700010 INDEX 01 00:00:00 TRACK 02 AUDIO ISRC FRI420700020 INDEX 00 03:50:38 INDEX 01 03:51:38 TRACK 03 AUDIO ISRC FRI420700030 INDEX 00 07:56:34 INDEX 01 07:59:34 TRACK 04 AUDIO ISRC FRI420700040 INDEX 01 10:43:70 TRACK 05 AUDIO ISRC FRI420700050 INDEX 01 13:46:34 TRACK 06 AUDIO ISRC FRI420700060 INDEX 00 17:20:61 INDEX 01 17:22:58 TRACK 07 AUDIO ISRC FRI420700070 INDEX 00 21:26:05 INDEX 01 21:28:03 TRACK 08 AUDIO ISRC FRI420700080 INDEX 00 24:53:35 INDEX 01 24:54:33 TRACK 09 AUDIO ISRC FRI420700090 INDEX 00 28:01:23 INDEX 01 28:01:61 TRACK 10 AUDIO ISRC FRI420700100 INDEX 00 30:38:66 INDEX 01 30:40:63 TRACK 11 AUDIO ISRC FRI420700110 INDEX 00 34:15:32 INDEX 01 34:16:31 TRACK 12 AUDIO ISRC FRI420700120 INDEX 00 37:38:45 INDEX 01 37:41:43
On serait tenté d'utiliser la commande toc2cue qui vient avec cdrdao mais hélas elle omet les ISRC, et peut-être ausi les CD-TEXT…
Vous avez peut-être remarqué que les fichiers toc et cue mentionnaient un fichier data.wav, dont nous ne disposons pas puisque nous avons rippé les pistes de manière indépendantes. Nous allons maintenant les joindre pour obtenir ce fichier avec la commande¹¹ shnjoin track{01..12}.cdda.wav; mv joined.wav data.wav.
Pour se réassurer plus tard que tout ce que nous faisons est sans perte et réversible, nous pouvons calculer l'empreinte MD5 de nos fichiers wav : md5sum track{01..12}.cdda.wav data.wav.
5e28c57952eabf504273253fdaee40f3 track01.cdda.wav 9a191693b31787d7ebe1a68cb7adf18a track02.cdda.wav 38fb34241788fb902ce426d6421a37ed track03.cdda.wav 5b7de2131bb2c25f1460754ce27e5693 track04.cdda.wav 1d0493a7d7271c4eff5784ffab32cd17 track05.cdda.wav 118d34ad57251c894b86eafffa5bf223 track06.cdda.wav ab35a05025029ad2c631a1974666c4ca track07.cdda.wav a3e910ff435f09c82e9b8705c3086830 track08.cdda.wav c56b7b6b185a4b83c40478556f432b3e track09.cdda.wav dcd5ace2a84201de79d0e5a677f65b4d track10.cdda.wav 092c98347a1d26299a7a24d4289f0a5b track11.cdda.wav dfde6165644354c831540b09b9f0e893 track12.cdda.wav efa0712d5c9b43cf2580f0c75582a283 data.wav
Intéressons-nous maintenant aux métadonnées du disque. Nous allons préparer un fichier data.meta qui va toutes les contenir. Les métadonnées pour le format flac sont des commentaires Vorbis⁸. En soit les champs sont libres, mais xiph.org liste des noms standardisés pour les métadonnées de bases. Nous les utiliserons au maximum, et nous en créerons d'autres pour l'occasion.
Tout d'abord nous allons regarder au dos du disque, sur la partie brillante à l'intérieur du disque, que l'on appelle la zone matricielle. Sur mon disque, on peut voir un code barre puis lire « M0041424 », puis « ifpi L596 » et enfin « 1 / 3127482 ». Ensuite sur la partie non brillante, encore plus à l'intérieur du disque on peut lire « IFPI 1A19 ». Ce sont des codes SID (Source Identification Code) et ils identifient le master en verre ainsi que l'usine et le moule. « ifpi L596 » est un code attribué à la société SNA. « IFPI 1A19 » identifie le moule. Éditons le fichier data.meta :
MATRIX_INFO=M0041424 ifpi L596 1 / 3127482 MOULD_SID=IFPI 1A19
Grâce à ces codes, on peut croiser nos informations avec le site discogs.com et on trouve la page correspondant à notre release. On retrouve « 3127482 », également présent au dos du boitier et qui est clairement un numéro de catalogue, ainsi que « M0041424 (mais je ne sais pas à quoi cela correspond)».
CATALOGNUMBER=3127482
Au dos du boitier, on peut trouver la mention « LC 12545 ». Un recherche nous apprends⁹ que ce code identifie le label Wagram Music (également mentionné sur le disque et sur le boitier), « LC » signifiant Label Code.
ORGANIZATION=Wagram Music LABEL_CODE=LC 12545
On peut reporter le code EAN à 13 chiffres présent sous le code barre :
BARCODE=3596971274825
Reportons également les identifiants MusicBrainz, AccurateRip, CDDB et Discogs que nous avons trouvé jusque là :
MUSICBRAINZ_DISCID=Er1eeCGmvoB_zcPaisukIRK3MU8- CDDB_DISCID=9e09bc0c ACCURATERIP_DISCID=012-0012b2fc-00ad6d29-9e09bc0c DISCOGS_RELEASEID=r1929160
On trouve également un mention de copyright (et donc de date) sur le disque et sur le boitier :
COPYRIGHT=(P) & (C) 2007 accelera son DATE=2007
On peut finir avec le nom de l'artiste et le titre de l'album :
ARTIST=Pauline Croze ALBUM=Un Bruit Qui Court
Puisque nous allons produire un fichier unique au format flac pour tout l'album, nous ne pouvons pas donner les métadonnées de chaque piste. Le format ne le permet pas. Nous pourrions le faire en encapsulant notre futur flac dans un conteneur matroska par exemple, mais ce n'est pas mon objectif ici. En revanche, nous allons embarquer nos fichiers de toc et cue en tant que métadonnées. Ici la table des matières ne contenant pas de métadonnées pour les pistes en dehors de l'ISRC, le fichier cue non plus. Mais nous pouvons l'alimenter à la main si nous le souhaitons. Cela nous permettra de définir une procédure pour l'extraire puis découper l'album par piste puis tagguer chaque piste grâce au fichier cue extrait. En se basant sur le livret, on obtient cette nouvelle version de data.cue :
REM DATE 2007 CATALOG 3596971274825 PERFORMER "Pauline Croze" TITLE "Un Bruit Qui Court" FILE "data.wav" WAVE TRACK 01 AUDIO ISRC FRI420700010 TITLE "Faux Contacts" PERFORMER "Pauline Croze" INDEX 01 00:00:00 TRACK 02 AUDIO ISRC FRI420700020 TITLE "Un Bruit Qui Court" PERFORMER "Pauline Croze" INDEX 00 03:50:38 INDEX 01 03:51:38 TRACK 03 AUDIO ISRC FRI420700030 TITLE "Décembre" PERFORMER "Pauline Croze" INDEX 00 07:56:34 INDEX 01 07:59:34 TRACK 04 AUDIO ISRC FRI420700040 TITLE "Les Gens Qui Jasent" PERFORMER "Pauline Croze" INDEX 01 10:43:70 TRACK 05 AUDIO ISRC FRI420700050 TITLE "Jour De Foule" PERFORMER "Pauline Croze" INDEX 01 13:46:34 TRACK 06 AUDIO ISRC FRI420700060 TITLE "Nous Voulons Vivre" PERFORMER "Pauline Croze" INDEX 00 17:20:61 INDEX 01 17:22:58 TRACK 07 AUDIO ISRC FRI420700070 TITLE "A L'Evidence" PERFORMER "Pauline Croze" INDEX 00 21:26:05 INDEX 01 21:28:03 TRACK 08 AUDIO ISRC FRI420700080 TITLE "Légère (Soulève-moi)" PERFORMER "Pauline Croze" INDEX 00 24:53:35 INDEX 01 24:54:33 TRACK 09 AUDIO ISRC FRI420700090 TITLE "La Couleur De La Mer" PERFORMER "Pauline Croze" INDEX 00 28:01:23 INDEX 01 28:01:61 TRACK 10 AUDIO ISRC FRI420700100 TITLE "Baiser D'Adieu" PERFORMER "Pauline Croze" SONGWRITER "Arthur H" INDEX 00 30:38:66 INDEX 01 30:40:63 TRACK 11 AUDIO ISRC FRI420700110 TITLE "Sur Ton Front" PERFORMER "Pauline Croze" INDEX 00 34:15:32 INDEX 01 34:16:31 TRACK 12 AUDIO ISRC FRI420700120 TITLE "Valparaiso" PERFORMER "Pauline Croze" INDEX 00 37:38:45 INDEX 01 37:41:43
On ne touche pas à data.toc, que l'on veut garder comme à l'original..
Il faut maintenant s'occuper des visuels. Un jour j'écrirais peut-être un autre article expliquant comment les numériser. Pour l'instant je vais supposer que vous avez numérisé la première de couverture du livret. Sachez qu'en flac, tous les visuels peuvent être enregistrés dans le fichier avec un type normalisé indiquant la nature du visuel¹⁰.
Nous sommes maintenant enfin prêts à produir le fichier flac. flac --best --verify --cuesheet=data.cue --picture='3|image/jpeg|||image_3_cover_front.jpg' --tag-from-file CDRDAO_TOC=data.toc --tag-from-file=ACCURATERIP_LOG=data.accuraterip.log --tag-from-file CUE_SHEET=data.cue --tag-from-file CDINFO_LOG=cd-info.log --output-name=data.flac -- data.wav produit le fichier data.flac.
flac 1.4.3 Copyright (C) 2000-2009 Josh Coalson, 2011-2023 Xiph.Org Foundation flac comes with ABSOLUTELY NO WARRANTY. This is free software, and you are welcome to redistribute it under certain conditions. Type `flac' for details. data.wav: Verify OK, wrote 254109835 bytes, ratio=0,578
Enfin la commande metaflac --import-tags-from=data.meta data.flac injecte les tags trouvés dans le fichier data.meta dans le fichier flac.
À ce stade le fichier est terminé. On peut maintenant tenter de récupérer les fichiers wav d'origine afin de déterminer si la procédure est bel et bien sans perte. D'abord on va créer un répertoire temp et s'y déplacer : mkdir temp; cd temp. Ensuite nous allons regénérer le fichier wav à partir du flac : flac -d ../data.flac -o data.wav.
Nous allons maintenant extraire le fichier cue que nous avons embarqué dans les métadonnées : metaflac --show-tag=CUE_SHEET data.flac|sed -e 's/^CUE_SHEET=//'|head -c -1 > data.cue. Il va nous servir à découper le fichier data.wav avec la commande¹¹ shnsplit : shnsplit -f data.cue -t track%n.cdda data.wav. Nous pouvons calculer l'empreinte MD5 de nos nouveaux fichiers wav et constater que ce sont les mêmes que nos originaux : md5sum track{01..12}.cdda.wav data.wav.
5e28c57952eabf504273253fdaee40f3 track01.cdda.wav 9a191693b31787d7ebe1a68cb7adf18a track02.cdda.wav 38fb34241788fb902ce426d6421a37ed track03.cdda.wav 5b7de2131bb2c25f1460754ce27e5693 track04.cdda.wav 1d0493a7d7271c4eff5784ffab32cd17 track05.cdda.wav 118d34ad57251c894b86eafffa5bf223 track06.cdda.wav ab35a05025029ad2c631a1974666c4ca track07.cdda.wav a3e910ff435f09c82e9b8705c3086830 track08.cdda.wav c56b7b6b185a4b83c40478556f432b3e track09.cdda.wav dcd5ace2a84201de79d0e5a677f65b4d track10.cdda.wav 092c98347a1d26299a7a24d4289f0a5b track11.cdda.wav dfde6165644354c831540b09b9f0e893 track12.cdda.wav efa0712d5c9b43cf2580f0c75582a283 data.wav
Supprimons ces wav : rm *.wav.
On peut également s'amuser à découper le flac en pistes et les tagguer grâce au fichier cue embarqué. Cela peut s'avérer plus pratique de manipuler les pistes isolées plutôt que l'album entier.
On réutilise la command shnsplit mais cette fois-ci en sortant du flac à partir du flac complet : shnsplit -f data.cue -t track%n.cdda -o flac ../data.flac. On obtient 1 fichier flac par piste.
On va utiliser la commande⁷ cuetag.sh pour tagguer ces pistes grâce au fichier cue que nous avons alimenté avecle nom des pistes : cuetag.sh data.cue track{01..12}.cdda.flac.
C'est à vous de décider s'il est plus pratique pour vous de travailler avec 1 seul fichier pour tout l'album ou avec autant de fichier que de pistes.
1↑ : Cf. https://xiph.org/paranoia/
2↑ : Cf. http://www.accuraterip.com/driveoffsets.htm
3↑ : Cf. https://github.com/arcctgx/ARver.
4↑ : Cf. http://www.accuraterip.com/.
5↑ : Cf. https://github.com/taem/cd-discid.
6↑ : Cf. https://github.com/cdrdao/cdrdao.
7↑↑ : Cf. https://github.com/svend/cuetools.
8↑ : Cf. https://xiph.org/vorbis/doc/v-comment.html#fieldnames.
9↑ : Cf. https://musicbrainz.org/label/8387a032-b837-4bbf-b6e5-99ad9f7a0bdd.
10↑ : Cf. https://xiph.org/flac/format.html#metadata_block_picture.
11↑↑ : Cf. https://github.com/bayun/shntool.