User Tools

Site Tools


doc:appunti:linux:audio:start

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
doc:appunti:linux:audio:start [2013/06/02 09:44] – [File originale in formato FLAC] niccolodoc:appunti:linux:audio:start [2023/12/20 14:39] (current) – [Dividere un file audio in base ad un file CUE] niccolo
Line 67: Line 67:
     INDEX 01 11:27:60     INDEX 01 11:27:60
 </file> </file>
 +
 +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 [[wp>Cue sheet (computing)]].
  
 Installando i pacchetti Debian **cuetools** e **shntool** è possibile dividere un unico file nelle singole tracce: Installando i pacchetti Debian **cuetools** e **shntool** è possibile dividere un unico file nelle singole tracce:
Line 74: Line 76:
 </code> </code>
  
-I file risultanti saranno nominati a partire da **''split-track01.wav''**. In teoria ''shnsplit'' potrebbe leggere direttamente anche il formato ape, ma si appoggia al programma **''mac''** (non presente in debianper la decodifica.+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 bitil 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 [[https://deb-multimedia.org/|deb-multimedia.org]]) che contiene il codec //mac//, lo split in questo caso si fa con: 
 + 
 +<code> 
 +shnsplit -f CDImage.cue CDImage.ape 
 +</code> 
 + 
 +È possibile nello stesso modo gestire anche il formato **WavPack Lossless Audio**; è sufficiente installare il pacchetto Debian **wavpack** ed eseguire il comando: 
 + 
 +<code> 
 +cuebreakpoints file.wv.cue | shnsplit -o wav file.wv 
 +</code>
  
 ==== File originale in formato FLAC ==== ==== File originale in formato FLAC ====
Line 97: Line 117:
 </file> </file>
  
-Con questo file si può procedere alla suddivisione in singole tracce:+Come descritto sopra per i file WAV, si può procedere alla suddivisione in singole tracce:
  
 <code> <code>
Line 104: Line 124:
  
 I pacchetti Debian necessari sono **flac**, **cuetools** e **shntool**. 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:
 +
 +<code>
 +shnsplit -f CDImage.cue -o flac CDImage.ape
 +</code>
 +
 +==== Qualità eccessiva nei file audio ====
 +
 +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:
 +
 +<code>
 +sox input_file.flac -r 44100 -b 16 output_file.wav
 +</code>
 +===== Suddivisione di un file mp3 =====
 +
 +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**:
 +
 +<code>
 +mp3splt file.mp3 110.57 127.23
 +</code>
 +
 +
 +===== Amplificazione senza ricodifica di un file mp3 o aac =====
 +
 +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 [[http://www.deb-multimedia.org/|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.
 +
 +<code>
 +mp3gain file.mp3
 +</code>
 +
 +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.
 +
 +<code>
 +mp3gain -a file.mp3
 +</code>
 +
 +con l'opzione ''**-a**''  si applica il massimo guadagno possibile evitando però il clipping del segnale.
 +
 +<code>
 +mp3gain -g 1.2 file.mp3
 +</code>
 +
 +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%%**''.
 +
 +===== Conversione da M4A a MP3 o OGG/Vorbis =====
 +
 +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à:
 +
 +<code>
 +ffmpeg -i file.m4a -vn -q:a 1 file.mp3
 +ffmpeg -i file.m4a -vn -c:a libvorbis -qscale:a 9 file.ogg
 +</code>
 +
 +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).
doc/appunti/linux/audio/start.1370159088.txt.gz · Last modified: 2013/06/02 09:44 by niccolo