Uff sono sempre più curioso ...che diavolo avranno combinato con LMS per Mac!?!
Printable View
Veramente ho anche due futro...
è che purtroppo, come avrete notato, con linux non so proprio muovermi. ..se proprio non ne esco fuori con il mac proverò questa strada.
Oltretutto perchè avere 3 pc accesi quando con due: mac (per fare tutto e far girare lms) e futro (per squeezelite) potrei risolvere tutto?
OK, da tenere presente. La mia risposta di prima era solo in merito al fatto che ci possono essere situazioni in cui compromessi sonono necessari ed allora - mi pare - fare l'upsampling su squeezelite possa essere uno migliore di altri,
Comunque abbiamo un sistema con tante, OTTIME alternative, non guasta certo!
Grande approccio alla musica (ma valido anche per il vino e le altre cose belle della vita) ed un grande chapeaux alle Adamantes, certo tra i migliori (per i miei gusti) diffusori 'umani' da me incontrati.
p.s.
Hai visto la mia risposta sui files? Dac Passion ha confermato quello che credevo, devi fare un po di pulizia...
Al dilà delle difficoltà con mac, alle quali stiamo già guardando com Michael, Giovanni secondo me ha buone ragioni, dipende molto da dove tieni la musica.
Fossi in te proverei con un fulcro come server (con la musica in locale) ed eventualmente utilizzato anche come nas/file server per i backup, liberi il mac e ci guadagni in sicurezza. Potersti anche usare una qualche distribuzione specifica per NAS, ne esistono con LMS già installato ed ottimizzato, comunque l'installazione di LMS è una stupidata in se, sono le cose 'strane' che diventano complicate.
p.s.
Nessuno vieta di avere contemporaneamente attivi più server, quindi è una prova che puoi fare in parallelo.
Giorgio son pronto a darti una mano sulle procedure, poi penso anche Filippo che si districa benissimo con Linux.
E' importante per Lubuntu creartelo avviabile su chiavetta USB per la persistenza( é quasi come fosse installato),la procedura per installare poi LMS è facile.
per Voyage con Squeezelite lo stesso. Giriamo la cosa in PVT se vuoi e ti do' ragguagli. Alla fine di tutto magari si fa' una guida.
++ Ma non mi abbandonate il mac sul più bello, ormai ho avviato il cingolo, devo arrivarci in fondo!
Per la guida - vista la richiesta di BIBO01 - io ne farei una generica per LMS e squeezelite, più - eventualmente - una per Daphile con evidenziate solo le differenze e rimandando all'altra per le cose comuni, cosa ne dite?
Apro un THD apposito per lancciare l'idea.
Certo Marco. E ovviamente sono d'accordo che bisogna pulire....l'avevo anche iniziata tempo fa' questa cosa...il tempo ci vuole.
Per il resto io sono ammalato di musica, di arte, letteratura, cinema e filosofia senza tregua e per mia fortuna dormo poco.....e poi nondimeno il mio lavoro che mi da' molto oltre alla pagnotta.
Comunque in cima a tutto cio' c'è la mia famiglia, la base di tutto.
Giovanni, ti ringrazio in anticipo, mi piacerebbe fare tutte queste belle cose ma non so quanto tempo avrò nei prossimi giorni, il 26 Aprile faccio il grande passo (poi viaggio ..in una delle terre con più "malati" di audio ehehhe) e di preparativi ne ho ancora parecchi da fare :-D
..nei ritagli di tempo posso provarci, ma devi avere pazienza se non sarò "reattivo" ;-)
Ho messo questa stringa in custom-convert.conf
flc pcm * *
# FT:{START=--skip=%t}U:{END=--until=%v}
[flac] -dcs --force-raw-format --endian=little --sign=signed $START$ $END$ -- $FILE$ [sox] -D -q -t wav - -t flac -e signed -C 0 -b 24 - rate -v -b 98 -L -a 96000
La musica va, però nelle info del file in lms mi dice questo:
Non sto più facendo la conversione in pcm??
https://up.nexthardware.com/user_ima...e 23.38.14.png
edit
ora va anche con questa stringa (però ho messo solo questo, il resto ho cancellato tutto)
flc pcm * *
# FT:{START=--skip=%t}U:{END=--until=%v}
[flac] -dcs --force-raw-format --endian=little --sign=signed $START$ $END$ -- $FILE$ [sox] -D -q -b 24 - rate -v -b 98 -L -a 192000
Con questo risultato
https://up.nexthardware.com/user_ima...e 23.52.00.png
Starò facendo upsampling?? Così faccio l'upsampling prima di convertire in pcm o nel "verso giusto"? ..e soprattutto perché ora funziona??
La domanda sorge spontanea, perché ora funziona?? :-D
Certo che se le informazioni che si leggono in LMS fossero veritiere, sarebbe molto più comodo capire se quello che si sta facendo da buoni frutti o no
Ps per essere un programma con più di 10 anni sulle spalle potrebbe avere un po meno bug
Allora sto provando anche io:
cancellato flc flc da convert.conf
Aggiunta la riga come Dacpassion in custom-conver.conf
flc pcm * *
# FT:{START=--skip=%t}U:{END=--until=%v}
[flac] -dcs --force-raw-format --endian=little --sign=signed $START$ $END$ -- $FILE$ [sox] -D -q -b 24 - rate -v -b 98 -L -a 384000
nel dac si accende la lucetta del 44100...quindi non fa resample.
Giová tu come hai fatto?????
Filippo il mio DAC non lo puo' piu' fare perchè è stato modificato (non ha piu' il ricevitore digitale e il filtro di oversampling ....è diventato NOS) inoltre nella I2soverUsb non ci sono
indicatori. Su Mint nel monitor di sistema posso solo vedere che SOX è attivo. Ma in ogni caso col codice di Sox nel custom architettato per resampling dobbiamo pensare che
sia una montatura? e allora perchè il lavoro della CPU si incrementa vistosamente e pure il traffico di rete? E questo è un fatto nel mio monitor di sistema.
Ragazzi...
LMS non ha tra le sue funzionalità dichiarate l'upsampling. Dato che può utilizzare SOX (ed altri strumenti) in un modo 'tecnicamente' trasparente (cioè completamente fuori dal controllo di LMS) semplicemente 'passando' dei parametri alla riga di comando, qualcuno ha pensato di poterlo utilizzare per fare upsampling (tra le altre cose). Ma sono funzionalità di SOX, se individuate il corretto comando di SOX da applicare ad un file di input per la riproduzione (play), quel comando preso pari pari e sostituendo "-" al nome del file funziona certamente anche in (custom-) convert.conf.
Sarebbe come dire che la trascodifica MP3 ha un buco perchè Lame non è installato, non è così, dato che è dichiarato. Può non piacere, ovvio.
UnixMan ha ragione, come principio, ma in questo caso specifico il comportamento di LMS è lo stesso dalla 6.4 in poi: si limita ad eseguire dei comandi, se sono giusti OK, se sono sbagliati...
Alcuni dei comandi che ho visto postati qui, NON fanno upsampling e NON funzionano da riga di comando con SOX (provato personalmente), questo non è un problema di LMS è un problema (di errato utilizzo di ) SOX.
Il modo per passare i comandi lo abbiamo trovato, adesso bisogna individuare i comandi giusti, sapete che su questo io non ho la medicina pronta e sono meno attrezzato di voi per provare, comunque faccio del mio meglio per essere di aiuto.
Ad LMS si può imputare, correttamente, la farraginosa architettura dei files .conf e la non immediata evidenza degli errori, ma ribadisco che li siamo utilizzando oltre lo scopo per cui erano stati pensati. Fino ad oggi nessun programmatore ha pensato o ritenuto opportuno organizzare il tutto in un modo più semplice, sospetto che il motivo sia anche perchè - inevitabilamente - così facendo dovrebbe imporre limitazioni (v. squeezelite) che non tutti gradirebbero.
Dovremmo come prima cosa individuare i giusti comandi di conversione ed upsampling in SOX (ed eventualmente flac), sperimentarli direttamente da riga di comando, verificare che il risultato sia quello atteso e quindi trasferirli in LMS.
Bene, o quasi, oggi ho dedicato il pomeriggio (il lavoro langue) alla risoluzione diproblemi riscontrati sul mac ed a sox, scambiando anche qualche messaggio con Michael, anche se non mi ha ancora risposto in merito all'upsampling.
Non ho risolto i problemi del mac, ma ho scoperto alcune cose interessanti:
1. Non solo (custom-)convert.conf guida la trascodifica, ma anche le impostazioni/capacità del lettore.
Mi spiego: se il lettore (squeezelite nel mio caso) è impostato per suonare SOLO il pcm (-c pcm) LMS non cercherà di inviargli il flac, quindi se flac è impostato solo su flac nativo, non va.
Lo stesso vale per tutti gli altri parametri (rate compreso), quindi OCCHIO alle impostazioni del lettore (squeezelite e daphile in particolare), ricordando che se il DAC ha un driver che restituisce le frequenza ammesse (ASIO) se minori dei limiti impostati in squeezelite (o daphile) vincono loro...
I Log di Daphile sono molto chiari in merito.
2. Non ho ancora capito come e perchè, ma molti dei comandi che avete postato in linea di comando su mac non vanno, quindi o la vs. configurazione dei vari .conf è tale per cui LMS usa strade alternative o semplicemente la part e'sox' del comando viene ignorata.
Su mac, l'unico comando flac + sox in grado di produrre un file .wav 24/192 che può essere correttamente riprodotto sul mio dac 'emulato' (soundmax) è questo:
flac -dcs --force-raw-format -- endian-little --sign=signed file.flac | sox -D -t raw -r 44100 -b 16 -c 2 -s -L - -t wav -r 192000 -b 24 file.wav rate -v -b 90
dove file.flac e file.wav vanno sostituiti con i nomi che volete.
Provate e vi accorgerete che non è affatto leggero, però sicuramente riuscirete a riprodurlo. Verificare dimensioni e carico (anche di rete) in riproduzione.
Non sono ancora riuscito a trovare il modo per produrre raw (non basta sostituire wav) e farlo digerire a squeezelite.
Le verifiche continuano, per prima quella di eviate FLAC ed usare solo SOX per trascodifica ed upsampling.
Vi tengo informati, intanto, per cortesia, usate il comando sui vostri sistmi e veirificate cosa succede.
Grazie.
Il comando:
sox -D file.flac -t wav -r 192000 -b 24 file.wav rate -v -b 90
produce ESATTAMENTE (bit per bit) lo stesso risultato di quello del post precedente, con un carico di CPU confrontabile, rimane il problema di far vedere l'output direttamente a squeezelite come pcm.
Come già detto, quella riga è sbagliata, manca la '-' che apre la pipe in imput per sox (oltre alla |). LMS non sta certo esegeundo quella, verificate nei log (di LMS e squeezelite).
EDIT: Part edel problema è il -q nel comando a sox, sopprime qualsiasi messaggio in uscita...
Volevo precisare che quando parlavo di bug, anche se non l'ho scritto, non mi riferivo solo alla corretta indicazione nel pannello informazioni, ma soprattutto alla gestione della libreria (vedi prima traccia di Giovanni). Bug che mi è capitato di incontrare nella versione ufficiale non solo in questa. Per fare un esempio la mia stessa libreria con voyage mpd non mi dava un problema, con LMS ho dovuto lavorarci per avere le copertine e le tracce in ordine ...ecco questo da un programma (nato per fare quasi solo questo) con anni di sviluppo sulle spalle non me lo aspettavo ...si può dire? :-)
Giová il comando é questo:
cat /proc/asound/card0/pcm0p/sub0/hw_params
forse devi cambiare "card0" con "card1" o "pcm0p" con "pcm1p", dipende da come Linux chiama l'uscita....controlla e se ti da l´upsample, se tr lo fa mi dici come hai fatto? che stasera riprovo....
per verificare che effetivamente l´up lo fa LMS/SOX, sqeezelite lo dovresti lanciare senza -u vLX ecc
Certo che si può dire. Poi mi vien da dire ...a chi lo dici! Dato che io ho sviluppato una serie da applicazioni in Java proprio per la gestione della libreria, di cui alcune componenti sono anche disponibili open source (musicbrainzJavaWS2, DiscogsJavaV2,...).
La mia opinione, per quel che vale, è che la gestione della libreria di LMS - che non è una gestione, ma solo il browsing - sia una tra le migliori. Hai citato MPD:
a. non gestisce i .cue files
b. fatica a gestire il gapeless (non tutti i client lo fanno).
c. pessima/inesistente gestione delle playlists
d. va in crisi con librerie di dimensioni > 10K tracce.
Per me è inutilizzabile e direi di aver provato praticamente tutte le maggiori varianti di MPC, tra cui Cantata, specifica per la classica....
Nello specifico, il 'problema' di Giovanni è che ha 2 diverse 'fonti' di informazioni incongruenti nella cartella, MPD (ed altri) non vanno in crisi, perchè semplicemente ne ignorano uno, se imposti LMS per ignorare i .cue, ottieni lo stesso risultato, ma a mio avviso è meglio risolvere il problema a monte.
Copertine: anche qui temo che il problema stia nell'organizzare la propria libreria in modo che qualsiasi browser la possa correttamente interpretare, comunque LMS può operare praticamente in tutti i modi che vuoi, compreso gestire le embedded nei tag.
LMS, però, ha il concetto di album (come pochi altri) e la copertina è per album, è una caratteristica. Utilizzando plugins puoi avere diversi modi di visualizzazione di informazioni aggiuntive per traccia/album o artista, tra cui immagini e quindi copertine, ma anche biografie, testi, spartiti, eventi,...
LMS gestisce le playlist in modo diverso dagli album, se non ti piace e vuoi 'forzarti' a creare album fittizi come playlist è una tua scelta, non un bug di LMS o altri.
Il problema che sta a monte di LMS o di qualsiasi altro sistema 'utente' della libreria, è che volendo mantenere un minimo organizzate librerie importanti è necessario dotarsi di strumenti specifici, per il tagging ma non solo. Alcuni player (Foobar e Jriver, per esempio) hanno alcune o tutte queste funzionalità integrate, LMS no, per scelta. Prima di tutto bisogna avere un'idea chiara di quello che si vuole ottenere, darsi uno standard e mantenerlo.
Questo concetto vale per la gestione della libreria ma vale in generale: LMS è un prodotto finito per fare quello che è nato per fare, la lungimiranza dei signori di slimdevices che ne hanno progettato l'architettura e la presenza di una forte community a supporto gli ha permesso di evolvere verso direzioni mai nemmeno da loro immaginate (ricordiamoci che il business di SlimDevices prima e di Logitech dopo era di vendere lettori hw, strumenti come Squeezelite sarebbero stati per loro un danno diretto!) rendendolo uno standard de facto.
Come sempre la flessibilità è una forza da un lato ma una debolezza (complessità) dall'altro, la logica di 'delegare' a strumenti terzi le funzionalità è certamente vincente, ma è ovvio che il risultato finale dipende dalla qualità intrinseca di questi strumenti e da come vengono utilizzati allo scopo. Certo, prodotti proprietari e monolitici come HQP il problema di Giovanni o delle copertine non lo hanno...
Dipende dai punti di vista, nessun pranzo è mai gratis, LMS ti chiede SOLO di leggere il menù per accedere alle funzionalità di base, puoi portarti lil vino o il dolce da casa se vuoi, ma anche andare in cucina e prepararti tu le ricette, ma lo sforzo e le conoscenze richieste aumentano.
E' come per l'autocostruzione: io posso solo comprare prodotti finiti, altri possono assemblare Kit, tu probabilmente sei anche in grado di progettare il tuo dac e realizzarlo a partire dai componenti, immagino che non sia facile farlo senza conoscere le specifiche dei componenti e saper saldare.
Ciao.
Scusate per l'OT
Io alla fine mi sono organizzato così:
Nella cartella di ogni album ho lasciato solo i brani in flac è una copertina (ho tolto i log delle conversioni, le scansioni delle altre parti del disco e i file .cue .mu3 e altro ...sinceramente mi è dispiaciuto per le scansioni dei libretti, ma spesso mi trovavo pagine del libretto al posto della cover).
C'è un modo migliore di affrontare il problema?
Ps anche quel cavolo di tag "album artist" mi ha (e ancora mi crea) un sacco di problemi!! Pochi tag editor lo gestiscono e spesso anche rimuovendolo, non capisco perché, la situazione rimane invariata.
LMS è un MEDIA server, non solo un music server, quindi puoi abilitare/disabilitar ela gestione delle immagini, dei video,...
Se lo usi come Music Server, puoi dirgli quali formati MUSICALi ignorare, quindi M3u (playlist) e CUE (CUEFILE) nel tuo caso puoi anche metterli nell'elenco delle estensioni ignorate senza eliminarli 'fisicamente'. M3U sono playlist e come tali non disturbano, CUE se contrastanti con la struttura, il formato ed il contenuto in termini di tag si, quindi a mio avviso è meglio eliminarli.
In preferenze puoi indicare come si chiama il file che rappresenta il file di copertina (normalmente cover.jpeg o Folder.Jpeg o come vuoi tu), gli altri vengono ignorati.
Io, per scelta, ho una cartella per ogni disco in un albero che può arrivare fino a Artista> Gruppo di opere/Edizione> Volume/Album> Disco
Per ogni disco ho i file audio + cover.jpeg + una cartella ART che contiene tutte le altre cover che voglio far scorrere su un controller remoto che visualia l ariproduzione in corso + una cartella EXTRA che contiene tutto il resto, compresi i files che eventualmente voglio poter visualizzare sul display del controller da cui comando LMS (o da web o..., ma non in automatico sul display di cui al punto precedente).
Le cartelle extra ed art, in realtà, possono essere presenti a qualsiasi livello della gerarchia e trattate 'per non trovato' o in sequenza, a scelta.
LMS (nativamente, estendibili mediante plugin) riconosce 6 possibili ruoli per un artista, ogni ruolo può essere ricoperto da più artisti (separati da un carattere impostato nelle preferenze).
COMPOSER
CONDUCTOR
BAND
ARTIST
ALBUM ARTIST
TRACK ARTIST
I primi 4 sono abbastanza ovvi di per se, posto che - sempre in base alle preferenze - possono essere utilizzati sepatamente o confluire in un'unica lista 'Artisti' in fase di browse.
Per ogni formato le 'regole' con cui vengono derivati dai TAG (o dai comandi, nel caso dei CUE) possono essere diverse, sostanzialmete se ne distinguono 3 famiglie:
- MP3 TAG (IdV2 o Idv3)
- OggVorbis Tag.
- Cue Commands
con relativi standard e varianti.
Per 'facilitare la vita' dalle preferenze è possibile modificare il comportamento di specifici TAG.
ALBUM ARTIST e ARTIST dipendono anche dal fatto che l'album sia o meno una COMPILATION, dove per LMS il significato di Compilation è quello di un album in cui l'artista di riferimento (ARTIST) non è lo stesso per tutte le tracce e/o il TAG COMPILATION è presente ed uguale ad Y, Yes o 1 o l'ALBUM ARTIST (se indicato) è uguale al valore impostato nelle preferenze per "Artisti vari" (default dipendente dalla lingua in uso).
Ancora una volta, dipendentemente dallo standard e quindi dal formato, si traduce in modo diverso nei tag 'fisicamente' presenti nei files.
SE l'album è individuato come compilation, ALBUM ARTIST viene posto = al valore di "Artisti Vari" e TRACK ARTIST prende il valore di ARTIST, altrimenti TRACK ARTIST è vuoto ed ALBUM ARTIST prende il valore di ARTIST (uguale per tutte le tracce).
Questo come regola generale, in alcuni casi, quando è indicato sia l'ALBUM ARTIST che L'ARTIST e non è una compilation, i due valori rimangono diversi. Non è un buco, ma una scelta per non perdere informazioni. E' un errore logico in sede di tagging, però.
Il problema qui è che in album organizzati su files per traccia, non c'è modo di indicare informazioni a livello di album in modo univoco, da qui tutti i problemi relativi. LMS fa del suo meglio per salvare capra e cavoli, ma siamo - ancora una volta - in presenza di un errore di archiviazione e tagging.
Il mio consiglio è di adottare delle convenzioni valide per 'genere' (o libreria), almeno per Classica e resto.
Personalmente io faccio così:
a. "Resto"
SE l'artista principale è diverso per traccia è una compilation, altrimenti no.
es. Two Rooms è un Tributo ad Elton John, quindi a mio avviso è lui l'album artist, pur non comparendo tra gli artist perchè non canta e non suona in nessuna traccia, Elton John è normalment anche il composer, i singoli interpreti sono gli ARTIST per traccia, ma NON è una compilation.
...festivalbar 2015... (scusate, mi sembrava l'esempio 'tecnicamente' più chiaro) è una compilation, l'album artist è "Artisti Vari" Interpreti e composers sono per traccia.
Io metto solo L'interprete (o gli interpreti) principali in ARTIST/ALBUM ARTIST, i secondari, ospiti, comparse o aggiuntivi li metto eventualmente in BAND.
b. "Classica"
Il problema è individuare l'artista principale. Mi sono dato una regola: Se il compositore è unico è lui, altrimenti SE l'interprete (o il set di interpreti) è unico è lui, altrimenti è una compilation (various artists).
L'artista principale, in questo caso è ALBUM ARTIST.
In COMPOSER, comunque, va il composer, se univoco per album, altrimenti per traccia.
In CONDUCTOR comunque, va il direttore d'orchestra (o del coro o il primo violino o...), se univoco per album, altrimenti per traccia.
In ARTIST (se diverso per traccia, quindi da Album Artist) gli interpeti principali (compresi orchestra e coro)
In BAND gli artisti secondari (non limitatamente ad orchestra, coro o ensamble, anzi spesso questi sono in Artist, qui ci sono i ruoli 'secondari' cioè i credits non in frontespizio.
Questo copre le esigenza 'minime', per ottenere di più (es. avere il dettaglio per 'tipo' di strumento/ruolo) bisogna necessariament eutilizzare plugins esterni o affidarsi alla visualizzazione di documenti in EXTRA o (meglio) mettere nei tag link a pagine web da richiamarsi dal controller (tramite plugin).
Marco come da te richiesto ho immesso nel custom-convert.conf ( ricordo che nel convert.conf ho cancellato flc flc) il codice come da te indicato:
.......................................................................
-flc pcm * *
# FT:{START=--skip=%t}U:{END=--until=%v}
[flac] -dcs --force-raw-format --endian=little --sign=signed file.flac | sox -D -t raw -r 44100 -b 16 -c 2 -s -L - -t wav -r 192000 -b 24 file.wav rate -v -b 90
.......................................................................
A Squeezelite in Voyage ho dato questo comando dalla root:
.......................................................................
squeezelite-i386 -z -o front:CARD=X20,DEV=0 -a 100:3:32:1 -b 3072:4096 -c pcm
.......................................................................
mi puoi confermare che cosi è corretto. Io posso dire solo che funziona.
mmh....
[flac] -dcs --force-raw-format --endian=little --sign=signed file.flac | sox -D -t raw -r 44100 -b 16 -c 2 -s -L - -t wav -r 192000 -b 24 file.wav rate -v -b 90
imposta l'outpup su file.wav, non sullo stream in uscita, e sox non è tra parentesi quadre [sox ]quindi non è questo comando che suona. Bisognerebbe vedere il log di squeezelite e di LMS.
[flac] -dcs --force-raw-format --endian=little --sign=signed file.flac | [sox] -D -t raw -r 44100 -b 16 -c 2 -s -L - -t wav -r 192000 -b 24 - rate -v -b 90
è il corrispondente corretto, probabilmente hai copiato dal comando sox da dare al terminale.
Aggiungerei -r 192000-192000 a squeezelite (anche se dovrebbe funzionare ugualmente, almeno con driver asio).
se il file che mandi in play non é 44100...che succede con quel comando?
Ciao a tutti.
Le cose si fanno sempre più complicate, man mano si avanza con l'indagine. Ancora non mi esprimo definitivamente, ma probabilmente scopriremo cose interessanti sul resampling.
Vi chiedo cortesemente di eseguire IN OS il comando:
sox -D file.flac -t wav -r 192000 -b 24 file_192_24.wav rate -v -b 90
dove file.flac è un qualsiasi file flac 44.1/16 esistente e file_192_24.wav è il file che ne risulterà.
Ora a me succede questo:
1.LMS su mac e Squeezelite su PC Win32 , file_192_24.wav suona correttamente ed è riconosciuto come PCM 192/24.
2.LMS su PC Win e Squeezelite su PC Win32 , file_192_24.wav suona come 'rumore bianco': squeezelite non lo riconosce come 192/24 ed apre a 44.1.
Non riesco, al momento, a provare altre configurazioni, chiedo pertanto a voi di provare e postarmi il risultato (ricordandomi anche la configurazione, ...sono pigro...), se lunedì vado al mare proverò con mac+ Alix/Voyage.
Vi prego di porre attenzione alla correttezza del comando dato, alle impostazioni di squeezelite (tutto standard, ev. solo -r 192000) ed al fatto che WAV venga mandato NATIVO da LMS, altrimenti si falsa la prova.
Mi interessano particolarmente configurazioni con LMS su Linux e squeezelite su win32 (mi aspetto si comporti come mac/Win32, ma...) qualsiasi/Linux e qualsiasi/Win64.
Michael non risponde, quando fa così è perchè o ho scritto una grossa c....a e/o ho messo il dito in una piaga (secondo me la prima è quasi certa, la seconda probabile).
Grazie.
Corretto:
:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
-flc pcm * *
# FT:{START=--skip=%t}U:{END=--until=%v}
[flac] -dcs --force-raw-format --endian=little --sign=signed file.flac | [sox] -D -t raw -r 44100 -b 16 -c 2 -s -L - -t wav -r 192000 -b 24 rate -v -b 90
:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
funge
Allora come fai a dire che funziona??? funziona nel senso che si sente il play...ma non puoi essere sicuro che esce un file a 192....
cat /proc/asound/card0/pcm0p/sub0/hw_params deve funzionare per forza....hai provato a mettere al posto di card0 card1?
le opzioni "-s/-u/-f/-A/-U/-o/-i/-a/-g" sono deprecate, al loro posto si deve usare l'opzione "-e" (encoding):
inoltre, quel "-D" lo toglierei: se il dithering non serve, sox non lo mette. Se invece serve, è fondamentale lasciare che sox ce lo metta!codice:Input & Output File Format Options
These options apply to the input or output file whose name they immediately precede on the command line and are used mainly when
working with headerless file formats or when specifying a format for the output file that is different to that of the input file.
-b BITS, --bits BITS
The number of bits (a.k.a. bit-depth or sometimes word-length) in each encoded sample. Not applicable to complex encodings
such as MP3 or GSM. Not necessary with encodings that have a fixed number of bits, e.g. A/u-law, ADPCM.
For an input file, the most common use for this option is to inform SoX of the number of bits per sample in a `raw' (`head-
erless') audio file. For example
sox -r 16k -e signed -b 8 input.raw output.wav
converts a particular `raw' file to a self-describing `WAV' file.
For an output file, this option can be used (perhaps along with -e) to set the output encoding size. By default (i.e. if
this option is not given), the output encoding size will (providing it is supported by the output file type) be set to the
input encoding size. For example
sox input.cdda -b 24 output.wav
converts raw CD digital audio (16-bit, signed-integer) to a 24-bit (signed-integer) `WAV' file.
-1/-2/-3/-4/-8
The number of bytes in each encoded sample. Deprecated aliases for -b 8, -b 16, -b 24, -b 32, -b 64 respectively.
-c CHANNELS, --channels CHANNELS
The number of audio channels in the audio file. This can be any number greater than zero.
For an input file, the most common use for this option is to inform SoX of the number of channels in a `raw' (`headerless')
audio file. Occasionally, it may be useful to use this option with a `headered' file, in order to override the (presumably
incorrect) value in the header - note that this is only supported with certain file types. Examples:
sox -r 48k -e float -b 32 -c 2 input.raw output.wav
converts a particular `raw' file to a self-describing `WAV' file.
play -c 1 music.wav
interprets the file data as belonging to a single channel regardless of what is indicated in the file header. Note that if
the file does in fact have two channels, this will result in the file playing at half speed.
For an output file, this option provides a shorthand for specifying that the channels effect should be invoked in order to
change (if necessary) the number of channels in the audio signal to the number given. For example, the following two com-
mands are equivalent:
sox input.wav -c 1 output.wav bass -b 24
sox input.wav output.wav bass -b 24 channels 1
though the second form is more flexible as it allows the effects to be ordered arbitrarily.
-e ENCODING, --encoding ENCODING
The audio encoding type. Sometimes needed with file-types that support more than one encoding type. For example, with raw,
WAV, or AU (but not, for example, with MP3 or FLAC). The available encoding types are as follows:
signed-integer
PCM data stored as signed (`two's complement') integers. Commonly used with a 16 or 24 -bit encoding size. A value
of 0 represents minimum signal power.
unsigned-integer
PCM data stored as unsigned integers. Commonly used with an 8-bit encoding size. A value of 0 represents maximum
signal power.
floating-point
PCM data stored as IEEE 753 single precision (32-bit) or double precision (64-bit) floating-point (`real') numbers.
A value of 0 represents minimum signal power.
a-law International telephony standard for logarithmic encoding to 8 bits per sample. It has a precision equivalent to
roughly 13-bit PCM and is sometimes encoded with reversed bit-ordering (see the -X option).
u-law, mu-law
North American telephony standard for logarithmic encoding to 8 bits per sample. A.k.a. u-law. It has a precision
equivalent to roughly 14-bit PCM and is sometimes encoded with reversed bit-ordering (see the -X option).
oki-adpcm
OKI (a.k.a. VOX, Dialogic, or Intel) 4-bit ADPCM; it has a precision equivalent to roughly 12-bit PCM. ADPCM is a
form of audio compression that has a good compromise between audio quality and encoding/decoding speed.
ima-adpcm
IMA (a.k.a. DVI) 4-bit ADPCM; it has a precision equivalent to roughly 13-bit PCM.
ms-adpcm
Microsoft 4-bit ADPCM; it has a precision equivalent to roughly 14-bit PCM.
gsm-full-rate
GSM is currently used for the vast majority of the world's digital wireless telephone calls. It utilises several
audio formats with different bit-rates and associated speech quality. SoX has support for GSM's original 13kbps
`Full Rate' audio format. It is usually CPU-intensive to work with GSM audio.
Encoding names can be abbreviated where this would not be ambiguous; e.g. `unsigned-integer' can be given as `un', but not
`u' (ambiguous with `u-law').
For an input file, the most common use for this option is to inform SoX of the encoding of a `raw' (`headerless') audio file
(see the examples in -b and -c above).
For an output file, this option can be used (perhaps along with -b) to set the output encoding type For example
sox input.cdda -e float output1.wav
sox input.cdda -b 64 -e float output2.wav
convert raw CD digital audio (16-bit, signed-integer) to floating-point `WAV' files (single & double precision respec-
tively).
By default (i.e. if this option is not given), the output encoding type will (providing it is supported by the output file
type) be set to the input encoding type.
-s/-u/-f/-A/-U/-o/-i/-a/-g
Deprecated aliases for specifying the encoding types signed-integer, unsigned-integer, floating-point, a-law, mu-law, oki-
adpcm, ima-adpcm, ms-adpcm, gsm-full-rate respectively (see -e above).
--no-glob
Specifies that filename `globbing' (wild-card matching) should not be performed by SoX on the following filename. For exam-
ple, if the current directory contains the two files `five-seconds.wav' and `five*.wav', then
play --no-glob "five*.wav"
can be used to play just the single file `five*.wav'.
-r, --rate RATE[k]
Gives the sample rate in Hz (or kHz if appended with `k') of the file.
For an input file, the most common use for this option is to inform SoX of the sample rate of a `raw' (`headerless') audio
file (see the examples in -b and -c above). Occasionally it may be useful to use this option with a `headered' file, in
order to override the (presumably incorrect) value in the header - note that this is only supported with certain file types.
For example, if audio was recorded with a sample-rate of say 48k from a source that played back a little, say 1.5%, too
slowly, then
sox -r 48720 input.wav output.wav
effectively corrects the speed by changing only the file header (but see also the speed effect for the more usual solution
to this problem).
For an output file, this option provides a shorthand for specifying that the rate effect should be invoked in order to
change (if necessary) the sample rate of the audio signal to the given value. For example, the following two commands are
equivalent:
sox input.wav -r 48k output.wav bass -b 24
sox input.wav output.wav bass -b 24 rate 48k
though the second form is more flexible as it allows rate options to be given, and allows the effects to be ordered arbi-
trarily.
-t, --type FILE-TYPE
Gives the type of the audio file. For both input and output files, this option is commonly used to inform SoX of the type a
`headerless' audio file (e.g. raw, mp3) where the actual/desired type cannot be determined from a given filename extension.
For example:
another-command | sox -t mp3 - output.wav
sox input.wav -t raw output.bin
It can also be used to override the type implied by an input filename extension, but if overriding with a type that has a
header, SoX will exit with an appropriate error message if such a header is not actually present.
See soxformat(7) for a list of supported file types.
-L, --endian little
-B, --endian big
-x, --endian swap
These options specify whether the byte-order of the audio data is, respectively, `little endian', `big endian', or the oppo-
site to that of the system on which SoX is being used. Endianness applies only to data encoded as floating-point, or as
signed or unsigned integers of 16 or more bits. It is often necessary to specify one of these options for headerless files,
and sometimes necessary for (otherwise) self-describing files. A given endian-setting option may be ignored for an input
file whose header contains a specific endianness identifier, or for an output file that is actually an audio device.
N.B. Unlike other format characteristics, the endianness (byte, nibble, & bit ordering) of the input file is not automati-
cally used for the output file; so, for example, when the following is run on a little-endian system:
sox -B audio.s16 trimmed.s16 trim 2
trimmed.s16 will be created as little-endian;
sox -B audio.s16 -B trimmed.s16 trim 2
must be used to preserve big-endianness in the output file.
The -V option can be used to check the selected orderings.
-N, --reverse-nibbles
Specifies that the nibble ordering (i.e. the 2 halves of a byte) of the samples should be reversed; sometimes useful with
ADPCM-based formats.
N.B. See also N.B. in section on -x above.
-X, --reverse-bits
Specifies that the bit ordering of the samples should be reversed; sometimes useful with a few (mostly headerless) formats.
N.B. See also N.B. in section on -x above.
Come dice il nome, uno stream "raw" contiene unicamente i dati "grezzi" e niente altro: non ci sono headers, quindi mancano le informazioni necessarie ad identificare il "significato" dei dati inviati (PCM piuttosto che altro, numero di canali, sample rate, bith depth, "endianess", ecc).
Per quello quando passi uno stream "raw" a sox devi necessariamente aggiungere anche le opzioni (-r, -b, -c, -e, ecc) per "spiegargli" come deve interpretare i dati che gli arrivano (mentre se usi wav o flac quelle informazioni sono già contenute nel file stesso e non devi aggiungere altro).
Non conosco il protocollo utilizzato da LMS/squeezelite ma, a meno che non sia previsto un "canale" attraverso il quale LMS comunica al renderer tali informazioni, per ovvi motivi semplicemente non puoi inviare uno stream "raw".
Per altro, non capisco perché mai tu voglia farlo: mentre ci sono ovvie differenze(*) tra l'inviare uno stream "compresso" (e.g. flac) piuttosto che uno non compresso (e.g. wav), non vedo quale possa essere la differenza tra l'inviare uno stream non compresso dotato di headers (wav) rispetto ad uno che non ne ha (raw), visto che la quantità di dati "extra" contenuti negli headers è del tutto insignificante; all'atto pratico non c'è nessuna differenza tra i due casi.
(*) uno stream compresso richiede una decodifica da parte del renderer, che comporta lavoro per la sua CPU, mentre per contro il secondo occupa molta più banda sul canale di rete, il che (tra l'altro) comporta a sua volta un certo carico "extra" del sistema del renderer per la gestione del maggiore flusso di dati di rete. In definitiva nei due casi (wav vs. flac) oltre ad un diverso carico di rete si ha anche un diverso "profilo" del carico di lavoro sul renderer. Senza dubbio si hanno quindi due situazioni diverse e non è privo di senso pensare di confrontarle (a priori è difficile dire quale delle due opzioni possa eventualmente essere preferibile ai nostri fini, ovviamente ammesso e non concesso che ci possa essere una qualche differenza ai fini pratici).
ovviamente... visto che fa esattamente la stessa cosa. ;-)
IMO è decisamente preferibile fare così, dato che in questo modo il processo è più semplice e soprattutto molto più "robusto" e flessibile:
infatti, passando direttamente a sox il flac di partenza, sox è in grado di riconoscere e gestire il "formato" (risoluzione, bit rate, ecc) dei dati in ingresso.
Al contrario, facendo una decodifica preventiva da flac a "raw" (con flac) per poi passare questo a sox ci si vincola ad un solo ed unico formato ben preciso: quello specificato nella riga di comando di sox!
Il che significa che, in tal caso (ammesso e non concesso che possa farlo) dovrebbe essere LMS a riconoscere e gestire files di ingresso con "formati" diversi da quello specificato (e.g. 16/44 piuttosto che 24/96) ed a gestire la cosa per mezzo di comandi diversi aggiunti nella configurazione di LMS (ne servirebbe uno per ogni possibile formato dei files in ingresso!)
ditto: non ha alcun senso. WAV è PCM. L'unica differenza è che oltre ai dati PCM un file wav contiene anche una manciata di bytes di "header" che spiegano al software che dovrà gestirli cosa sono e come vanno interpretati i dati PCM che seguono.
Non solo. Durante il debugging è opportuno aggiungere l'opzione "-V" per capire esattamente cosa accade:
conviene quindi utilizzare "-V3".codice:
-V[level]
Set verbosity. This is particularly useful for seeing how any automatic effects have been invoked by SoX.
SoX displays messages on the console (stderr) according to the following verbosity levels:
0 No messages are shown at all; use the exit status to determine if an error has occurred.
1 Only error messages are shown. These are generated if SoX cannot complete the requested commands.
2 Warning messages are also shown. These are generated if SoX can complete the requested commands, but not exactly
according to the requested command parameters, or if clipping occurs.
3 Descriptions of SoX's processing phases are also shown. Useful for seeing exactly how SoX is processing your audio.
4 and above
Messages to help with debugging SoX are also shown.
By default, the verbosity level is set to 2 (shows errors and warnings). Each occurrence of the -V option increases the ver-
bosity level by 1. Alternatively, the verbosity level can be set to an absolute number by specifying it immediately after
the -V, e.g. -V0 sets it to 0.
io faccio come te, salvo creare una sottocartella "extras", dove salvo tutto il resto. Finora la cosa non mi ha mai creato problemi di sorta. Però va detto che NON uso LMS/squeezelite ma MPD (o a volte altri player più "convenzionali"), per cui non garantisco. Prova...