Ciao, Marco.
"Any intelligent fool can make things bigger, more complex, and more violent. It takes a touch of genius -- and a lot of courage -- to move in the opposite direction."
— E. F. Schumacher (mis-attributed to A. Einstein)
________________________________________________________________________________
Autore della patch R2 per Squeezelite e del plugin C-3PO. note libere
Logitech media Server 7.9 > miniPc + squeezelite-R2 / SB+ > "Lu Scalmentu" NOS R2R DAC by TubeOne/ AudioResearch DAC 1-20 >
Klimo Merlino Gold TPS > DIS Interconnect > Kent Gold > Reference > Monitor Audio Studio 20 SE
Senza nessuna polemica, quel documento lo avevo consigliato io nel thd su Daphile tempo fa, ma non è un problema di primogenitura, in effetti hai ragione dicendo che la soluzione tramite Flac corrisponde a quella da lui consigliata, che ha il pregio di funzionare.
La 'baraonda' che si è sviluppata a seguire è stata generata da una serie di comandi alternativi che sono stati sperimentati, molti dei quali NON funzionano, nel senso che alla prova dei fatti (riga di comando) non producono i risultati attesi, pur dando l'impressione di farlo, quindi ci siamo fatti prendere la mano nella ricerca e sperimentazione di forme che prevedessero l'uscita in pcm al fine di 'scaricare' completamente squeezelite.
Il motivo per cui sperimenti i dropouts con la configurazione postata e non con alcune varianti che hai provato è questo: la prima funziona, le altre no, quindi sono ...leggere...
SE provi la conversione da riga di comando, ti accorgi che non è leggera, tutt'altro.
Purtroppo, errori nei comandi a parte, siamo incappati in un'area grigia, dove è evidente che qualcosa non funziona nel verso giusto (comunicazione tra LMS e Squeezelite mediante pcm con formati > 44100 Hz 16 Bit).
Non è una cosa nota, bisogna sempre considerare che non è una pratica comune l'upsampling con LMS ed in tutti i thd in cui se ne parla (pochi) si usa flac, anche perchè pochi praticano la conversione sul server già a 44100/16, ma trasmettono flac.
E' un buco di LMS? di Squeezelite? Non sono stato capace di trovare le giuste sequenze di comandi da utilizzare? Francamente non lo so, mi ci sono perso io per primo ed ho tentato di 'tenervi vuori', dalla questione mentre cercavo di dipanarla, chiedendovi:
a. di mettervi in condizione di far funzonare la conversione via flac per come certamente funzionante.
b. di sperimentare le conversioni a WAV 192000/24 esternamente, da riga di comando.
c. di verificare che LMS riesca, nella vs. configurazione, a comunicare con Squeezelite 'nativamente' il WAV 192K/24, cosa che da me non funziona in win32 ma funziona con LMS su mac.
Considera che - mi pare - DacPassion non sia ancora in condizione di fare upsampling nemmeno passando da Flac, tu sperimenti drop outs e Filipo (ma non ho capito bene) non riesce ad utilizzare stream remoti, quindi non siamo ancora al punto 1.
A tutti questi problemi c'è una soluzione, cerchiamo di far funzionare questo prima di inoltrarci su altre strade?
Le ulteriori prove e sperimentazioni, alimentate anche dai suggerimenti di Paolo sono utilissime, ma avvengono 'nella zona grigia' dove non c'è certezza di risultato, confondere i due obiettivi e perseguirli contemporaneamente provoca confusione, quindi - mio consiglio - affrontateli solo se avete 'digerito' la prima configurazione.
Ultima modifica di marcoc1712 : 03-04-2015 a 12:17
Ciao, Marco.
"Any intelligent fool can make things bigger, more complex, and more violent. It takes a touch of genius -- and a lot of courage -- to move in the opposite direction."
— E. F. Schumacher (mis-attributed to A. Einstein)
________________________________________________________________________________
Autore della patch R2 per Squeezelite e del plugin C-3PO. note libere
Logitech media Server 7.9 > miniPc + squeezelite-R2 / SB+ > "Lu Scalmentu" NOS R2R DAC by TubeOne/ AudioResearch DAC 1-20 >
Klimo Merlino Gold TPS > DIS Interconnect > Kent Gold > Reference > Monitor Audio Studio 20 SE
Paolo, probabilmente non ci capiamo e stiamo girando intorno alla questione:
a.wav pcm * * - nel convert.conf indica a LMS di prendere QUALSIASI file/stream wav e passarlo senza nessuna operazione (significato di -) al player, qualunque esso sia (significato di * *).
stesso dicasi per aif pcm * * -.
b. flac pcm * *
# IRFT:{START=--skip=%t}U:{END=--until=%v}
[flac] -dcs --force-raw-format --endian=little --sign=signed $START$ $END$ -- $FILE$
nel convert.conf (a standard in ogni installazione) indica a LMS di prendere QUALSIASI file/stream flac e passarlo al player, qualunque esso sia (significato di * *) applicando la conversione mediante flac nella seconda riga.
a + b rende evidente che un player squeezebox è progettato in modo da poter ricevere un waw , un aif (a) o un raw pcm (b) e mandarlo in esecuzione.
Squeezelite definisce questo 'pcm' come un codec ed in realtà usa una libreria apposita (pcm.dll) almeno in win32.
Fino a qui direi che non c'è motivo/spazio di discussione.
I problemi nascono qui:
a. genera un file WAV 192/24 (ma anche solo 44.1/24) da OS e verifica sia valido con gli strumenti che vuoi.
b. Mandalo in esecuzione con LMS. Attraverso wav pcm * * - Squeezelite riceve lo stream corrispondente al file WAV, ci siamo?
Bene: se inviato da mac a win32 funziona, se inviato da Win32 a Win32 no, stando a quanto scrive Filippo funziona anche da Win64 a Linux e da Win64 a Win64, non abbiamo conferma, ma credo funzioni anche da Linux a Linux.
Già questo è bello strano...
Indagando nei log, Squeezelite su Win32 ricevendo lo stream da LMS lo apre 44100/16, indipendentemente dal formato del file, se proviene da MAC no, lo apre 192K/24. Immagino faccia lo stesso in tutte le situazioni in cui funziona, ma nessuno ha postato i log.
NOTA BENE: win32/Win32 non funziona nessun formato diverso da 44.1/16, nemmeno 44.1/24.
c. introducendo nel convert.conf:
flac pcm * *
qualsiiasi comando fino a qui provato, anche su tua indicazione, che comprenda - t wav ma comporti un resampling e/o un cambio di profondità (-b 24) non funziona, spulciando nei log (win32 e Mac) si vede che squeezelite li apre sempre 44100/24.
Filippo riporta che non funzione nemmeno su Linux.
a + b per me significano che - con la sola eccezione dell'invio diretto di file da mac - wav viene ricevuto in Squeezelite SEMPRE come 44.1/16.
d. introducendo nel convert.conf:
flac pcm * *
con un comando che comprenda -t raw corredato di tutte le opportune specifiche del file di output, comprensive del -r, sono riuscito a fare upsampling, ma il comando funzionante su mac NON funziona su Win32.
Questo è stato il 'motore' che mi ha portato a voler fare le prove con i files, tu ti sei inserito a quel punto con ottimi consigli, ma secondo me non hai ancora metabolizzato bene i termini dl problema:
Si, probabilmente quelle che escono a 44100/16 funzionano, le altre no.
Secondo me il problema è che squeezelite ricevendo wav 'assume' che sia pcm 44100/16. Che sia un buco o un parametro aggiuntivo da aggiungere al convert.conf e che noi - per mia ignoranza - omettiamo, non lo so.
La 'chiave' potrebbe stare nel fatto che da mac funziona.
Ciao, Marco.
"Any intelligent fool can make things bigger, more complex, and more violent. It takes a touch of genius -- and a lot of courage -- to move in the opposite direction."
— E. F. Schumacher (mis-attributed to A. Einstein)
________________________________________________________________________________
Autore della patch R2 per Squeezelite e del plugin C-3PO. note libere
Logitech media Server 7.9 > miniPc + squeezelite-R2 / SB+ > "Lu Scalmentu" NOS R2R DAC by TubeOne/ AudioResearch DAC 1-20 >
Klimo Merlino Gold TPS > DIS Interconnect > Kent Gold > Reference > Monitor Audio Studio 20 SE
non é vero!!! il mio wav ricampionato a 192/24....lo vede 192/24Secondo me il problema è che squeezelite ricevendo wav 'assume' che sia pcm 44100/16.
c'è almeno un errore (mea culpa): usando solo sox non c'è il supporto per il "seek", per cui "T:" ed "U:" non ci vanno messi. La entry corretta dovrebbe essere quindi:
...ecco perché suggeriscono di usare una pipeline con flac che riceve e decomprime i dati prima di passarli a sox. Farlo è banale, ma facciamo una cosa per volta: prima vediamo se riusciamo a farlo andare nel modo più semplice possibile, poi proveremo a "raffinare".codice:flc wav * * # F [sox] -q -t flac $FILE$ -t wav -b 24 - gain -3 rate -v 192000 dither -a -S
Se anche la precedente non funziona, per cercare di capire dov'è l'inghippo prova anche così:
e così:codice:flc wav * * # F [sox] -q -t flac $FILE$ -t wav -c 2 -b 16 -e signed-integer - gain -3 rate -v 192000 dither -a -S
N.B.: queste due entries fanno il resampling, ma escono a 16 bit. Suggerisco di provarle per capire se il problema è dato da un eventuale limite sul bit-depth su pcm (se per caso accetta solo 16 bit).codice:flc pcm * * # F [sox] -q -t flac $FILE$ -t wav -c 2 -b 16 -e signed-integer - gain -3 rate -v 192000 dither -a -S
Ancora un'altra prova "diagnostica":
questo NON fa upsampling (casomai -al contrario- fa "downsampling" di eventuali files HD nativi). Serve per capire se per caso i formati pcm sono "hard-coded" a 16/44 e non accettano risoluzioni diverse da quella.codice:flc pcm * * [sox] -q -t flc $FILE$ -t raw -r 44100 -c 2 -b 16 -e signed-integer -
Sì, ho visto.
Da notare che esce in PCM raw, signed-integer little-endian, ovviamente alla stessa risoluzione (s/r e bit depth) del file originale. Questo dovrebbe dare da pensare:
come fanno LMS/SL a capire qual è la "risoluzione" (s/r e bit depth) dello stream convertito?
Ci sono solo due possibilità:
1) LMS "legge" tali informazioni dal file di ingresso e si aspetta che lo stream PCM di uscita mantenga le stesse identiche "caratteristiche" di quello di ingresso;
2) la risoluzione per i formati "pcm" è "hard coded", cioè LMS si aspetta che sia (sempre e solo) 16/44.
Sfortunatamente, entrambe le cose precludono senza appello la possibilità di fare upsampling passando per "pcm".
(sorry guys... temo che LMS sia un po' meno evoluto e flessibile di quanto qualcuno ritenga).
Comunque, questo suggerisce una prova interessante:
Provate a far suonare dei flac utilizzando la conversione flc->pcm della configurazione di default (l'ultima qui sopra).
Provate sia con files flac "a risoluzione CD" (16/44) che con flac "HD" (nativi o convertiti, purché con sample rate > 44.1 e/o bit depth > 16).
Che succede?
infatti, apparentemente sembra essere proprio così: nell'architettura LMS il FLAC potrebbe essere l'unico formato che consente di trasferire stream lossless a risoluzioni maggiori di 16/44.
Nel qual caso non si scappa: per poter utilizzare risoluzioni più alte di 44/16 (native o comunque "upsamplate") bisogna per forza passare per flac. Fine della storia.
poi nel file "custom-convert.conf" metti solo le entries "custom" aggiuntive e/o "sostitutive" di quelle di default. Se interpreto bene:
presumo che LMS crei la sua "tabella di conversione" leggendo prima il file di default (convert.conf) e successivamente quello "custom" (custom-convert.conf). Le entries presenti in quest'ultimo file (che non sono presenti nell'altro) vengono sicuramente aggiunte, come se il contenuto del file "custom" fosse semplicemente "appeso" (incluso alla fine) dell'altro.codice:# If you wish to create custom transcoding entries that won't be overwritten # by a new release of Logitech Media Server, create a custom-convert.conf file in the # Logitech Media Server root directory, or the root of the Plugins directory.
Inoltre, verosimilmente LMS dovrebbe verificare le entries sulla base della prima riga (<source_format> <dest_format> <destination_device_type> <destination_device_id>), cioè a quella che definisce il tipo di conversione (anche in funzione dei diversi dispositivi di "destinazione" se gli ultimi due campi non sono "*").
Quindi, presumibilmente, le entries presenti in "custom-convert.conf" che eventualmente abbiano la prima riga "uguale" ad una entry predefinita (in convert.conf) vanno semplicemente a sostituire queste ultime.
In altre parole, il file "convert.conf" non va mai modificato in alcun modo. Tutte (e sole) le entries che si vogliono modificare (o aggiungere) vanno invece semplicemente inserite nel file "custom-convert.conf".
(copiare le entries predefinite nel file "custom" è del tutto superfluo e NON è consigliabile farlo).
Ciao, Paolo.
«Se tu hai una mela, e io ho una mela, e ce le scambiamo, allora 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.»
Ok Paolo, stasera faccio delle prove....
Ciao, Marco.
"Any intelligent fool can make things bigger, more complex, and more violent. It takes a touch of genius -- and a lot of courage -- to move in the opposite direction."
— E. F. Schumacher (mis-attributed to A. Einstein)
________________________________________________________________________________
Autore della patch R2 per Squeezelite e del plugin C-3PO. note libere
Logitech media Server 7.9 > miniPc + squeezelite-R2 / SB+ > "Lu Scalmentu" NOS R2R DAC by TubeOne/ AudioResearch DAC 1-20 >
Klimo Merlino Gold TPS > DIS Interconnect > Kent Gold > Reference > Monitor Audio Studio 20 SE
Vero!!!
Ma questo non é correto credo. Io mando in play un file wav "nativo" 192000/24 (non credo che LMS faccia una coneversione Wav>Flac o PCM, devo controllare stasera)Secondo me il problema è che squeezelite ricevendo wav 'assume' che sia pcm 44100/16.
Io non ho modificato niente in convert.conf riguardo ai wav....
Squeezelite lo manda al driver cosi a 192000 (verificato sul dac)
Cioé secondo me sqeezelite centra poco in tutti sti problemi che stiamo incontrando...
Ciao, Marco.
"Any intelligent fool can make things bigger, more complex, and more violent. It takes a touch of genius -- and a lot of courage -- to move in the opposite direction."
— E. F. Schumacher (mis-attributed to A. Einstein)
________________________________________________________________________________
Autore della patch R2 per Squeezelite e del plugin C-3PO. note libere
Logitech media Server 7.9 > miniPc + squeezelite-R2 / SB+ > "Lu Scalmentu" NOS R2R DAC by TubeOne/ AudioResearch DAC 1-20 >
Klimo Merlino Gold TPS > DIS Interconnect > Kent Gold > Reference > Monitor Audio Studio 20 SE
Ci sono attualmente 2 utenti che stanno visualizzando questa discussione. (0 utenti e 2 ospiti)