MI autoquoto perchè c'era un errore: perchè funzioni come si deve, per esempio in foobar, occorre che il file di output abbia l'estensione .wav e non .flac come avevo erroneamente scritto. Abbiate pietà.
Printable View
Questo funziona...in LMS su windows...
https://up.nexthardware.com/user_ima...medium/wav.jpg
questo in voyage:
codice:root@voyage:~# cat /proc/asound/card1/pcm0p/sub0/hw_params
access: MMAP_INTERLEAVED
format: S32_LE
subformat: STD
channels: 2
rate: 192000 (192000/1)
period_size: 6400
buffer_size: 19200
Perfetto, probabilmente funziona anche il precedente se lo rinomini, l'errore è stato mio, scusa.
Quindi il problema si restringe a LMS su Win32. Tu non riesci ad attivare il local plugin su windows (dove hai il server), così da provarlo anche li?
Comunque a rigor di logica dovrebbe andare anche in LMS uscendo in WAV.
Questo per i flac per adesso... (devo studiarmi ancora tutte le pagine dietro...e tutte le precisazioni di Paolo anche)
Per gli mp3 come potrebbe essere?codice:flc flc * *
# IRFT:{START=--skip=%t}U:{END=--until=%v}
[flac] -dcs $START$ $END$ -- $FILE$ | [sox] -q -t wav - -t flac -e signed -C 0 -b 32 - rate -v -L -a -b 90.7 384000 dither -S
Scusa, non lo ricordavo e non lo avevo capito. Meglio così, quindi il problema si restringe a Win32.
ps. il ma come? è una protesta o una richiesta di come metterlo in LMS, se il secondo, con l'ultimo comando postato da Paolo.
Vado a cena poi torno, prova intanto.
Marco se ti riferisci a questi:
codice:flc pcm * *
# IRFT:{START=--skip=%t}U:{END=--until=%v}
[sox] -V3 -t flac $FILE$ -t wav -b 24 - gain -3 rate -v 384000
Non vanno non parte il play:codice:flc wav * *
# IRFT:{START=--skip=%t}U:{END=--until=%v}
[sox] -V3 -t flac $FILE$ -t wav -b 24 - gain -3 rate -v 384000
codice:15-04-02 22:55:59.7146] Slim::Player::TranscodingHelper::enabledFormat (223) Testing flc-flc-*-* vs flc-flc-*-*
[15-04-02 22:55:59.7147] Slim::Player::TranscodingHelper::enabledFormat (227) ** flc-flc-*-* Disabled **
[15-04-02 22:55:59.7147] Slim::Player::TranscodingHelper::checkBin (242) Checking formats for: flc-aif-squeezelite-50:e5:49:cc:b4:29
[15-04-02 22:55:59.7148] Slim::Player::TranscodingHelper::checkBin (242) Checking formats for: flc-aif-*-50:e5:49:cc:b4:29
[15-04-02 22:55:59.7149] Slim::Player::TranscodingHelper::checkBin (242) Checking formats for: flc-aif-squeezelite-*
[15-04-02 22:55:59.7150] Slim::Player::TranscodingHelper::checkBin (242) Checking formats for: flc-aif-*-*
[15-04-02 22:55:59.7151] Slim::Player::TranscodingHelper::enabledFormat (209) Checking to see if flc-aif-*-* is enabled
[15-04-02 22:55:59.7152] Slim::Player::TranscodingHelper::enabledFormat (217) There are 1 disabled formats...
[15-04-02 22:55:59.7152] Slim::Player::TranscodingHelper::enabledFormat (223) Testing flc-flc-*-* vs flc-aif-*-*
[15-04-02 22:55:59.7153] Slim::Player::TranscodingHelper::checkBin (250) enabled
[15-04-02 22:55:59.7154] Slim::Player::TranscodingHelper::checkBin (252) Found command: # FT:{START=--skip=%t}U:{END=--until=%v}
[15-04-02 22:55:59.7155] Slim::Player::TranscodingHelper::getConvertCommand2 (382) Rejecting # FT:{START=--skip=%t}U:{END=--until=%v} because required capability T not supported:
[15-04-02 22:55:59.7156] Slim::Player::TranscodingHelper::checkBin (242) Checking formats for: flc-pcm-squeezelite-50:e5:49:cc:b4:29
[15-04-02 22:55:59.7157] Slim::Player::TranscodingHelper::checkBin (242) Checking formats for: flc-pcm-*-50:e5:49:cc:b4:29
[15-04-02 22:55:59.7157] Slim::Player::TranscodingHelper::checkBin (242) Checking formats for: flc-pcm-squeezelite-*
[15-04-02 22:55:59.7158] Slim::Player::TranscodingHelper::checkBin (242) Checking formats for: flc-pcm-*-*
[15-04-02 22:55:59.7159] Slim::Player::TranscodingHelper::enabledFormat (209) Checking to see if flc-pcm-*-* is enabled
[15-04-02 22:55:59.7160] Slim::Player::TranscodingHelper::enabledFormat (217) There are 1 disabled formats...
[15-04-02 22:55:59.7161] Slim::Player::TranscodingHelper::enabledFormat (223) Testing flc-flc-*-* vs flc-pcm-*-*
[15-04-02 22:55:59.7161] Slim::Player::TranscodingHelper::checkBin (250) enabled
[15-04-02 22:55:59.7162] Slim::Player::TranscodingHelper::checkBin (252) Found command: [sox] -V3 -t flac $FILE$ -t wav -b 24 - gain -3 rate -v 384000
[15-04-02 22:55:59.7163] Slim::Player::TranscodingHelper::getConvertCommand2 (446) Matched: flc->pcm via: [sox] -V3 -t flac $FILE$ -t wav -b 24 - gain -3 rate -v 384000
[15-04-02 22:56:00.0009] Slim::Player::StreamingController::_eventAction (271) 50:e5:49:cc:b4:29: StatusHeartbeat in STOPPED-IDLE -> Slim::Player::StreamingController::_NoOp
[15-04-02 22:56:05.0015] Slim::Player::StreamingController::_eventAction (271) 50:e5:49:cc:b4:29: StatusHeartbeat in STOPPED-IDLE -> Slim::Player::StreamingController::_NoOp
[15-04-02 22:56:10.0014] Slim::Player::StreamingController::_eventAction (271) 50:e5:49:cc:b4:29: StatusHeartbeat in STOPPED-IDLE -> Slim::Player::StreamingController::_NoOp
Grazie per tutto l'impegno che ci stai mettendo!!! Ho copiato quanto sopra nel file custom-convert.conf
La musica esce ..ma addirittura in pcm e tutto quello che mi dici di selezionare in tipi di flac mi risulta impossibile. Provato più volte, ho anche riavviato la macchina!
https://up.nexthardware.com/user_ima...e 22.59.31.png
https://up.nexthardware.com/user_ima...e 22.59.43.png
...mi sto scoraggiando
Dac prova con questo:
Quote:
flc flc * *
# IRFT:{START=--skip=%t}U:{END=--until=%v}
[flac] -dcs $START$ $END$ -- $FILE$ | [sox] -q -t wav - -t flac -e signed -C 0 -b 32 - rate -v -L -a -b 90.7 384000 dither -S
Allora il comando qui sopra va bene per uscire in Flac, se - come mi pare di aver capito - vuoi provare ad uscire in pcm, il comando da dare è questo per evitare i glitch e poter cercare velocemente all'interno del file,
oppure questo per usare solo SOX come consigliava Paolo, ma non so se funziona IRTF... bisogna provare:codice:flc pcm * *
# IRFT:{START=--skip=%t}U:{END=--until=%v}
[flac] -dcs $START$ $END$ -- $FILE$ | [sox] - V3 -t wav - -t wav -b 24 - gain -3 rate -v 192000
codice:flc pcm * *
# IRFT:{START=--skip=%t}U:{END=--until=%v}
[sox] - V3 -t flac $FILE$ -t wav -b 24 - gain -3 rate -v 192000
per gli MP3... secondo me non devi fare upsampling, vero?:triste VAi tranquillo con quello che c'è già.
Marco scusa hai letto tutti i messaggi?
Li ho provati anche senza IR
Allora, capisco la fatica, ma non riesco fisicamente a seguirvi se non procediamo con ordine.
direi che da quello che ho letto:
1. Con l'upsampling di FLAC, WAV ed AIFF uscendo in FLAC secondo quanto al post #460 dovrebbe funzionare per tutti, se non funziona è molto probabile sia un problema di struttura dei file .conf, vi consiglio di ripartire da una situazione pulita.
2. Con i files WAV funziona su tutte le piattaforme tranne win32 (la mia...).
C'è qualcosa che mi sfugge rispetto a questa situazione?
Vediamo di fare un passo per volta nella stessa direzione.
Butta tutto e metti questo nel convert.conf
Poi mettiamo a posto anche i files.codice:# $Id$
#
# Configuration file for transcoding
#
# 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.
#
# On Debian, you can also create this file in # /etc/slimserver/custom-convert.conf
#
# first line is the source format, destination format and the destination device. Asterisk matches all
# second line is the command line for the conversion
#
# First line format:
#
#
#: Source music format: mp3, mp4, ogg, wav, etc...
#: Destination music format: Generally mp3, or
# possibly aif or others depending on the types
# your player supports. SliMP3 supports only
# MP3. Squeezebox currently supports mp3, aif
# and pcm. Squeezebox2 adds support for Flac and WMA.
#: currently slimp3, squeezebox, or *.
# The * is a wildcard that matches all device
# types.
#: The ID of the destination device. The
# ID of the destination device is the MAC address
# of a SliMP3 or Squeezebox device, or the IP of
# an HTTP client (such as your computer running
# WinAmp). The '*' wildcard matches all hosts
#
# either or both ofand
#may be the '*' wildcard
#
#
# $FILE$ is the absolute path to the local source file
# $URL$ is the full URL for remote streams
# [bin] is the executable binary for the encoder or decoder
# - is a special command line that implies passthrough of data
#
# Capabilities
# I - can transcode from stdin
# F - can transcode from a named file
# R - can transcode from a remote URL (URL types unspecified)
#
# O - can seek to a byte offset in the source stream (not yet implemented)
# T - can seek to a start time offset
# U - can seek to start time offset and finish at end time offset
#
# D - can downsample
# B - can limit bitrate
#
# default is "IF"
#
# Substitution strings for variable capabilities
# %f, $FILE$ - file path (local files)
# %F, $URL$ - full URL (remote streams)
#
# %o - stream start byte offset
#
# %S - stream samples start offset (not yet implemented)
# %s - stream seconds start offset
# %t - stream time (m:ss) start offset
# %U - stream samples end offset (not yet implemented)
# %u - stream seconds end offset
# %v - stream time (m:ss) end offset
# %w - stream seconds duration
#
# %b - limit bitrate: b/s
# %B - limit bitrate: kb/s
# %d - samplerate: samples/s
# %D - samplerate: ksamples/s
# %C, $CHANNELS$ - channel count
# %c, $OCHANNELS$ - output channel count
# %i - clientid
# %I, $CLIENTID$ - clientid ( : or . replaced by - )
# %p - player model
# %P, $PLAYER$ - player model ( SPACE or QOUTE replaced by _ )
# %n - player name
# %N, $NAME$ - player name ( SPACE or QOUTE replaced by _ )
# %q, $QUALITY$ - quality
# %Q, - quality ( fractal notation: if = '0' return '01' )
# ${FILENAME}$ - contents of {FILENAME} (may contain other $*$ substitutions )
# specific combinations match before wildcards
mp4 mp3 * *
# FB:{BITRATE=--abr %B}T:{START=-j %s}U:{END=-e %u}
[faad] -q -w -f 1 $START$ $END$ $FILE$ | [lame] --silent -q $QUALITY$ $BITRATE$ - -
aac mp3 * *
# IFB:{BITRATE=--abr %B}
[faad] -q -w -f 1 $FILE$ | [lame] --silent -q $QUALITY$ $BITRATE$ - -
sls mp3 * *
# FB:{BITRATE=--abr %B}D:{RESAMPLE=--resample %D}
[sls] $FILE$ - -s | [lame] --silent -q $QUALITY$ $RESAMPLE$ $BITRATE$ - -
alc mp3 * *
# FB:{BITRATE=--abr %B}D:{RESAMPLE=--resample %D}T:{START=-j %s}U:{END=-e %u}
[faad] -q -w -f 1 $START$ $END$ $FILE$ | [lame] --silent -q $QUALITY$ $RESAMPLE$ $BITRATE$ - -
ogg mp3 * *
# IFB:{BITRATE=--abr %B}D:{RESAMPLE=--resample %D}
[sox] -q -t ogg $FILE$ -t wav - | [lame] --silent -q $QUALITY$ $RESAMPLE$ $BITRATE$ - -
wav mp3 * *
# IFB:{BITRATE=--abr %B}D:{RESAMPLE=--resample %D}
[lame] --silent -q $QUALITY$ $RESAMPLE$ $BITRATE$ $FILE$ -
aif mp3 * *
# IFB:{BITRATE=--abr %B}D:{RESAMPLE=--resample %D}
[lame] --silent -q $QUALITY$ $RESAMPLE$ $BITRATE$ $FILE$ -
flc mp3 * *
# FB:{BITRATE=--abr %B}T:{START=--skip=%t}U:{END=--until=%v}D:{RESAMPLE=--resample %D}
[flac] -dcs $START$ $END$ -- $FILE$ | [lame] --silent -q $QUALITY$ $RESAMPLE$ $BITRATE$ - -
wma mp3 * *
# F:{PATH=%f}R:{PATH=%F}B:{BITRATE=--abr %B}D:{RESAMPLE=--resample %D}
[wmadec] -w $PATH$ | [lame] --silent -q $QUALITY$ $RESAMPLE$ $BITRATE$ - -
wmal mp3 * *
# F:{PATH=%f}R:{PATH=%F}B:{BITRATE=--abr %B}D:{RESAMPLE=--resample %D}
[wmadec] -w $PATH$ | [lame] --silent -q $QUALITY$ $RESAMPLE$ $BITRATE$ - -
wmap mp3 * *
# F:{PATH=%f}R:{PATH=%F}B:{BITRATE=--abr %B}D:{RESAMPLE=--resample %D}
[wmadec] -w $PATH$ | [lame] --silent -q $QUALITY$ $RESAMPLE$ $BITRATE$ - -
mpc mp3 * *
# IRB:{BITRATE=--abr %B}D:{RESAMPLE=--resample %D}
[mppdec] --silent --prev --gain 3 - - | [lame] --silent -q $QUALITY$ $RESAMPLE$ $BITRATE$ - -
ape mp3 * *
# FB:{BITRATE=--abr %B}D:{RESAMPLE=--resample %D}
[mac] $FILE$ - -d | [lame] --silent -q $QUALITY$ $RESAMPLE$ $BITRATE$ - -
wvp mp3 * *
# FB:{BITRATE=--abr %B}T:{START=--skip=%t}U:{END=--until=%v}D:{RESAMPLE=--resample %D}
[wvunpack] $FILE$ -wq $START$ $END$ -o - | [lame] --silent -q $QUALITY$ $RESAMPLE$ $BITRATE$ - -
mp3 mp3 * *
-
# Non-mp3 starts here
aif aif * *
-
wav pcm * *
-
flc pcm * *
# FT:{START=--skip=%t}U:{END=--until=%v}
[flac] -dcs --force-raw-format --endian=little --sign=signed $START$ $END$ -- $FILE$
flc aif * *
# FT:{START=--skip=%t}U:{END=--until=%v}
[flac] -dcs --force-raw-format --endian=little --sign=signed $START$ $END$ -- $FILE$
ogf ogf * *
-
ogf flc * *
[flac] --ogg -dcs -- $FILE$ | [flac] -cs --ignore-chunk-sizes --totally-silent --compression-level-0 -
ogg ogg * *
-
ogg aif * *
[sox] -q -t ogg $FILE$ -t raw -r 44100 -c 2 -2 -s $-x$ -
ogg pcm * *
[sox] -q -t ogg $FILE$ -t raw -r 44100 -c 2 -2 -s -
wma pcm * *
# F:{PATH=%f}R:{PATH=%F}
[wmadec] -r 44100 -b 16 -n 2 $PATH$
wmal pcm * *
# F:{PATH=%f}R:{PATH=%F}
[wmadec] -r 44100 -b 16 -n 2 $PATH$
wmap pcm * *
# F:{PATH=%f}R:{PATH=%F}
[wmadec] -r 44100 -b 16 -n 2 $PATH$
mpc pcm * *
# IR
[mppdec] --raw-le --silent --prev --gain 2 - -
ape pcm * *
# F
[mac] $FILE$ - -d
mpc aif * *
# IR
[mppdec] --raw-be --silent --prev --gain 2 - -
alc pcm * *
# FT:{START=-j %s}U:{END=-e %u}
[faad] -q -w -f 2 $START$ $END$ $FILE$
wvp pcm * *
# FT:{START=--skip=%t}U:{END=--until=%v}
[wvunpack] $FILE$ -rq $START$ $END$ -o -
mp4 pcm * *
# FT:{START=-j %s}U:{END=-e %u}
[faad] -q -w -f 2 -b 1 $START$ $END$ $FILE$
aac pcm * *
# IF
[faad] -q -w -f 2 -b 1 $FILE$
sls pcm * *
# F
[sls] $FILE$ - -r -s
wma wma * *
-
wmal wmal * *
-
wmap wmap * *
-
# FLAC output starts here
#mp3 flc * *
# [lame] --mp3input --decode -t --silent $FILE$ - | [flac] -cs --totally-silent --compression-level-0 -
flc flc * *
# FT:{START=--skip=%t}U:{END=--until=%v}
[flac] -dcs $START$ $END$ -- $FILE$ | [sox] -q -t wav - -t flac -e signed -C 0 -b 24 - rate -v -M -a -b 90.7 192000 dither -S
aif flc * *
# FT:{START=--skip=%t}U:{END=--until=%v}
[flac] -cs --totally-silent --compression-level-0 $START$ $END$ -- $FILE$ | [sox] -q -t flac - -t flac -e signed -C 0 -b 24 - rate -v -M -a -b 90.7 192000 dither -S
wav flc * *
# FT:{START=--skip=%t}U:{END=--until=%v}
[flac] -cs --totally-silent --compression-level-0 $START$ $END$ -- $FILE$ | [sox] -q -t flac - -t flac -e signed -C 0 -b 24 - rate -v -M -a -b 90.7 192000 dither -S
ogg flc * *
# IFRD:{RESAMPLE=-r %d}
[sox] -t ogg $FILE$ -t flac -C 0 $RESAMPLE$ -
wma flc * *
# F:{PATH=%f}R:{PATH=%F}
[wmadec] -w $PATH$ | [flac] -cs --totally-silent --compression-level-0 -
wmal flc * *
# F:{PATH=%f}R:{PATH=%F}
[wmadec] -w $PATH$ | [flac] -cs --totally-silent --compression-level-0 -
[wmadec] -w $PATH$ | [flac] -cs --totally-silent --compression-level-0 -
wmap flc * *
# F:{PATH=%f}R:{PATH=%F}
mpc flc * *
# IR
[mppdec] --silent --prev --gain 2 - - | [flac] -cs --totally-silent --compression-level-0 -
ape flc * *
# F
[mac] $FILE$ - -d | [flac] -cs --totally-silent --compression-level-0 -
mp4 flc * *
# FT:{START=-j %s}U:{END=-e %u}
[faad] -q -w -f 1 $START$ $END$ $FILE$ | [flac] -cs --totally-silent --compression-level-0 --ignore-chunk-sizes -
aac flc * *
# IF
[faad] -q -w -f 1 $FILE$ | [flac] -cs --totally-silent --compression-level-0 --ignore-chunk-sizes -
sls flc * *
# FD:{RESAMPLE=-r %d}
[sls] $FILE$ - -s | [sox] -q -t wav - -t flac -C 0 $RESAMPLE$ -
alc flc * *
# FT:{START=-j %s}U:{END=-e %u}D:{RESAMPLE=-r %d}
[faad] -q -w -f 1 $START$ $END$ $FILE$ | [sox] -q -t wav - -t flac -C 0 $RESAMPLE$ -
wvp flc * *
# FT:{START=--skip=%t}U:{END=--until=%v}D:{RESAMPLE=-r %d}
[wvunpack] $FILE$ -wq $START$ $END$ -o - | [sox] -q -t wav - -t flac -C 0 $RESAMPLE$ -
# AAC & ALAC output start here
aac aac * *
-
mp4 aac * *
-
sls aac * *
-
alc alc * *
-
# special case for smart bitrates on mp3 input
mp3 mp3 transcode *
# IFB:{BITRATE=--abr %B}D:{RESAMPLE=--resample %D}
[lame] --silent -q $QUALITY$ $BITRATE$ $RESAMPLE$ --mp3input $FILE$ -
flc flc transcode *
# FT:{START=--skip=%t}U:{END=--until=%v}D:{RESAMPLE=-r %d}
[flac] -dcs $START$ $END$ -- $FILE$ | [sox] -q -t wav - -t flac -C 0 $RESAMPLE$ -
# This example transcodes MP3s to MP3s, if the target machine has the
# given MAC address. This rule will take precedence over the
# previous rule because it's more specific.
#mp3 mp3 squeezebox 00:02:dd:34:e9:62
# ./brute_filter $FILE$ -
spdr spdr * *
-
dsf dsf * *
# IFD
-
dff dff * *
# IFD
-
@Antonello da te va l'upsamplig via flac? @Giovanni?
se fai generare un file wav e gli dai estensione ".flac", è molto probabile (specie sotto windoze o mac) che le cose non funzionino... ;)
sarebbe da capire perché non è attivabile. Sarà mica che hai anche la vecchia entry "flc pcm * *" e forse LMS non gradisce che ci siano entrambe? Oppure proprio LMs/squeezelite non ne vogliono sapere di trasferire in formato WAV?!
squeezelite è in grado di accettare stream in fomato wav?
qual è il contenuto della entry nel file configurazione che gestisce i files wav?
è possibile... ma in tal caso il problema è nella configurazione / opzioni di squeezelite. Oppure è proprio un limite?
per certo no, ma è a dir poco improbabile per non dire inverosimile che passi per flac. HQP gestisce il resampling internamente, con i propri algoritmi. Non avrebbe alcun motivo per usare wav e tanto meno flac (che non può essere usato direttamente per le elaborazioni). Con ogni probabilità usa invece un proprio formato interno (verosimilmente raw PCM a 32 o addirittura 64 bit, oppure forse float/double), così come fanno praticamente tutti (sox, jack, pulse, ecc, ecc).
Sì, a questo punto mi sembra possibile che sia proprio così... per quanto appaia a dir poco strano: perché mai squeezelite può accettare (richiedere?) FLAC oppure PCM (raw), ma non un altro formato PCM (con header) come WAV o AIFF?
Comunque, se così fosse la spiegazione del problema potrebbe essere semplice:
Se trasferisci FLAC non ci sono problemi, in quanto quello è un formato ben determinato, autodescrittivo e system independent, per cui tutto funziona quali che siano i sistemi su cui girano LMS e squeezelite.
Se però al contrario usi PCM raw i problemi ci sono eccome, in quanto probabilmente da un sistema all'altro il formato raw cambia (ad es. perche cambia "l'endianess" di default, o qualsiasi altra cosa).
Quindi (se è così) da LMS su Mac a squeezelite su Mac OK, da LMS su win a SL su win OK, ma se invece MS ed SL girano su sistemi diversi non funziona.
Però continua a sembrarmi strano: sarebbe un bug grosso quanto una montagna nell'architettura stessa del sistema LMS+SL...
se usi questo comando puoi togliere quel "rate -v -b 90" in fondo, tanto non viene utilizzato in alcun modo... ;)
P.S.: per sapere "cosa c'è dentro" un file audio potete usare i comandi "file", "mediainfo", "shninfo", "soxi", ... ah, già, dimenticavo che non siete su Linux. :evil
Beh, potete comunque usare lo stesso sox:
sox --info mio_file.ext
;)
mmh, non capisco perché aggiungi "-e signed": se gli dici di uscire in FLAC, meglio evitare di forzare quel parametro e lasciare che sia lui a scegliere. Tanto l'informazione relativa è contenuta nell'header di flac.
Per il resto, mi pare che questo dovrebbe andare.
cioè dici per convertirli in wav, "upsamplarli" e poi convertirli in flac? non è che la cosa abbia molto senso... ;)
Comunque, potrebbe essere qualcosa del genere:
però IMHO per quelli è inutile darsi tanta pena, tanto vale lasciare il setup di default.codice:mp3 flc * *
[sox] -q -t mp3 - -t flac -C 0 -b 32 - rate -v -L -a -b 90.7 384000 dither -S
il primo è sbagliato, in quanto sox esce in wav mentre LSM/SL si aspettano uno stream PCM raw. Il secondo pare non venga accettato.
ehm... questo non può andare: dici a sox di uscire in WAV, mentre LMS/SL si aspettano PCM raw!
Casomai per lo stream di uscita di sox dovresti usare "-t raw" (con "-e ...", ecc).
Però... però così facendo LMS/SL non hanno alcun modo per sapere che stai facendo upsampling, né in quale formato siano i dati prodotti! Come fanno a capire come dovrebbero interpretarli?
A quanto vedo dal file di configurazione completo che hai postato, c'è il modo di "comunicare" parecchi parametri attraverso le metavariabili... quindi (almeno se non vuoi usare FLAC) probabilmente bisogna usare quelle!
stessi problemi di cui sopra... più IRFT che ovviamente non funziona. Non so (bisogna vedere) se si possa dire a sox di saltare ad un dato offset attraverso quei parametri così come fai con flac.
;) :2yeah
L'errore è stato mio, avevo lasciato il nome del file errato, Filippo non centra.
Per il resto.
Non so che dirti, sia da mac che da pc win32 attualmente riesco a gestire BENISSIMO squeezelite con upsampling via flac fino a 24/192K e lo sb+ a 44.1/16 (potrei provare 48/20, ma non so quanto ne valga la pena) via pcm.
SQueezelite dichiara dui supportare i seguenti codecs: flac,pcm,mp3,ogg,aac,wma,alac,dsd (mad,mpg for specific mp3 codec) quindi Wav e AIFF via pcm.
Secondo me il problema è in Squeezelite (che è un prodotto di terze parti, ricordiamolo sempre) e presumibilmente solo nelle versioni per windows. Per gestire WAV e AIFF (almeno in win32) usa la libreria pcm.dll, che o ha un limite suo a 44.1/16 o è stata usata male.
Il problema l'ho segnalato, ma come dicevo ho poca fiducia lo risolvano, visto che con flac funziona. Bisognerebbe aver eprove 'certe' su Linux, ma visto che è l'ambient edi riferimento, immagino sia stato abbondantemente provato.
Da un post di Filippo si capisce che il file WAV 192/24 su linux va correttament ed Alsa riporta che è effettivamente a 192K, ma il suo post successivo è quello a cui rispondi anche tu: flac -> wav via [sox] da LMS non parte nemmeno, in linea con quanto succede su win.
Comunque, visto lo 'scoramento' generale (che capisco) preferirei portare tutti al punto di riuscire a fare upsampling con lms come riesco a fare attualmente io, prima di affrontare ulteriori capitoli, anche perchè non è semplice nemmeno per me seguire tutti con prove intrecciate su sistemi diversi e se non si arriva ad un risultato concreto, capisco che ci si possa stancare e quindi virare su altre soluzioni, che sarebbe un peccato, dato che la soluzione c'è e funziona, la sto usando...
Quindi forza, arrivate al punto di fare upsampling passando da Flac, se avete problemi copiate il mio convert.conf, poi vediamo di esplorare le altre vie.
Ni, nel senso che se metti tutti i parametri necessari funziona. E' la strada che stavo tentando prima del tuo intervento (che mi ha colto a mezza via, cioè funzionava su mac ma non su pc). Il -r xxx al posto del parametro di rate serve appunto per definire il rate del file di output, non è sufficiente ma è necessario.
La strada funziona, ma i parametri sono diversi se operi su mac o su Win32, bisogna verificare in Linux e non so se cambia anche in funzione del SO del player... un labirinto nel quale mi ero completamente perso.
Stanti così le cose, a meno di un intervento di Triode/Michael a sistemarle/chiarirle, secondo me conviene accettare il imite e passare tramite flac, che ha come unico inconveniente il 'costo' maggiore di conversione in pcm lato squeezelite, ma è inevitabile.
Nota bene: chi ha provato a generare i files WAV lo sa: sono enormi e l'utilizzo di banda cresce corrispondentemente, rimane pertanto valido il mio dubbio di qualche giorno fa sui reali vantaggi di fare upsampling sul server rispetto a farlo su squeezelite, appurato sia in grado con l'hw disponibile.
mmh, non esattamente:
quindi quanto pensavo/dicevo a proposito del significato di "pcm" nel file di configurazione era del tutto sbagliato. A quanto pare, "pcm" NON significa affatto "raw pcm", ma è una specie di "meta-formato" che può essere indifferentemente wav o aif. Verosimilmente LMS lo passa "as-is" al renderer, che si preoccupa di riconoscerne il formato e decodificarlo di conseguenza.Quote:
The current version supports:
built in pcm (wav/aiff) decode plus flac, mp3, [...]
Non per caso le configurazioni di default per wav ed aif (verso pcm) usano come "comando" il "-", cioè dicono ad LMS di trasferire i dati così come sono.
...quindi alcune delle configurazioni precedentemente postate dovrebbero funzionare!!!
ecco, appunto. Come (con che configurazione) ha ottenuto tale risultato?
...quindi, in particolare, in teoria così dovrebbe funzionare:
(a parte il fatto che non ho idea di come vanga definita la variabile "%d", insomma come si possa dire ad LMS quale debba essere il target s/r).codice:flc pcm * *
# FT:{START=--skip=%t}U:{END=--until=%v}D:{RESAMPLE=%d}
[flac] -dcs $START$ $END$ -- $FILE$ | [sox] -q -t wav - -t wav -b 32 - gain -6 rate -v $RESAMPLE$
Ma dovrebbe andare anche così:
Se non funziona ci deve essere un baco da qualche parte in LMS e/o in SL.codice:flc pcm * *
# FT:{START=--skip=%t}U:{END=--until=%v}
[flac] -dcs $START$ $END$ -- $FILE$ | [sox] -q -t wav - -t wav -b 32 - gain -6 rate -v 192000
Marco io son partito dallo stimolo che mi era scattato vistando il sito sottoriportato in tema di resampling di LMS:
soundcheck's - audio@vise: Resampling - If you can't avoid it...
in quel blog avevo trovato il codice che poteva essere immesso nel custom-convert.conf dopo averlo creato. Riporto sotto una delle varianti:
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
flc flc * *
# FT:{START=--skip=%t}U:{END=--until=%v}
[flac] -dcs $START$ $END$ -- $FILE$ | [sox] -D -q -t wav - -t flac -e signed -C 0 -b 24 - rate -v -b 98 -L -a 96000
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
Insomma sono un po' irritato ....dopo un fiume di post dove mi sono letteralmente perso seguendo mille rivoli
in pratica tu hai utilizzato il codice che io, credo per primo, avevo sperimentato e se ricordi avevo pure postato.
Cioè siamo tornati a bomba ......nello stesso punto di partenza. E nel frattempo lo dico onestamente non si è capito piu' nulla.
Ma non potevamo fermarci un attimo a capire meglio perchè il tizio suggerisce proprio quel codice.
ovviamente poi immettendo quel codice nel convert.conf io ottengo lo stesso risultato che avevo sperimentato
immettendolo nel custom. Vale a dire la CPU in superlavoro...dropout e il PC ingestibile.
Nel frattempo si è capito che la strada attraverso " flc-pcm " non è percorribile per il resampling perchè LMS non lo permette.
Ma dico...era una cosa sconosciuta? E' un bug ....che diavolo è?
Purtroppo me ne torno con le pive nel sacco. Ho tutte le carte in regola per rinunciare. Peccato
@ Paolo
rettifico quello che ho detto...forse avevo qualcosa in convert.conf che inibiva sta roba quindi questo:
Esce una nuova voce come ho giá detto...attivabile (sox), il play non va!!!codice:flc wav * *
# FT:{START=--skip=%t}U:{END=--until=%v}
[sox] -V3 -t flac $FILE$ -t wav -b 24 - gain -3 rate -v 192000
Provate tutte le ultime:
in LMS é cosi:
FLAC AIFF Distattivato
FLAC Disattivato
MP3 Disattivato
PCM flac/sox
Ma il play non va in nessun degli ultimi suggeriti....:(
Questo é il flc pcm originale:
@Marcocodice:flc pcm * *
# FT:{START=--skip=%t}U:{END=--until=%v}
[flac] -dcs --force-raw-format --endian=little --sign=signed $START$ $END$ -- $FILE$
a me il resample via flac va dall´inizio di questa discussione....ma mi pare che si stava cercando un´altra soluzione (piú ottimale)...che a quanto pare é impossibile...
PS: ho seguido questa strada perché ho visto che il resample fatto con LMS/sox mi sembra un gradino sopra a quello fatto con sqeezelite/libsoxr sonicamente parlando...
quindi era interessante il confronto...
Dac, prova a mettere solo questo in custom-convert.conf e vediamo se funziona intanto il resample sox
codice:flc flc * *
# FT:{START=--skip=%t}U:{END=--until=%v}
[flac] -dcs $START$ $END$ -- $FILE$ | [sox] -D -q -t wav - -t flac -C 0 -b 24 - rate -v -b 98 -L -a 192000
Basta, dovrebbe andare se avevi già selezionato correttamente le opzioni in tipi Files, che comunque sono:
AIFF AIFF Disattivato
FLAC flac/sox
FLAC AIFF Disattivato
FLAC flac/sox
MP3 Disattivato
PCM Disattivato
WAV FLAC flac/sox
MP3 Disattivato
PCM Disattivato
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.
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.
non é vero!!! il mio wav ricampionato a 192/24....lo vede 192/24Quote:
Secondo 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 (), 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).
Ok Paolo, stasera faccio delle prove....
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)Quote:
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...