Il programma ripit
unito a cdparanoia
e oggenc
(rispettivamente dai pacchetti Debian
ripit, cdparanoia e vorbis-tools) consente di estrarre le tracce audio da un CD e salvarle in formato .ogg con un unico comando. Se possibile titoli e altre informazioni sul brano sono recuperate dal database on-line freedb.org.
Ecco la ricetta:
ripit --ripper 1 --coder 1 --quality 6 --outputdir $HOME/music --playlist 0 --archive
La qualità 6 per oggenc
significa circa 192 kbit/s.
Il comando shncmp
dal pacchetto Debian shntool consente di confrontare due tracce audio. Dovrebbe permettere anche di compensare eventuali shift fra una traccia e l'altra. In caso di differenza tuttavia non indica quanta differenza esiste.
Con audacity
è possibile inevece vedere la differenza fra due tracce. Ecco il procedimento:
La traccia risultate è la differenza tra le due.
Il database di titoli di CD http://www.freedb.org/ è liberamente consultabile ed aggiornabile.
Ogni disco viene identificato da un genere e da un ID, tale classificazione è salvata localmente nella directory $HOME/.cddb/
da programmi tipo ripit
o analoghi che usano la libreria libcddb2
.
Se localmente abbiamo un file di nome $HOME/.cddb/classical/82102618
, dovrebbe esistere lo stesso file anche all'URL http://www.freedb.org/freedb/classical/82102618
.
È possibile inviare una nuova entry per posta elettronica, basta scrivere a freedb-submit@freedb.org, mettendo come Subject: cddb classical 82102618
, usando come corpo del messaggio il file cddb.
Per decodificare il formato lossless Monkey's Audio (APE) si può usare il programma ffmpeg
(dall'omonimo pacchetto Debian), ad esempio:
ffmpeg -i cd_image.ape cd_image.wav
Un file .cue contiene le informazioni sulle tracce di un CD-Audio in questo formato:
PERFORMER "Unknown Artist" TITLE "Unknown Title" FILE "CDImage.wav" WAVE TRACK 01 AUDIO TITLE "Track01" PERFORMER "Unknown Artist" INDEX 00 00:00:00 INDEX 01 00:00:33 TRACK 02 AUDIO TITLE "Track02" PERFORMER "Unknown Artist" INDEX 00 11:26:10 INDEX 01 11:27:60
Il tag INDEX
indica una posizione nel file audio nel formato mm:ss:ff, cioè minuti, secondi e frame. Nella struttura di un CD-Audio ci sono 75 frame per ogni secondo. La prima traccia utile è INDEX 01 (vedi Cue sheet (computing).
Installando i pacchetti Debian cuetools e shntool è possibile dividere un unico file nelle singole tracce:
cuebreakpoints CDImage.cue | shnsplit -o wav CDImage.wav
I file risultanti saranno nominati a partire da split-track01.wav
.
Il tool cuebreakpoints
produce una lista di posizioni nel formato mm:ss.ff. Per N posizioni verranno estratti N+1 file. Se la fine del file non viene rilevata automaticamente può capitare un errore nell'estrazione dell'ultima traccia; si può in quel caso aggiungere un breakpoint che indica (fittiziamente) l'ultima posizione utile del file.
ATTENZIONE: a volte vengono distribuiti CUE file sbagliati, dove l'INDEX è nel formato mm:ss:dd (minuti, secondi e decimi di secondo); un indizio è quando la terza componente assume valori maggiori o uguali a 74. Si può in questo caso dare in pasto a shnsplit
una lista di breakpoints nel formato mm:ss.ddd (minuti, secondi e decimi di secondo). Oppure si converte i decimi di secondo in frame usando la formula ff = dd / 100 * 75.
ATTENZIONE: se il formato del file non è in qualità CD (44.1 kHz, 16 bit) il tool shnsplit
non accetta i breakpoints nel formato mm:ss.ff, bisogna fornirli piuttosto nel formato mm:ss.ddd.
Il programma shnsplit
può leggere direttamente anche il formato ape, bisogna installare il pacchetto monkeys-audio (disponibile nel repository deb-multimedia.org) che contiene il codec mac, lo split in questo caso si fa con:
shnsplit -f CDImage.cue CDImage.ape
È possibile nello stesso modo gestire anche il formato WavPack Lossless Audio; è sufficiente installare il pacchetto Debian wavpack ed eseguire il comando:
cuebreakpoints file.wv.cue | shnsplit -o wav file.wv
A volte viene distribuito un file FLAC senza il corrispondente .cue, ma le informazioni sulla suddivisione in tracce sono conenute al suo interno come CUESHEET block
oppure come semplici metadati di testo, provare ad estrarre le informazioni con questi comandi:
metaflac --export-cuesheet-to=- file.flac metaflac --list file.flac
Eventualmente con un editor di testo si deve ottenere un CUESHEET del tipo:
FILE "CDImage.wav" WAVE TRACK 01 AUDIO INDEX 01 00:00:00 TRACK 02 AUDIO INDEX 01 05:14:73 TRACK 03 AUDIO INDEX 01 11:07:58
Come descritto sopra per i file WAV, si può procedere alla suddivisione in singole tracce:
cuebreakpoints file.cue | shnsplit -o flac file.flac
I pacchetti Debian necessari sono flac, cuetools e shntool.
I file generati saranno del tipo split-track01.wav
, è possibile generare i file anche in altro formato, ad esempio FLAC:
shnsplit -f CDImage.cue -o flac CDImage.ape
Capita di trovare file audio in qualità superiore a quella del CD-Audio (44.1 kHz, 16 bit), sia in formato lossy che lossless. Per vari motivi può essere utile la conversione (con ovvia perdita, ad esempio per poter masterizzare un normale CD-Audio). Ecco una ricetta che utilizza sox
per convertire un FLAC in WAV, facendo contemporaneamente il downsampling:
sox input_file.flac -r 44100 -b 16 output_file.wav
Estrarre una parte di un file ,mp3 può essere fatto senza fare il deconding e successivo encoding, che altrimenti introducono una perdita di qualità. In Debian GNU/Linux (dalla versione Squeeze) c'è il pacchetto mp3splt che contiene l'omonimo comando. Si deve indicare il punto di inizio e il punto di fine in minuti.secondi:
mp3splt file.mp3 110.57 127.23
Alcuni player supportano speciali tag che indicano a che volume deve essere riprodotto un brano. Esistono programmi che modificano tale tag dopo aver analizzato il singolo brano o una intera collezione, in modo che suoni a un volume normalizzato.
ATTENZIONE: Il pacchetto mp3gain è stato rimosso da Debian 9 perché privo di manutenzione (ultima versione in cui era disponibile: Debian 8 Jessie). In alternativa esiste il pacchetto aacgain, che aggiunge il supporto ai file audio AAC contenuti nel formato MP4. È disponibile nel repository Deb-Multimedia, non in quello ufficiale.
In teoria basterebbe un editor di tag per aggiungere il tag replaygain_track_gain, ma al momento (marzo 2018) né Kid3 né EasyTAG consentono l'aggiunta di tag custom.
Il programma mp3gain (dall'omonimo pacchetto Debian) consente di alterare il parametro “global gain” di un file mp3 senza effettuare la ricodifica. Usato in maniera automatica cerca il massimo guadagno applicabile senza raggiungere il clipping (taglio dei punti più alti) del segnale sonoro, ma nella maggior parte dei casi è accettabile il clipping per avere un volume mediamente più alto.
Il programma può lavorare su più di un file contemporaneamente, ad esempio per normalizzare tutti i brani di uno stesso album musicale. Vediamo invece come modificare una singola traccia.
mp3gain file.mp3
con questo comando viene analizzato il file e i risultati vengono scritti in alcuni tag all'interno del file stesso. Nelle successive eleborazioni vengono usate tali informazioni, a meno che non si usi l'opzione -s r
che obblica a calcolarle di nuovo.
mp3gain -a file.mp3
con l'opzione -a
si applica il massimo guadagno possibile evitando però il clipping del segnale.
mp3gain -g 1.2 file.mp3
con -g
si applica il guadagno indicato, anche se questo comporterà un clipping del segnale audio.
Aprendo il file con Audacity si può notare l'esito dell'amplificazione, perché il programma applica il parametro “global gain” quando apre e decodifica il file.
In ogni caso le modifiche apportate al file sono salvate in un tag all'interno del file stesso, è possibile quindi annullarle lanciando il programma con l'opzione -u
.
C'è una insana abitudine a distribuire file musicali in contenitori MPEG-4, con audio codificato AAC e l'aggiunta di iTunes info, che si traduce in un flusso audio/video magari con un solo frame still-video. Il file con estensione .m4a viene solitamente interpretato (e convertito) appunto in un flusso audio/video, con evidente inutile sovraccarico.
Ecco una ricetta per convertire il file in un più classico MP3 oppure OGG/Vorbis, con l'opportuna qualità:
ffmpeg -i file.m4a -vn -q:a 1 file.mp3 ffmpeg -i file.m4a -vn -c:a libvorbis -qscale:a 9 file.ogg
Per il formato MP3 la qualità massima è -q:a 0 (da 10 a 0), mentre per il formato Vorbis la qualità massima è -qscale:a 10 (da 0 a 10).