Xcfa_CLI

xcfa_cli est une implémentation de xcfa en ligne de commande.
xcfa_cli est une application pour la conversion, la normalisation, la reconfiguration des fichiers WAV, découpe des fichiers audio ...

Ce que xcfa_cli sait faire:

  • replaygain sur des fichiers: flac, mp3, ogg, wavpack
  • conversion:
    • depuis des fichiers:
      wav, flac, ape, wavpack, ogg, m4a, mpc, mp3, wma, shorten, rm, dts, aif, ac3
    • vers des fichiers:
      wav, flac, ape, wavpack, ogg, m4a, mpc, mp3, aac
  • gestion des paramètres de conversion pour les fichiers:
    • flac, ape, wavpack, ogg, m4a, aac, mpc, mp3
  • gestion des tags
  • gestion des fichiers cue (wav)
  • manipulation de la fréquence, voie et bits sur les fichiers wav
  • normalisations sur des fichiers: wav, mp3, ogg
  • découpes (split) de fichiers wav
  • affichage d'informations sur des fichiers


Téléchargement et installation


Le dossier est ici ...
$ wget http://download.tuxfamily.org/xcfaudio/xcfa_cli/xcfa_cli-0.0.7.tar.gz
$ tar xvfz ./xcfa_cli-0.0.7.tar.gz
$ cd xcfa_cli-0.0.7/
$ ./autogen.sh
$ make
# make install
or
$ sudo make install

Deux aides précieuses avant de commencer


$ man xcfa_cli
et
$ xcfa_cli
...donnant toutes les informations nécessaires pour utiliser xcfa_cli.

Vous pouvez consulter le manpage au format PDF ici.

Les programmes externes indispensables


!-------------------------------------------------------------
! sysname    Linux
! nodename   sabinus
! release    3.18.0-0-MANJARO
! version    #1 SMP PREEMPT Mon Dec 8 17:49:25 UTC 2014
! machine    x86_64
!            6 CPU (64 bits)
!            AMD Phenom(tm) II X6 1055T Processor
!-------------------------------------------------------------
! INSTALL      NAME             DESCRIPTION
!-------------------------------------------------------------
!  Yes         a52dec           Decode ATSC A/52 audio streams
!  Yes         aacplusenc       AAC+ encoder
!  Yes         mp3check         Cherche des renseignements sur les formats mp3
!  Yes         faac             Audio Codeur freeware
!  Yes         faad             MPEG-4 AAC decodeur
!  Yes         flac             Conversion wav : flac
!  Yes         lame             Conversion wav : mp3
!  Yes         mac              Monkey's Audio Console Front End : APE
!  Yes         mpcdec           MusePack commandline utilities
!  Yes         mpcenc           MusePack commandline utilities
!  Yes         mplayer          Lecteur et extracteur
!  Yes         mp3gain          Replaygain pour les fichiers mp3
!  Yes         normalize        Normaliseur de fichier wav
!  Yes         notify-send      A program to send desktop notifications
!  Yes         shorten          Forte compression au format wave
!  Yes         shntool          Decoupage de fichiers sans decodage
!  Yes         sox              Transformation universelle de fichiers son
!  Yes         oggenc           Conversion wav : ogg
!  Yes         vorbisgain       Replaygain pour les fichiers ogg
!  Yes         wavpack          WAVPACK  Hybrid Lossless Audio Compressor
!-------------------------------------------------------------

Quelques exemples d'utilisations


Exemple de conversion:

  • Formats d'entrée: wav, flac, ape, wavpack, ogg, m4a, mpc, mp3, wma, shorten, rm, dts, aif, ac3
  • Formats de sortie: wav, flac, ape, wavpack, ogg, m4a, mpc, mp3, aac
$ xcfa_cli --input "file.wav" -d ogg --dest flac,mpc, --output newfolder/
$ xcfa_cli --input "*.wav" --dest ogg,flac,mp3, --output newfolder/ --recursive -op_mp3 "--preset fast extreme"
$ xcfa_cli --input "*.*" -d mp3 --split 00:00:00 -l 30 -o newfolder/ --verbose --frequency 44100 --track 2 --quantification 16

Exemple de conversion avec plusieurs entrées:

$ xcfa_cli --input "file.wav" --input "other_file.mp3" -d ogg --dest flac,mpc, --output newfolder/

Exemple de split:

$ xcfa_cli --input "file.wav" --info_files
$ xcfa_cli --input "*.*" -d mp3 --split 00:00:00 -l 30 -o newfolder/ --verbose
$ xcfa_cli --input "file.wav" -d ogg,mpc --split 00:01:00 --length 22 --output newfolder/

