antonellocaroli ha scritto:ma non penso che sia quello il problema...visto che con i primi 2 file funziona.
Io penso che sia un problema proprio di mpd a passare a sox certi tipi di file...
tieni d'occhio il log di MPD: potrebbero esserci informazioni utili a capire l'origine del problema. Come al solito si tratta di un normale file di testo, che puoi quindi aprire con i soliti tools (ad es. less, cat, tail, editor vari, ecc). Puoi anche seguire i messaggi "in tempo reale" con il comando:
(Ctrl+C per terminare. Al solito, per maggiori informazioni sul comando usa "man tail").
BTW: se non ho visto male i primi due file sono 44/16, il terzo 96/24. Perché provi con due files "uguali"? che differenza c'è tra i due?
Tornando al problema, proverei anche ad aggiungere l'opzione "format" alla definizione dell'audio_output, così:
ovviamente, mappare uno stream a 16 o 24 bit in uno a 32 è una operazione perfettamente trasparente. Per altro, per migliorare la precisione e ridurre gli errori di calcolo sox lo fa in ogni caso, internamente, prima di effettuare qualsiasi operazione (poi, alla fine, come ultima operazione prima dell'eventuale "dithering" provvede a riconvertire nel formato di uscita richiesto).
P.S.: non dimenticare di aggiungere l'opzione "
gain" a sox, altrimenti rischi di incorrere nel
clipping nel corso dei calcoli. Digli sempre di ridurre il volume di 6-:-12 dB circa (e.g. gain -12)
prima di effettuare qualsiasi altra operazione:
Codice: Seleziona tutto
sox -q -V0 --combine sequence -t raw -c %c -b %b -r %r -e signed-integer - -t alsa -b24 hw:0,0 gain -9 rate -vMa 192000 dither -s
non temere, non perdi ne alteri nulla: "mappando" 16 o 24 bit su 32 hai ampi margini per "ridurre il volume" senza che vada perduta (ne alterata) alcuna informazione: sostanzialmente stai semplicemente facendo "scorrere" la posizione del blocco dei 16 o 24 bit "utili" (tutti gli altri sono a zero) all'interno della word di 32bit.
Ovviamente, se esageri poi qualcosa rischi di perderlo nella successiva ri-conversione a 24 bit in uscita. Ma con l'upsampling l'ampiezza dei picchi massimi tende ad aumentare rispetto allo stream di ingresso, c'è bisogno di avere un margine per non incorrere nel clipping. Che se si verifica si sente... meglio rischiare di perdere qualcosina nei bit meno significativi (che tendono a perdersi comunque nel rumore di fondo) piuttosto che il clipping.

Ciao, Paolo.
«Se tu hai una mela, e io ho una mela, e ce le scambiamo, tu ed io abbiamo sempre una mela per uno. Ma se tu hai un'idea, ed io ho un'idea, e ce le scambiamo, allora abbiamo entrambi due idee.»