Vediamo di fare il punto:
a. SOX va patchato, ma la patch di Daphile non è coerente con la versione in corso, quindi bisogna 'coreggere' manualmente (v. sotto) e ricompilare.
b. Squeezelite-R2 va corretto applicando le patch di Daphile in merito al play back di DSD nativo ed altro (fatto, v. 1.8.5).
Una volta fatto, le righe:
wav dsf * *
# FT:{START=--skip=%t}U:{END=--until=%v}
[flac] -cs --totally-silent --compression-level-0 $START$ $END$ -- $FILE$ | [sox] -q -t flac - -t dsf -b 1 - rate -vMn 2822400 sdm -f sdm-8
e
flac dsf * *
# FT:{START=--skip=%t}U:{END=--until=%v}
[flac] -dcs --totally-silent $START$ $END$ -- $FILE$ | [sox] -q -t wav- -t dsf -b 1 - rate -vMn 2822400 sdm -f sdm-8
funzionano come ci si aspetta (@Paolo prego confermare o correggere)?
Rimane da verificare l'allinamento dei diversi formati in modo da otteere musica e non rumore...
NOTA SU SOX:
La patch da applicare è SOLO questa:
codice:
diff --git a/src/dsf.c b/src/dsf.c
index 2f17c8d..3b68364 100644
--- a/src/dsf.c
+++ b/src/dsf.c
@@ -221,7 +221,7 @@ static int dsf_writeheader(sox_format_t *ft)
lsx_writedw(ft, dsf->chan_num) ||
lsx_writedw(ft, dsf->sfreq) ||
lsx_writedw(ft, dsf->bps) ||
- lsx_writeqw(ft, dsf->scount) ||
+ lsx_writeqw(ft, dsf->scount ? dsf->scount : UINT64_MAX) ||
lsx_writedw(ft, dsf->block_size) ||
lsx_writedw(ft, 0) || /* reserved */
lsx_writedw(ft, DATA_TAG) ||
@@ -259,7 +259,10 @@ static int dsf_write_buf(sox_format_t *ft)
if (lsx_write_b_buf(ft, dsf->block, wlen) < wlen)
return SOX_EOF;
dsf->block_pos = 0;
- memset(dsf->block, 0, wlen);
+ if (ft->seekable)
+ memset(dsf->block, 0, wlen);
+ else
+ memset(dsf->block, 0x69, wlen);
}
return SOX_SUCCESS;