Exemples cue:

Informations pour un fichier CUE
$ xcfa_cli -i "BluesWav.cue" --cue info
!-------------------------------------------------------------
! /home/cat/Musique/test/BluesWav.cue
!-------------------------------------------------------------
! Track  Begin       End         Length    Title
!-------------------------------------------------------------
 [  1 ]  00:00:00    00:02:57    177       Track_01
 [  2 ]  00:03:01    00:06:17    196       Track_02
 [  3 ]  00:06:21    00:10:14    233       Track_03
 [  4 ]  00:10:18    00:13:27    189       Track_04
 [  5 ]  00:13:32    00:16:26    174       Track_05
...
Informations pour un fichier WAV
$ xcfa_cli -i "BluesWav.wav" --cue info
!-------------------------------------------------------------
! /home/cat/Musique/test/BluesWav.wav
!-------------------------------------------------------------
!Track  Begin       End         Length    Title
!-------------------------------------------------------------
 [  1 ]  00:00:00    00:03:01    181       title_1
 [  2 ]  00:03:01    00:06:21    200       title_2
 [  3 ]  00:06:21    00:10:18    237       title_3
 [  4 ]  00:10:18    00:13:32    194       title_4
 [  5 ]  00:13:32    00:16:30    178       title_5
 
...
Une action d'extraction depuis le fichier wav
$ xcfa_cli -i "BluesWav.wav" --cue extract -o dest/

Exemple de modification de: fréquence, voie, bits:

La modification des paramètres des fichiers WAV sont faites sur la fréquence, le nombre de pistes et la quantification:
$ xcfa_cli -i "file.wav" -d wav -o newfolder/ --frequency 96000  --track 6 --quantification 32 --verbose

Exemple de replaygain (modification dynamique) sur:

  • FLAC
    [ clear | Album ]
  • MP3
    [ clear | album | track ]
  • OGG
    [ clear | album | trac k]
  • WavPack
    [ clear | album | track ]
$ xcfa_cli -i "*.*" --replaygain clear
$ xcfa_cli -i "*.*" --replaygain album

Exemple de normalisation (modification statique ) sur MP3, WAV, OGG:

Voir un excellent article de @Dzef sur la normalisation.
  • --peak
    Action sur un fichier.
    L'amplification du volume maximale pour chaque fichier.
    Augmenter le niveau global du signal de façon à amener le niveau à 0 dBFS sans changer la dynamique.
  • --peak_album
    Action sur un groupe de fichiers.
    Gain de volume maximum pour un groupe de fichiers en fonction du niveau de différences entre chacun d'eux.
    Si le niveau maximum de un ou plusieurs fichiers est déjà à 0 dBFS, le niveau de tous les fichiers sélectionnés restent inchangés après normalisation. Donc, ce mode peut être utilisé en toute sécurité presque systématiquement.
  • --mix_rms_album < dBFS >
    Action sur un groupe de fichiers.
    Réglage du volume moyen d'un groupe de fichiers concernant le niveau moyen de la différence entre chacun d'eux..
    La sélection d'une valeur d'un fichier modifie les autres fichiers dans le groupe.
  • --fix_rms < dBFS >
    Action sur un fichier.
    Réglage du volume moyen de chaque fichier.
$ xcfa_cli -i "*.*" --info_file
$ xcfa_cli -i "*.*" --peak_album
$ xcfa_cli -i "*.*" --peak
$ xcfa_cli -i "*.*" --mix_rms_album -10
$ xcfa_cli -i "*.*" --fix_rms -4

Exemple d' affichage des informations sur les fichiers:

  • --info_files
    Displays time, level dBFS, frequency / track / quantification
  • --info_tags
    Displays tags
  • --info_head
    Displays head
$ xcfa_cli -i "*.*" --info_files --info_tags --info_head

Un jour peut être ...


Le développement d'une interface graphique (qt, gtk, ...) serait la bienvenue pour xcfa_cli ...

A compléter ( todo )


Options:
  • --fifo
    Transmitting information via a FIFO file
  • To 'split' options, adding of the hundredth: hh:mm:ss:cc
  • Peut être une modif sur le code concernant les tags avec lame ou un genre peut avoir une description en ascii

Tests effectués sur:


  • Archlinux
    • Merci à Corelli pour l'intégration dans AUR chez ArchLinux
  • Manjaro
  • Debian
  • ?