Originariamente inviato da UnixMan
ERRORE!!!

1) per fare upsampling NON devi specificare "-r xxx" nel formato di uscita: il s/r desiderato devi metterlo tra i parametri del comando "rate"!

2) se il formato del file (stream) di ingresso non è "headerless" (raw), NON devi mai specificare le opzioni riguardanti il formato!!

Farlo significa fare un "override" di quanto scritto negli header del file, cioè significa forzare sox ad interpretare i dati contenuti del file in modo diverso da ciò che (presumibilmente) sono (ergo... esce solo "rumore").

3) anche per quanto riguarda il file di uscita, le opzioni di formato vanno usate con cura e parsimonia, fornendo solo quelle indispensabili, se e quando strettamente necessario!

Ad es., se fai resampling NON specificare mai il s/r nel formato di uscita: non solo è del tutto superfluo ma, se per sbaglio fornisci nelle opzioni del file un s/r diverso da quello chiesto a "rate", ottieni che rate venga chiamato DUE volte, la prima con le opzioni che gli hai dato e la seconda in modo automatico, con le opzioni di default, per riconvertire al formato di uscita richiesto.

Il comando corretto è questo:

codice:
sox -V3  file_di_ingresso.flac  file_di_uscita.wav  rate -v 192000
(poi, come detto, NON mettere "-D"! Casomai, al contrario, aggiungi un bel "dither -s" in fondo!)
Il -D serve ad evitare il dithering, io ne so poco, ma ovunque si dice di evitare eil dithering su materiale che lo ha già subito,

sox stesso dice:

Dithering is a technique used to maximise the dynamic range of audio stored at a particular bit-depth. Any distortion introduced by quantisation is decorrelated by adding a small amount of white noise to the signal. In most cases, SoX can determine whether the selected processing requires dither and will add it during output formatting if appropriate.

Specifically, by default, SoX automatically adds TPDF dither when the output bit-depth is less than 24 and any of the following are true:

•bit-depth reduction has been specified explicitly using a command-line option

•the output file format supports only bit-depths lower than that of the input file format

•an effect has increased effective bit-depth within the internal processing chain

Quindi non nel nostro caso.

comunque non è questo il mio problema adesso, le opzioni di ottimizzazione le vedrà chi vorrà in seguito, il mio obiettivo è di trovare la struttura di comando giusto.

il -V3 è per vedere cosa fa nel dettaglio, a regime rimetteremo il -q.

-t flac sull'input si può omettere, corretto, ma solo fintanto che parti da un file, quando parti da un raw (in pipe con Flac) bisogna ripristinare tutta la sfilza dei parametri descrittivi, ponendo attenzione. Comunque non è vietato, è uno dei modi possibili per farlo.

Il file prodotto dal tuo comando è a 16 bit, per portarlo a 24, non conosco altro modo del -b 24 nelle opzioni relative al file di output, c'è un modo migliore?

Altro problema, se non metti una riduzione del volume, SOX avvisa che clippa, quindi io aggiungerei anche il -b 90

Quindi il comando diventa:

sox file_di_ingresso.flac -b 24 file_di_uscita.wav rate -v -b 90 192000[/CODE]

Che, se aggiungi il -D, produce esattamente lo stesso output (in termini di bit) del comando che ho postato io, quindi con gli stessi problemi di rumore se suonato da LMS su pc win ma non su mac o con foobar, da qui il motivo della richiesta.

Ovviamente togliendo il -D cambia qualche bit nel file (togliendo il -b 24 il file è - ovviamente - completamente diverso, anche come dimensione), ma non è quello che attualmente mi preoccupa, quindi ai miei fini vanno bene i file prodotti in entrambi i modi.