Un script de modification de fichier CUE

Postez ici vos scripts Bash, Python, C++, etc...
Répondre
Avatar du membre
Nerva
Messages : 478
Enregistré le : lun. 4 mars 2019 18:48

Un script de modification de fichier CUE

Message par Nerva »

Bonjour.

J'aimerais automatiser la modification d'un fichier CUE...

Après la réalisation de mixes (dans Bitwig Studio), je les édite dans Audacity en plaçant manuellement des marqueurs. Chaque marqueur est nommé ainsi :

Artiste - Titre

Je sauvegarde ensuite le fichier de marqueurs. À l'aide de Label2Cue (un script en Java), je génère un fichier CUE "rudimentaire" (dans lequel on charge le fichier TXT de marqueurs et le fichier audio correspondant) qui se présente ainsi :

Code : Tout sélectionner

FILE "Mix 02.wav" WAVE

  TRACK 01 AUDIO
    TITLE "Artiste - Titre 1"
    INDEX 01 00:00:00
  TRACK 02 AUDIO
    TITLE "Artiste - Titre 2"
    INDEX 01 04:33:68
  TRACK 03 AUDIO
    TITLE "Artiste - Titre 3"
    INDEX 01 08:07:05
Pour l'agrémenter, j'utilise successivement ces expressions régulières :

1) Suppression des espaces et des tabulations en début de ligne :

Rechercher : ^[ \t]+|^(?:[\t ]*(?:\r?|\r))+
Remplacer :

2) Ajout d'un espace entre chaque piste pour une meilleure visibilité :

Rechercher : TRACK
Remplacer : \nTRACK

3) Ajout d'une ligne PERFORMER et d'une ligne GENRE :

Rechercher : (TITLE )(".*?")
Remplacer : PERFORMER \2\n\1\2\nGENRE "Dance"

À ce stade, les lignes PERFORMER et TITLE contiennent chacune les données des artistes et des titres.

4) Suppression du titre dans la ligne PERFORMER :

Rechercher : (PERFORMER )(")(.*?)( - )(.*?)(")
Remplacer : \1\2\3\6

5) Suppression de l'artiste dans la ligne TITLE :

Rechercher : (TITLE )(")(.*?)( - )(.*?)(")
Remplacer : \1\2\5\6

Au final, le fichier est parfaitement formaté :

Code : Tout sélectionner

FILE "Mix 01.wav" WAVE

TRACK 01 AUDIO
PERFORMER "Artiste"
TITLE "Titre 1"
GENRE "Dance"
INDEX 01 00:00:00

TRACK 02 AUDIO
PERFORMER "Artiste"
TITLE "Titre 2"
GENRE "Dance"
INDEX 01 04:33:68

TRACK 03 AUDIO
PERFORMER "Artiste"
TITLE "Titre 3"
GENRE "Dance"
INDEX 01 08:07:05
Mine de rien, ça reste assez contraignant à faire (surtout que j'en ai plusieurs en attente) alors je voudrais voir comment on pourrait placer les 5 étapes dans un bash.

Merci.
Linux Mint 22.3 Zena | Mate
Répondre