Pagina 1 di 1
MPD (Music Player Daemon)
Inviato: 11 set 2013, 17:23
da UnixMan
ricevo via PM ma rispondo in pubblico dal momento che può essere utile anche ad altri, approfittandone per creare un topic dedicato ad
MPD ed al suo setup in generale, a prescindere dallo specifico sistema/distribuzione con cui è utilizzato.
Per questioni specifiche relative a sistemi particolari, utilizzate uno degli altri
topic già esistenti in cui se ne parla (o apritene uno nuovo se nessuno di questi fa al caso vostro).
Visto che ci sono, per cominciare inserisco anche questi link, che potrebbero tornare utili:
"
Music Player Daemon Community Wiki"
"
MPD Wiki - ALSA"
"
diyAudioWiki: LINUX Audio MusicPlayerDaemon"
"
How to turn Music Player Daemon (mpd) into an audiophile music player".
"
Dynobot's Computer Audio - Installing MPD"
"
Guida Linux Voyage MPD / Music Server HiFi"
antonellocaroli ha scritto:
Subject: Con Linux sulla via del cMP²
Ciao UnixMan,
mi sono imbattuto per caso nella tua guida.
forse tu mi puoi aiutare:
ho installato sox su voyage mpd 0.9.1
e ho aggiunto nel mpd.con queste righe:
audio_output {
type "pipe"
name "upsample-sox"
format "44100:32:2"
command "sox -traw -esi -b32 -c2 -r44100 - -talsa -esi -b24 -c2 -D hw:1,0 rate 88200 2>/dev/null"
mmap_emulation "true"
fragment_size "4096"
}
e funziona...
mi chiedo se c´ una stringa per un resemple unica per qualsiasi frequenza in entrata...
mi sembra che quella di sopra sia sil per file a 44100....
io vorrei un resemple unico al di la del file originale...
è possibile?
se si quale sarebbe il comando giusto?
Annoso problema. Per ovvi motivi, SOX (così come qualsiasi altro software) non può riconoscere automaticamente le caratteristiche di uno stream audio in ingresso se questo è costituito dai soli dati "raw", cioè "dati grezzi" senza alcun "header" (preambolo) che contenga le informazioni su formato, codifica, SR, ecc.
Purtroppo, (AFAIK) l'output su pipe di MPD è molto limitato e poco flessibile e non prevede ne la possibilità di fare uscire stream in formato diverso (ad es. wav o flac, che avendo un header che contiene le informazioni necessarie permetterebbero a sox di riconoscere automaticamente il formato dei dati) ne quella di fornire tali informazioni "esternamente" per mezzo di variabili che possano essere passate come parametri a sox (o altri programmi) come può fare ad es. ALSA.
Una soluzione possibile in un futuro speriamo prossimo sarà l'adozione di "
libsoxr" (vedi anche
qui e
qui) tra i plugin di ALSA e/o di MPD:
http://www.computeraudiophile.com/f10-m ... ndex3.html
mentre, se non vado errato, le soluzioni più facilmente implementabili al momento sono:
1) rinunciare a sox ed utilizzare il resampling interno di MPD (che utilizza la libreria
libsamplerate, AKA "Secret Rabbit Code") il quale, opportunamente configurato per la max qualità, pur essendo più "pesante" di sox, offre comunque risultati eccellenti (secondo alcuni, dal punto di vista soggettivo anche migliori);
2) utilizzare sox passando attraverso ALSA, ad es. come descritto
in questo mio vecchio post su diyAudio. In pratica crei un nuovo device (logico) ALSA (che fa resampling con sox attraverso una pipe) e dici ad MPD di usare quello mandandogli lo stream così com'è.
Re: MPD (Music Player Daemon)
Inviato: 11 set 2013, 17:27
da UnixMan
Altra possibile alternativa (che però non ho provato, per cui non posso garantire che sia possibile/funzioni correttamente) potrebbe essere quella di utilizzare come uscita di MPD il plugin "
recorder" anziché quello "pipe", utilizzando come encoder "wave" (oppure flac, o qualsiasi altro formato lossless dotato di header) e come file di uscita una "
named pipe" (AKA FIFO), che fai leggere ad un secondo processo indipendente in background (sox).
Qualcosa del genere:
Codice: Seleziona tutto
#/bin/sh
#
# sox-fifo-player.sh
# -----------------------
# Play sound stream via FIFO using SOX (with resampling)
#
# Configuration:
MPD_FIFO=/tmp/MPD_out_FIFO # MPD must output to this file (named pipe)
export AUDIODEV="hw:0" # sox output device (for sox direct play)
# check/create fifo
if [ ! -e $MPD_FIFO ]; then
mkfifo --mode=0666 $MPD_FIFO
fi
if [ ! -p $MPD_FIFO ]; then
echo -e "\nFatal ERROR: \"$MPD_FIFO\" is not a FIFO!"
exit 1
fi
while true; do
sox -V3 "$MPD_FIFO" -t alsa -b32 gain -6 rate -vMa 192000 dither -s
sleep 0.1
done
# N.B.: change sox verbosity, gain, rate & dither options as you please.
questo script crea la named pipe e mette sox "in ascolto" su di essa (rilanciandolo ogni volta che esce). Deve essere avviato (o quanto meno la named pipe deve essere creata altrimenti) PRIMA di eseguire MPD. La configurazione di MPD dovrebbe essere qualcosa del genere:
Codice: Seleziona tutto
audio_output {
name "upsample-fifo"
type "recorder"
path "/tmp/MPD_out_FIFO"
encoder "wave"
format "*:*:*"
}
Non so se funziona, ma tentar non nuoce...
edit: no, questa non funziona: sox non riesce a leggere correttamente dal FIFO.

Re: MPD (Music Player Daemon)
Inviato: 12 set 2013, 20:47
da antonellocaroli
Unix grazie per la risposta!
ma ho notato una cosa lasciando il comando cosi
command "sox -traw -esi -b32 -c2 -r44100 - -talsa -esi -b24 -c2 -D hw:1,0 rate 192000 2>/dev/null"
qualsia file mando in mpd (44110 o 96000) mi esce in upsampling a 192000
riproduco file a 96000
il risulatato di "cat /proc/asound/card0/pcm0p/sub0/hw_params"
format S32_LE
rate 96000 (192000/1)
Che mi dici?
non sono uno esperto di linux anzi ne so veramente poco...
Re: MPD (Music Player Daemon)
Inviato: 13 set 2013, 07:33
da antonellocaroli
UnixMan ha scritto:1) rinunciare a sox ed utilizzare il resampling interno di MPD (che utilizza la libreria
libsamplerate, AKA "Secret Rabbit Code") il quale, opportunamente configurato per la max qualità, pur essendo più "pesante" di sox, offre comunque risultati eccellenti (secondo alcuni, dal punto di vista soggettivo anche migliori);
Come?
Scusate il post doppio di prima....

Re: MPD (Music Player Daemon)
Inviato: 13 set 2013, 12:52
da UnixMan
antonellocaroli ha scritto:UnixMan ha scritto:1) rinunciare a sox ed utilizzare il resampling interno di MPD (che utilizza la libreria
libsamplerate, AKA "Secret Rabbit Code")
Come?
MPD lo fa automaticamente quando, nella definizione di una uscita audio, attraverso l'opzione "
format" gli dici di utilizzare un ben determinato sample-rate. Il significato di quella opzione è "
questa uscita supporta (solo) questo formato" (o "
questi formati", se l'opzione è scritta in modo da indicarne più di uno).
Di conseguenza, MPD invia i dati a quella uscita
sempre e solo nel formato/i specificato/i; se i dati in ingresso hanno caratteristiche diverse, MPD li converte internamente per adattarli al formato richiesto (e non potrebbe fare altrimenti: per quanto ne sa MPD, quella uscita non può accettare formati diversi da quello/i).
Questo risponde implicitamente anche alla tua altra domanda. Con la configurazione di uscita che mi hai detto di aver definito:
audio_output {
type "pipe"
name "upsample-sox"
format "44100:32:2"
command "sox -traw -esi -b32 -c2 -r44100 - -talsa -esi -b24 -c2 -D hw:1,0 rate 192000 2>/dev/null"
mmap_emulation "true"
fragment_size "4096"
}
hai detto ad MPD che il tuo "dispositivo di uscita" supporta
esclusivamente stream con 2 canali, campioni (AKA samples, word) di 32 bit e sample-rate di 44.1KHz (questo è il significato di "44100:32:2"). Quindi, qualsiasi cosa tu mandi in play verso quella uscita, MPD si assicura che lo stream abbia sempre il formato richiesto (44100:32:2), effettuando le dovute conversioni quando il formato di ingresso è diverso da questo.
Ciò fatto, il tuo "dispositivo di uscita" (di MPD) è dato dal processo di sox. Il quale riceve in ingresso lo stream in formato "44100:32:2" prodotto da MPD (ed assume che sia proprio in tale formato: "-b32 -c2 -r44100"), lo ricampiona a 192KHz ("rate 192000") e, dopo averlo convertito ad un formato "192000:24:2" ("-b24 -c2"), lo manda in uscita all'ingresso del device ALSA "hw:0,1" che, infine, provvede ad inviarlo al corrispondente ingresso del dispositivo hardware (lo stream audio segue il percorso: file->MPD->SOX->ALSA->hardware audio).
Va da se che, quindi, se invii ad una uscita definita in quel modo un file 24/96 (o 24/48, ecc) questo viene prima convertito a 32/44.1 (downsampling) da MPD e poi riconvertito a 24/192 da sox (upsampling). Penso sia superfluo aggiungere che questo processo comporta perdita di informazioni e di qualità per qualsiasi file in ingresso con S/R>44.1KHz.
Per questo la soluzione suggerita per utilizzare sox (attraverso ALSA) per stream di ingresso con sample-rate qualsiasi prevede di definire una uscita di MPD che supporta qualsiasi formato ("
format *:*:2") o quanto meno qualsiasi SR con la max dimensione possibile dei campioni ("
format *:32:2"). Lo stesso va fatto anche se invece si vuol far effettuare l'eventuale upsampling direttamente ad ALSA, oppure se si vuole ottenere una uscita "bit-perfect", senza alcuna alterazione degli stream audio contenuti nei files di ingresso.
A questo punto dovresti aver già capito che, per far fare il resampling ad MPD, è sufficiente definire una uscita che supporti solo il sample-rate desiderato in uscita, ad es. 192KHz:
Codice: Seleziona tutto
audio_output {
type "alsa"
name "upsample"
auto_resample "yes"
format "192000:32:2"
device "hw:1,0"
use_mmap "yes"
}
(auto_resample è "yes" per default, quindi quella riga si può anche omettere). Resta da specificare quale algoritmo deve essere utilizzato da MPD per fare il resampling, cosa che si fa con l'opzione "samplerate_converter"; ad es.:
Codice: Seleziona tutto
# If MPD has been compiled with libsamplerate support, this setting specifies
# the sample rate converter to use. Possible values can be found in the
# mpd.conf man page or the libsamplerate documentation. By default, this is
# setting is disabled.
#
#samplerate_converter "internal" # fast, poor quality
#samplerate_converter "Linear Interpolator" # fast
#samplerate_converter "Fastest Sinc Interpolator"
#samplerate_converter "Medium Sinc Interpolator"
samplerate_converter "Best Sinc Interpolator"
http://mpd.wikia.com/wiki/Tuning
http://www.musicpd.org/doc/user/ch03s06.html
http://manpages.ubuntu.com/manpages/pre ... onf.5.html
...oppure, al solito, dai il comando "man mpd.conf"

Re: MPD (Music Player Daemon)
Inviato: 13 set 2013, 13:06
da antonellocaroli
Grazie Unix!!!
adesso mi é tutto molto piú chiaro!!!

Re: MPD (Music Player Daemon)
Inviato: 18 set 2013, 17:27
da antonellocaroli
UnixMan ha scritto:
Codice: Seleziona tutto
audio_output {
type "alsa"
name "upsample"
auto_resample "yes"
format "192000:32:2"
device "hw:1,0"
use_mmap "yes"
}
(auto_resample è "yes" per default, quindi quella riga si può anche omettere). Resta da specificare quale algoritmo deve essere utilizzato da MPD per fare il resampling, cosa che si fa con l'opzione "samplerate_converter"; ad es.:
Codice: Seleziona tutto
# If MPD has been compiled with libsamplerate support, this setting specifies
# the sample rate converter to use. Possible values can be found in the
# mpd.conf man page or the libsamplerate documentation. By default, this is
# setting is disabled.
#
#samplerate_converter "internal" # fast, poor quality
#samplerate_converter "Linear Interpolator" # fast
#samplerate_converter "Fastest Sinc Interpolator"
#samplerate_converter "Medium Sinc Interpolator"
samplerate_converter "Best Sinc Interpolator"
Devo dire che con questa soluzione non suona niente male....peccato solo che usa troppa cpu...intorno al 40%
Re: MPD (Music Player Daemon)
Inviato: 20 set 2013, 13:26
da UnixMan
antonellocaroli ha scritto:Devo dire che con questa soluzione non suona niente male....peccato solo che usa troppa cpu...intorno al 40%
che CPU hai?
purtroppo se vuoi fare upsamplig con algoritmi sofisticati un notevole consumo di risorse è inevitabile. Il codice utilizzato da una data libreria/programma può essere più o meno ottimizzato ma, in generale, gli algoritmi di resampling sono per forza di cose tanto più complessi e "pesanti" quanto più sono accurati.
Per risparmiare qualche ciclo di CPU, in luogo di SRC puoi provare ad utilizzare SOX (attraverso ALSA, configurando il file /etc/asound.conf come suggerito). In modalità "very high quality" SOX utilizza il miglior algoritmo di resampling attualmente disponibile ma, ciò nonostante, in genere è (un po') meno pesante di SRC (molto dipende anche dalle opzioni utilizzate).
All'estremo opposto c'è il "Linear Interpolator". È uno degli algoritmi più semplici e leggeri (se non il più semplice in assoluto) e, almeno da un punto di vista prettamente tecnico, anche uno dei peggiori (se non il peggiore in assoluto). Però, da un punto di vista soggettivo (all'ascolto), c'è chi giura che è proprio quello che "suona" meglio di tutti...

fai presto provarlo, tentar non nuoce.

Re: MPD (Music Player Daemon)
Inviato: 10 ott 2013, 13:34
da antonellocaroli
UnixMan ha scritto:antonellocaroli ha scritto:Devo dire che con questa soluzione non suona niente male....peccato solo che usa troppa cpu...intorno al 40%
che CPU hai?
Ciao Unixman,
ho una cpu i3 2120 T
Volevo provare la soluzionw sox...con le pipe...
ma nel mio voyage mpd in /etc non trovo asaund.conf
lo devo creare io ex novo?
Re: MPD (Music Player Daemon)
Inviato: 10 ott 2013, 15:01
da UnixMan
antonellocaroli ha scritto:ho una cpu i3 2120 T
allora non dovresti avere problemi di carico eccessivo... già con il mio vecchio Core2/duo ce n'è d'avanzo.
antonellocaroli ha scritto:ma nel mio voyage mpd in /etc non trovo asaund.conf
lo devo creare io ex novo?
sì.

Re: MPD (Music Player Daemon)
Inviato: 10 ott 2013, 17:19
da antonellocaroli
Ciao Unixman,
allora ho fatto cosi:
file asound.conf in /etc
Codice: Seleziona tutto
ctl.equal {
type equal;
}
pcm.plugequal {
type equal;
# Modify the line below if you don't
# want to use sound card 0.
slave.pcm "plughw:0,0";
# or if you want to use with multiple applications output to dmix
# slave.pcm "plug:dmix"
}
pcm.equal {
type plug;
slave.pcm plugequal;
}
#MPD Config Wizard#######################################
# Any content beyond this line will be rewritten when the wizard is run##########
pcm.sox882 {
type file
slave {
pcm null
}
format "raw"
file "| /usr/bin/sox --single-threaded --combine sequence -q -V0 -t raw -c %c -b %b -r %r -s - -t alsa -b 32 hw:0,0 rate -v -I -a 88200"
}
pcm.sox96 {
type file
slave {
pcm null
}
format "raw"
file "| /usr/bin/sox --single-threaded --combine sequence -q -V0 -t raw -c %c -b %b -r %r -s - -t alsa -b 32 hw:0,0 rate -v -I -a 96000"
}
pcm.sox192 {
type file
slave {
pcm null
}
format "raw"
file "| /usr/bin/sox --single-threaded --combine sequence -q -V0 -t raw -c %c -b %b -r %r -s - -t alsa -b 32 hw:0,0 rate -v -I -a 192000"
}
pcm.sox1764 {
type file
slave {
pcm null
}
format "raw"
file "| /usr/bin/sox --single-threaded --combine sequence -q -V0 -t raw -c %c -b %b -r %r -s - -t alsa -b 32 hw:0,0 rate -v -I -a 176400"
}
poi mpd.conf modificato cosi:
Codice: Seleziona tutto
name "upsample"
auto_resample "yes"
format "192000:32:2"
device "hw:0,0"
priority "FIFO:52"
period_time "8192"
buffer_time "131072"
use_mmap "yes"
}
#samplerate_converter "Best Sinc Interpolator"
#samplerate_converter "internal" # fast, poor quality
#samplerate_converter "Linear Interpolator" # fast
#samplerate_converter "Fastest Sinc Interpolator"
samplerate_converter "Medium Sinc Interpolator"
audio_output {
type "alsa"
name "Sox 88,200 Khz"
enabled "no"
device "sox882"
alsa_buffer "131072"
alsa_period "8192"
}
audio_output {
type "alsa"
name "Sox 96,000 Khz"
enabled "no"
device "sox96"
alsa_buffer "131072"
alsa_period "8192"
}
audio_output {
type "alsa"
name "Sox 192,000 Khz"
enabled "no"
device "sox192"
alsa_buffer "131072"
alsa_period "8192"
}
audio_output {
type "alsa"
name "Sox 176,400 Khz"
enabled "no"
device "sox1764"
alsa_buffer "131072"
alsa_period "8192"
}
Risultato esempio con sox 192
file 44100 24 tutto ok
file 96000 suona, cioé la song va avanti ma nessuon suono....
Codice: Seleziona tutto
cat /proc/asound/card0/pcm0p/sub0/hw_params
access: RW_INTERLEAVED
format: S32_LE
subformat: STD
channels: 2
rate: 192000 (192000/1)
period_size: 1024
buffer_size: 8192
booh sembra che fa l´ up ma niente suono dalle casse...

Re: MPD (Music Player Daemon)
Inviato: 12 ott 2013, 18:39
da UnixMan
antonellocaroli ha scritto:
allora ho fatto cosi:
file asound.conf in /etc
Codice: Seleziona tutto
ctl.equal {
type equal;
}
pcm.plugequal {
type equal;
# Modify the line below if you don't
# want to use sound card 0.
slave.pcm "plughw:0,0";
# or if you want to use with multiple applications output to dmix
# slave.pcm "plug:dmix"
}
pcm.equal {
type plug;
slave.pcm plugequal;
}
questo a che pro?
antonellocaroli ha scritto:
[...]
Codice: Seleziona tutto
pcm.sox192 {
type file
slave {
pcm null
}
format "raw"
file "| /usr/bin/sox --single-threaded --combine sequence -q -V0 -t raw -c %c -b %b -r %r -s - -t alsa -b 32 hw:0,0 rate -v -I -a 192000"
}
a prima vista mi pare che vada bene.
N.B.: l'opzione "--single-threaded" serviva come workaround per un bug di una vecchia versione di sox. Con versioni più recenti dove il bug è stato corretto puoi anche ometterlo.
puoi usare anche la nuova sintassi, che è un filo più "compatta":
Codice: Seleziona tutto
pcm.soxp {
type empty
slave {
pcm "file:'| /usr/bin/sox -q --combine sequence -t raw -c %c -b %b -r %r -e signed-integer - -t alsa -b32 hw:1,0 gain -6 rate -vMa 192000 dither -s',raw"
}
# A hint is required for listing the device in some GUIs
hint {
show on
description "SOX upsampling via pipe (new)"
}
}
il blocco "hint" è opzionale, ma è necessario se vuoi che i tuoi device virtuali siano elencati nelle GUI dei player (ovviamente, se usi solo MPD puoi anche ometterlo).
antonellocaroli ha scritto:
poi mpd.conf modificato cosi:
Codice: Seleziona tutto
name "upsample"
auto_resample "yes"
format "192000:32:2"
device "hw:0,0"
priority "FIFO:52"
period_time "8192"
buffer_time "131072"
use_mmap "yes"
}
questa parte dove sta? manca qualcosa prima, è un altro "audio_output"?
antonellocaroli ha scritto:
booh sembra che fa l´ up ma niente suono dalle casse...

ti conviene provare a mano, uno step alla volta.
Prima di tutto, prova sox da linea di comando:
Codice: Seleziona tutto
sox -V3 file.flac -t alsa -b 32 hw:0,0 rate -v -I -a 192000
step successivo, prova il virtual device ALSA:
ovviamente, in entrambi i casi al posto di "file.flac" metti il nome del file da suonare...
Re: MPD (Music Player Daemon)
Inviato: 13 ott 2013, 17:21
da antonellocaroli
Ciao Palo,
Codice: Seleziona tutto
file asound.conf in /etc
Code:
ctl.equal {
type equal;
}
pcm.plugequal {
type equal;
# Modify the line below if you don't
# want to use sound card 0.
slave.pcm "plughw:0,0";
# or if you want to use with multiple applications output to dmix
# slave.pcm "plug:dmix"
}
pcm.equal {
type plug;
slave.pcm plugequal;
}
questo a che pro?
L ho tolto!!!
Codice: Seleziona tutto
antonellocaroli wrote:
poi mpd.conf modificato cosi:
Code:
name "upsample"
auto_resample "yes"
format "192000:32:2"
device "hw:0,0"
priority "FIFO:52"
period_time "8192"
buffer_time "131072"
use_mmap "yes"
}
questa parte dove sta? manca qualcosa prima, è un altro "audio_output"?
Siquesto é un altro audio output, e manca una parte che non si vede....per il resempler interno di mpd (src)
Codice: Seleziona tutto
Prima di tutto, prova sox da linea di comando:
Code:
sox -V3 file.flac -t alsa -b 32 hw:0,0 rate -v -I -a 192000
Ho provato con tre file di diversa risoluzione:
Codice: Seleziona tutto
root@voyage:/media/prova1/mu# sox -V3 /media/prova1/mu/07-Viewpoint.flac -t alsa -b 32 hw:0,0 rate -v -I -a 192000
sox: SoX v14.4.0
sox INFO formats: detected file format type `flac'
Input File : '/media/prova1/mu/07-Viewpoint.flac'
Channels : 2
Sample Rate : 44100
Precision : 16-bit
Duration : 00:08:02.72 = 21287952 samples = 36204 CDDA sectors
File Size : 58.2M
Bit Rate : 965k
Sample Encoding: 16-bit FLAC
Endian Type : little
Reverse Nibbles: no
Reverse Bits : no
Comments :
ALBUM=Journey Inwards
ARTIST=Ltj Bukem
COMMENT=Ten Years on From the Beginning of His Mixing Career, and Following the Release of Literally Dozens of Compilations Focusing on Tracks and Producers From His Good Looking/Looking Good Empire, Ltj Bukem Finally Released An Album of His Own. As Any Listener Who's Heard a Single From Any Label Headed By Bukem Will Probably Be Able to Guess, His Focus Here is Not Quite Standard Drum'n'bass, But a Set of Earthy Breaks Inspired By the Smoother End of '70s Jazz and Fusion. Compared to the Other Jungle Pioneers Who've Recorded Expansive Double-Disc Albums (4 Hero, Roni Size, Goldie), Bukem's is Most Similar in Concept and Sound to 4 Hero's Two Pages, An Organic Lp With Midtempo Breakbeats and Earthy Workouts For Instrumentalists (Not Programmers). Even More Than 4 Hero, However, Bukem's Focus on Non-Commercial, Non-Vocal Productions is Both Confident and Exemplary. Though It's Been Easy (and Perhaps, Necessary) to Fault Bukem in the Past For Aping His Influences, Journey Inwards Makes it Practically Impossible -- Especially in the Context of These Productions, so Beautiful, so Detailed, so Precisely Imagined They Sound As Though They've Come Straight From Heaven's Recording Studio. From the Shimmering Waves of Rhodes Keyboards and the Undeniably Upright Bass on the Title-Track Opener (Which Might Be a Bit Too Expansive in Its Own Right), Bukem Moves Into True Drum'n'bass With a Sleek, Excellent Two-Stepper Called "watercolours" Which Features a Downplayed, Honking Sax. He Often Returns to the Rhodes (it Must Be His Favorite Instrument), Perhaps a Few Times Too Many, But Every Occurrence is Used With the Balance Just Right. the Breaks Programming Isn't Next-Generation, But For Each Song Bukem Finds a Pattern That Works Perfectly With the Effects to Support it. the Second Disc is Reportedly the Downtempo Disc, Though It's Only Marginally Different From the First. it Does Indeed Concentrate More on Influences and Genre Exercises, From the Blaxploitation Bliss of "sunrain" (One of the Few Vocal Tracks on the Album) to the Soul-Jazz Strut of "deserted Vaults." Taken As a Whole, Journey Inwards is An Album of Pure Brilliance, a Work That Trumps Many of Bukem's Past Productions, and Signals, For What May Be the First Time, That His Production Talents Are Actually Growing and Developing. Truth to Tell, There's Never Been a Drum'n'bass Double-Album That Shouldn't Have Been Pared Down. With Journey Inwards, It's Nearly Impossible to Know What to Cut.
COMPOSER=Williamson
DATE=2000
GENRE=Electronic
INVOLVEDPEOPLE=Guitar
ORGANIZATION=Kinetic
STYLES=Jungle/Drum'n'bass,Ambient Breakbeat
TITLE=Viewpoint
TONES=Laid-Back/Mellow,Nocturnal,Stylish,Amiable/Good-Natured,Calm/Peaceful
TRACKNUMBER=07
Output File : 'hw:0,0' (alsa)
Channels : 2
Sample Rate : 192000
Precision : 24-bit
Duration : 00:08:02.72 = 92682240 samples ~ 36204 CDDA sectors
Sample Encoding: 32-bit Signed Integer PCM
Endian Type : little
Reverse Nibbles: no
Reverse Bits : no
sox INFO sox: effects chain: input 44100Hz 2 channels
sox INFO sox: effects chain: rate 192000Hz 2 channels
sox INFO sox: effects chain: output 192000Hz 2 channels
é OK!!!
Codice: Seleziona tutto
root@voyage:/media/prova1/mu# sox -V3 /media/prova1/mu/08-Katmandu.flac -t alsa -b 32 hw:0,0 rate -v -I -a 192000
sox: SoX v14.4.0
sox INFO formats: detected file format type `flac'
Input File : '/media/prova1/mu/08-Katmandu.flac'
Channels : 2
Sample Rate : 44100
Precision : 16-bit
Duration : 00:03:23.47 = 8972880 samples = 15260 CDDA sectors
File Size : 19.0M
Bit Rate : 747k
Sample Encoding: 16-bit FLAC
Endian Type : little
Reverse Nibbles: no
Reverse Bits : no
Comments :
TRACKNUMBER=08
ARTIST=Cat Stevens
ALBUM=Mona Bone Jakon (180g Lp)
TITLE=Katmandu
DATE=1970
GENRE=Folk-Rock
march 2011By Dr. Roberthe Euords (2008)
COMPOSER=Cat Stevens
ALBUMARTIST=Cat Stevens
DISCNUMBER=1
INVOLVEDPEOPLE=Audio Engineer
TRACKTOTAL=11
TOTALTRACKS=11
DISCTOTAL=1
TOTALDISCS=1
Output File : 'hw:0,0' (alsa)
Channels : 2
Sample Rate : 192000
Precision : 24-bit
Duration : 00:03:23.47 = 39065600 samples ~ 15260 CDDA sectors
Sample Encoding: 32-bit Signed Integer PCM
Endian Type : little
Reverse Nibbles: no
Reverse Bits : no
sox INFO sox: effects chain: input 44100Hz 2 channels
sox INFO sox: effects chain: rate 192000Hz 2 channels
sox INFO sox: effects chain: output 192000Hz 2 channels
é OK!!!
Codice: Seleziona tutto
root@voyage:/media/prova1/mu# sox -V3 /media/prova1/mu/09-Time.flac -t alsa -b 32 hw:0,0 rate -v -I -a 192000
sox: SoX v14.4.0
sox INFO formats: detected file format type `flac'
Input File : '/media/prova1/mu/09-Time.flac'
Channels : 2
Sample Rate : 96000
Precision : 24-bit
Duration : 00:01:26.69 = 8321767 samples ~ 6501.38 CDDA sectors
File Size : 33.0M
Bit Rate : 3.04M
Sample Encoding: 24-bit FLAC
Endian Type : little
Reverse Nibbles: no
Reverse Bits : no
Comments :
TRACKNUMBER=09
ARTIST=Cat Stevens
ALBUM=Mona Bone Jakon
TITLE=Time
DATE=1970
GENRE=Pop/Rock
COMMENT=Cat Stevens Virtually Disappeared From the British Pop Scene in 1968, at the Age of 20, After a Meteoric Start to His Career. He Had Contracted Tuberculosis and Spent a Year Recovering, From Both His Illness and the Strain of Being a Teenage Pop Star, Before Returning to Action in the Spring of 1970 As a Very Different 22-Year-Old With Mona Bone Jakon. Fans Who Knew Him From 1967 Must Have Been Surprised. Under the Production Aegis of Former Yardbird Paul Samwell-Smith, He Introduced a Group of Simple, Heartfelt Songs Played in Spare Arrangements on Acoustic Guitars and Keyboards and Driven By a Restrained Rhythm Section. Built on Folk and Blues Structures, But With Characteristically Compelling Melodies, Stevens' New Compositions Were Tentative, Fragmentary Statements That Alluded to His Recent "trouble," Including the Triviality of Being a "pop Star." But These Were the Words of a Desperate Man in Search of Salvation. Mona Bone Jakon Was Dominated By Images of Death, But the Album Was Also About Survival and Hope. Stevens' Craggy Voice, With Its Odd Breaks of Tone and Occasional Huskiness, Lent These Sometimes Sketchy Songs Depth, and the Understated Instrumentation Further Emphasized Their Seriousness. If Stevens Was Working Out Private Demons on Mona Bone Jakon, He Was Well Attuned to a Similar World-Weariness in Pop Culture. His Listeners May Not Have Shared His Exact Experience, But After the 1960s They Certainly Understood His Sense of Being Wounded, His Spiritual Yearning, and His Hesitant Optimism. Mona Bone Jakon Was Only a Modest Success Upon Its Initial Release, But it Attracted Attention in the Wake of the Commercial Breakthrough of Its Follow-Up, Tea For the Tillerman.
COMPOSER=Cat Stevens
ALBUMARTIST=Cat Stevens
DISCNUMBER=1
TONES=Brooding,Cerebral,Earnest,Gentle,Intimate,Laid-Back/Mellow,Melancholy,Poignant,Reflective,Restrained,Reverent,Spiritual,Wistful
STYLES=Contemporary Pop/Rock,Folk-Rock,Psychedelic/Garage,Soft Rock,Album Rock,Pop,Singer/Songwriter
SITUATION=Introspection,Long Walk,Reflection,Sunday Afternoon
INVOLVEDPEOPLE=Audio Engineer
TRACKTOTAL=11
TOTALTRACKS=11
DISCTOTAL=1
TOTALDISCS=1
Output File : 'hw:0,0' (alsa)
Channels : 2
Sample Rate : 192000
Precision : 24-bit
Duration : 00:01:26.69 = 16643534 samples ~ 6501.38 CDDA sectors
Sample Encoding: 32-bit Signed Integer PCM
Endian Type : little
Reverse Nibbles: no
Reverse Bits : no
sox INFO sox: effects chain: input 96000Hz 2 channels
sox INFO sox: effects chain: rate 192000Hz 2 channels
sox INFO sox: effects chain: output 192000Hz 2 channels
è ok!!!
Codice: Seleziona tutto
step successivo, prova il virtual device ALSA:
Code:
aplay -D sox192 file.flac
ho fatto con gli stessi file:
Codice: Seleziona tutto
root@voyage:/media/prova1/mu# aplay -D soxp /media/prova1/mu/07-Viewpoint.flac
Playing raw data '/media/prova1/mu/07-Viewpoint.flac' : Unsigned 8 bit, Rate 8000 Hz, Mono
/usr/bin/sox WARN dither: no `shibata' filter is available for rate 192000; using sloped TPDF
/usr/bin/sox WARN alsa: under-run
/usr/bin/sox WARN alsa: under-run
/usr/bin/sox WARN alsa: under-run
/usr/bin/sox WARN alsa: under-run
^CAborted by signal Interrupt...
/usr/bin/sox WARN rate: rate clipped 1274 samples; decrease volume?
/usr/bin/sox WARN dither: dither clipped 2201 samples; decrease volume?
Esce fuori solo un rumore tipo sccccccccccccccccccccccccc
Codice: Seleziona tutto
root@voyage:/media/prova1/mu# aplay -D soxp /media/prova1/mu/08-Katmandu.flac
Playing raw data '/media/prova1/mu/08-Katmandu.flac' : Unsigned 8 bit, Rate 8000 Hz, Mono
/usr/bin/sox WARN dither: no `shibata' filter is available for rate 192000; using sloped TPDF
/usr/bin/sox WARN alsa: under-run
^CAborted by signal Interrupt...
/usr/bin/sox WARN rate: rate clipped 19 samples; decrease volume?
/usr/bin/sox WARN dither: dither clipped 33 samples; decrease volume?
Idem come sopra
Codice: Seleziona tutto
root@voyage:/media/prova1/mu# aplay -D soxp /media/prova1/mu/09-Time.flac
Playing raw data '/media/prova1/mu/09-Time.flac' : Unsigned 8 bit, Rate 8000 Hz, Mono
/usr/bin/sox WARN dither: no `shibata' filter is available for rate 192000; using sloped TPDF
/usr/bin/sox WARN alsa: under-run
^CAborted by signal Interrupt...
/usr/bin/sox WARN rate: rate clipped 19 samples; decrease volume?
/usr/bin/sox WARN dither: dither clipped 36 samples; decrease volume?
idem come sopra

Re: MPD (Music Player Daemon)
Inviato: 13 ott 2013, 18:58
da UnixMan
antonellocaroli ha scritto:Ho provato con tre file di diversa risoluzione:
[...]
é OK!!!
ottimo.
antonellocaroli ha scritto:step successivo, prova il virtual device ALSA:
ho fatto con gli stessi file:
[...]
Esce fuori solo un rumore tipo sccccccccccccccccccccccccc
Oops. Mea culpa: ho scritto "file.flac" dimenticando che "aplay" non supporta i flac... devi passargli un "wav" non compresso.
Puoi convertire i file di test prima di mandarli in play:
(che decodifica il flac e ne salva una copia non compressa in "file.wav") oppure anche farlo al volo (senza salvare il file decodificato) con una pipe, così:
Re: MPD (Music Player Daemon)
Inviato: 13 ott 2013, 20:21
da antonellocaroli
Ciao Paolo,
UnixMan ha scritto:
(che decodifica il flac e ne salva una copia non compressa in "file.wav") oppure anche farlo al volo (senza salvare il file decodificato) con una pipe, così:
fatto e funziona:
Codice: Seleziona tutto
root@voyage:/media/prova2/mu# flac -d -c /media/prova2/mu/07-Viewpoint.flac | aplay -D soxp
flac 1.2.1, Copyright (C) 2000,2001,2002,2003,2004,2005,2006,2007 Josh Coalson
flac comes with ABSOLUTELY NO WARRANTY. This is free software, and you are
welcome to redistribute it under certain conditions. Type `flac' for details.
Playing WAVE 'stdin' : Signed 16 bit Little Endian, Rate 44100 Hz, Stereo
/usr/bin/sox WARN dither: no `shibata' filter is available for rate 192000; usingsloped TPDF
07-Viewpoint.flac: 5% complete^CAborted by signal Interrupt...
root@voyage:/media/prova2/mu# flac -d -c /media/prova2/mu/08-Katmandu.flac | aplay -D soxp
flac 1.2.1, Copyright (C) 2000,2001,2002,2003,2004,2005,2006,2007 Josh Coalson
flac comes with ABSOLUTELY NO WARRANTY. This is free software, and you are
welcome to redistribute it under certain conditions. Type `flac' for details.
Playing WAVE 'stdin' : Signed 16 bit Little Endian, Rate 44100 Hz, Stereo
/usr/bin/sox WARN dither: no `shibata' filter is available for rate 192000; usingsloped TPDF
08-Katmandu.flac: 20% complete^CAborted by signal Interrupt...
root@voyage:/media/prova2/mu# flac -d -c /media/prova2/mu/09-Time.flac | aplay -D soxp
flac 1.2.1, Copyright (C) 2000,2001,2002,2003,2004,2005,2006,2007 Josh Coalson
flac comes with ABSOLUTELY NO WARRANTY. This is free software, and you are
welcome to redistribute it under certain conditions. Type `flac' for details.
Playing WAVE 'stdin' : Signed 24 bit Little Endian in 3bytes, Rate 96000 Hz, Stereo
/usr/bin/sox WARN dither: no `shibata' filter is available for rate 192000; using sloped TPDF
09-Time.flac: 9% complete^CAborted by signal Interrupt...
Quindi con aplay funziona!!!
ma con gli stessi file in mpd i primi due vanno il terzo parte come se riproducesse ma niente suono dalle casse....

Re: MPD (Music Player Daemon)
Inviato: 13 ott 2013, 22:20
da UnixMan
antonellocaroli ha scritto:ma con gli stessi file in mpd i primi due vanno il terzo parte come se riproducesse ma niente suono dalle casse...
se con aplay funziona, ci deve essere qualche problema con la configurazione di MPD...

Re: MPD (Music Player Daemon)
Inviato: 14 ott 2013, 08:11
da antonellocaroli
UnixMan ha scritto:antonellocaroli ha scritto:ma con gli stessi file in mpd i primi due vanno il terzo parte come se riproducesse ma niente suono dalle casse...
se con aplay funziona, ci deve essere qualche problema con la configurazione di MPD...

Penso che se fosse un problema della configurazione non dovrebbero suonare neanche i primi due...
comunque stasera ti posto tutto l mpd.conf.
Penso che sia piú un problema di tipo di file:
il terzo file a differenza degli altri a parte il Sample Rate che é 96000
ha anche una precision diversa (24-bit)
Paolo che tu sappia quando faccio la conversione con flac -d -c file.flac | aplay -D sox192 mi cambia i bit?
ma potrebbe essere anche un problema di memoria o buffer...mah
dico questo perché mi sembra strano che non suona neanche le radio in streaming....

Re: MPD (Music Player Daemon)
Inviato: 14 ott 2013, 17:31
da antonellocaroli
Ho pulito tutto il fle mpd.conf cosi:
Codice: Seleziona tutto
music_directory "/media/prova1/mu"
playlist_directory "/var/lib/mpd/playlists"
db_file "/var/lib/mpd/tag_cache"
log_file "/var/log/mpd/mpd.log"
pid_file "/var/run/mpd/pid"
state_file "/var/lib/mpd/state"
sticker_file "/var/lib/mpd/sticker.sql"
###############################################################################
connection_timeout "180"
###############################################################################
filesystem_charset "UTF-8"
id3v1_encoding "UTF-8"
##############################################################################
bind_to_address "0.0.0.0"
mixer_type "none"
log_level "verbose"
follow_outside_symlinks "yes"
follow_inside_symlinks "yes"
zeroconf_enabled "no"
zeroconf_name "MPD"
audio_output {
type "alsa"
name "My Alsa"
device "hw:0,0"
priority "FIFO:52"
enabled "yes"
# format "192000:32:2" # optional
# mixer_device "default" # optional
# mixer_control "PCM" # optional
# mixer_index "0" # optional
}
audio_buffer_size "2048"
buffer_before_play "0%"
audio_output {
type "alsa"
name "Sox"
enabled "no"
device "soxp"
alsa_buffer "131072"
alsa_period "8192"
}
Ma niente non va... muto per il terzo file...gli altri 2 vanno....

Re: MPD (Music Player Daemon)
Inviato: 14 ott 2013, 17:46
da sontero
Filippo ma che DAC possiedi ? Qual'è la sua massima risoluzione
Sono Giovanni (alias bigtube)
Re: MPD (Music Player Daemon)
Inviato: 14 ott 2013, 18:09
da antonellocaroli
sontero ha scritto:Filippo ma che DAC possiedi ? Qual'è la sua massima risoluzione
Sono Giovanni (alias bigtube)
Ciao Giovanni,
come va a te?
non ho un dac...ma una Xonar Essence stx.
ma non credo dipenda da questo, visto che con aplay funziona.
penso dipenda da mpd...

Re: MPD (Music Player Daemon)
Inviato: 14 ott 2013, 21:01
da sontero
filippo con l'aiuto di
unixman

(leggi thread
Voyage MPD cosa ne pensate) son riuscito a capire cosa succedeva alla mia installazione di Voyage con la root "full".
Ho risolto togliendo la Trascend e al suo posto ho messo un'altra cf da 8 Giga(Verbatim) e adesso almeno quello è risolto .Ho la root al 7% quindi bene .
Ho tentato di creare il kernel RT seguendo la tua procedura ma non va' a buon fine ( al comando wget
https://www.kernel.org/pub/linux/kernel ... 8..tar.bz2
si pianta e pure il comando no-check-certificate ). Se hai qualche soluzione sono tutt'orecchi . non posso angosciare il grande Unixman a ogni pie' sospinto, è fin troppo
paziente .

Re: MPD (Music Player Daemon)
Inviato: 14 ott 2013, 21:17
da antonellocaroli
sontero ha scritto:filippo con l'aiuto di
unixman

(leggi thread VoyageMPD cosa ne pensate) son riuscito a capire cosa succedeva alla mia installazione di Voyage con la root "full".
Ho risolto togliendo la Trascend e al suo posto ho messo un'altra cf da 8 Giga(Verbatim) e adesso almeno quello è risolto .Ho la root al 7% quindi bene .
Ho tentato di creare il kernel RT seguendo la tua procedura ma non va' a buon fine ( al comando wget
https://www.kernel.org/pub/linux/kernel ... 8..tar.bz2
si pianta e pure il comando no-check-certificate ). Se hai qualche soluzione sono tutt'orecchi . non posso angosciare il grande Unixman a ogni pie' sospinto, è fin troppo
paziente .

Giovanni ti ho risposto in pvt per non andare fuori tema in questo topic.
Re: MPD (Music Player Daemon)
Inviato: 14 ott 2013, 21:43
da UnixMan
antonellocaroli ha scritto:Ho pulito tutto il fle mpd.conf cosi:
Codice: Seleziona tutto
audio_output {
type "alsa"
name "Sox"
enabled "no"
device "soxp"
alsa_buffer "131072"
alsa_period "8192"
}
Ma niente non va... muto per il terzo file...gli altri 2 vanno....

mmh, ma in /etc/aplay.conf il device non lo avevi chiamato "sox192"?
...se invece è giusto, prova a commentare alsa_buffer ed alsa_period.

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

Re: MPD (Music Player Daemon)
Inviato: 15 ott 2013, 19:40
da antonellocaroli
Ciao Unix,
ho provato con i tuoi consigli ma non va.
questo il log con la stringa ultima che mi hai consigliato:
Codice: Seleziona tutto
ALSA lib conf.c:4415:(parse_string) Unterminated string
ALSA lib conf.c:4704:(snd_config_expand) Parse arguments error: Invalid argument
ALSA lib pcm.c:2217:(snd_pcm_open_noupdate) Unknown PCM file:'| /usr/bin/sox -q -V0 --combine sequence -t raw -c %c -b %b -r %r -e signed-integer - -t alsa -b32 hw:0,0 gain -9 rate -vMa 192000 dither -s
Oct 15 19:28 : output: Failed to open "Sox" [alsa]: Failed to open ALSA device "soxp": Invalid argument
Oct 15 19:28 : player_thread: Failed to open audio output
Oct 15 19:28 : player_thread: problems opening audio device while playing "07-Viewpoint.flac"
Oct 15 19:28 : client: [2] process command "status"
Oct 15 19:28 : client: [2] command returned 0
Oct 15 19:28 : client: [2] process command "replay_gain_status"
Oct 15 19:28 : client: [2] command returned 0
Oct 15 19:28 : client: [2] process command "currentsong"
Oct 15 19:28 : client: [2] command returned 0
Oct 15 19:28 : client: [0] process command "status"
Oct 15 19:28 : client: [0] command returned 0
Oct 15 19:28 : client: [0] process command "clearerror"
Oct 15 19:28 : client: [0] command returned 0
Oct 15 19:28 : client: [0] process command "idle"
Oct 15 19:28 : client: [0] command returned 1
Oct 15 19:28 : client: [0] process command "playlistid "1""
Oct 15 19:28 : client: [0] command returned 0
Oct 15 19:28 : client: [0] process command "plchangesposid "2""
Oct 15 19:28 : client: [0] command returned 0
Oct 15 19:28 : client: [0] process command "list album artist "Ltj Bukem""
Oct 15 19:28 : client: [0] command returned 0
Oct 15 19:28 : client: [0] process command list
Oct 15 19:28 : client: command_process_list: process command "playlistinfo "0""
Oct 15 19:28 : client: command_process_list: command returned 0
Oct 15 19:28 : client: [0] process command list returned 0
Oct 15 19:28 : client: [0] process command "status"
Oct 15 19:28 : client: [0] command returned 0
Oct 15 19:28 : client: [0] process command "idle"
Oct 15 19:28 : client: [0] command returned 1
Oct 15 19:28 : client: [0] process command "status"
Oct 15 19:28 : client: [0] command returned 0
Oct 15 19:28 : client: [0] process command "idle"
Oct 15 19:28 : client: [0] command returned 1
Oct 15 19:28 : client: [0] process command "status"
Oct 15 19:28 : client: [0] command returned 0
Oct 15 19:28 : client: [0] process command "idle"
Oct 15 19:28 : client: [0] command returned 1
Oct 15 19:28 : client: [0] process command "status"
Oct 15 19:28 : client: [0] command returned 0
Oct 15 19:28 : client: [0] process command "idle"
Oct 15 19:28 : client: [0] command returned 1
Oct 15 19:28 : client: [0] process command "status"
Oct 15 19:28 : client: [0] command returned 0
Oct 15 19:28 : client: [0] process command "idle"
Oct 15 19:28 : client: [0] command returned 1
Oct 15 19:28 : client: [0] process command "status"
Oct 15 19:28 : client: [0] command returned 0
Oct 15 19:28 : client: [0] process command "idle"
Questa invece come era prima:
Codice: Seleziona tutto
Oct 15 19:33 : client: command_process_list: process command "add "09-Time.flac""
Oct 15 19:33 : client: command_process_list: command returned 0
Oct 15 19:33 : client: [2] process command list returned 0
Oct 15 19:33 : client: [2] process command "play 0"
Oct 15 19:33 : playlist: play 0:"09-Time.flac"
Oct 15 19:33 : client: [2] command returned 0
Oct 15 19:33 : decoder_thread: probing plugin flac
Oct 15 19:33 : decoder: audio_format=96000:24:2, seekable=true
Oct 15 19:33 : alsa: opened sox192 type=FILE
Oct 15 19:33 : alsa: format=S24_LE (Signed 24 bit Little Endian)
Oct 15 19:33 : alsa: buffer: size=1..412316860 time=10..4294967292
Oct 15 19:33 : alsa: period: size=0..412316861 time=0..4294967295
Oct 15 19:33 : alsa: default period_time = buffer_time/4 = 500000/4 = 125000
Oct 15 19:33 : alsa: buffer_size=48000 period_size=12000
Oct 15 19:33 : output: opened plugin=alsa name="So1x" audio_format=96000:24:2
Oct 15 19:33 : client: [2] process command "currentsong"
Oct 15 19:33 : client: [2] command returned 0
Oct 15 19:33 : client: [3] process command "idle"
Oct 15 19:33 : client: [3] command returned 1
Oct 15 19:33 : client: [2] process command "playlistinfo"
Oct 15 19:33 : client: [2] command returned 0
Oct 15 19:33 : client: [3] process command "idle"
Oct 15 19:33 : client: [3] command returned 1
Oct 15 19:33 : client: [2] process command "status"
Oct 15 19:33 : client: [2] command returned 0
Oct 15 19:33 : client: [2] process command "plchangesposid 7"
Oct 15 19:33 : client: [2] command returned 0
Oct 15 19:33 : client: [2] process command "status"
Oct 15 19:33 : client: [2] command returned 0
Oct 15 19:33 : client: [2] process command "replay_gain_status"
Oct 15 19:33 : client: [2] command returned 0
Oct 15 19:33 : client: [2] process command "currentsong"
Oct 15 19:33 : client: [2] command returned 0
Oct 15 19:33 : client: [0] process command "status"
Oct 15 19:33 : client: [2] process command "replay_gain_status"
Oct 15 19:33 : client: [2] command returned 0
Oct 15 19:33 : client: [2] process command "currentsong"
Oct 15 19:33 : client: [2] command returned 0
Oct 15 19:33 : client: [0] process command "status"
Oct 15 19:33 : client: [0] command returned 0
Oct 15 19:33 : client: [0] process command "idle"
Oct 15 19:33 : client: [0] command returned 1
Oct 15 19:33 : client: [0] process command "playlistid "3""
Oct 15 19:33 : client: [0] command returned 0
Oct 15 19:33 : client: [0] process command "plchangesposid "6""
Oct 15 19:33 : client: [0] command returned 0
Oct 15 19:33 : client: [0] process command "list album artist "Cat Stevens""
Oct 15 19:33 : client: [0] command returned 0
Oct 15 19:33 : client: [0] process command list
Oct 15 19:33 : client: command_process_list: process command "playlistinfo "0""
Oct 15 19:33 : client: command_process_list: command returned 0
Oct 15 19:33 : client: [0] process command list returned 0
Oct 15 19:33 : client: [0] process command "status"
Oct 15 19:33 : client: [0] command returned 0
Oct 15 19:33 : client: [0] process command "idle"
Oct 15 19:33 : client: [0] command returned 1
Oct 15 19:33 : client: [0] process command "status"
Oct 15 19:33 : client: [0] command returned 0
Oct 15 19:33 : client: [0] process command "idle"
Oct 15 19:33 : client: [0] command returned 1
Oct 15 19:33 : client: [0] process command "status"
Oct 15 19:33 : client: [0] command returned 0
Oct 15 19:33 : client: [0] process command "idle"
Oct 15 19:33 : client: [0] command returned 1
Re: MPD (Music Player Daemon)
Inviato: 15 ott 2013, 22:48
da UnixMan
antonellocaroli ha scritto:ho provato con i tuoi consigli ma non va.
questo il log con la stringa ultima che mi hai consigliato:
Codice: Seleziona tutto
ALSA lib conf.c:4415:(parse_string) Unterminated string
ALSA lib conf.c:4704:(snd_config_expand) Parse arguments error: Invalid argument
ALSA lib pcm.c:2217:(snd_pcm_open_noupdate) Unknown PCM file:'| /usr/bin/sox -q -V0 --combine sequence -t raw -c %c -b %b -r %r -e signed-integer - -t alsa -b32 hw:0,0 gain -9 rate -vMa 192000 dither -s
Oct 15 19:28 : output: Failed to open "Sox" [alsa]: Failed to open ALSA device "soxp": Invalid argument
[...]
ok, in questo caso c'è un errore nella configurazione di ALSA. A giudicare dal messaggio di errore ("Unterminated string"), hai sbagliato qualcosa nel file /etc/asound.conf. Immagino dovesse essere questo:
Codice: Seleziona tutto
pcm.soxp {
type empty
slave {
pcm "file:'| /usr/bin/sox -q --combine sequence -t raw -c %c -b %b -r %r -e signed-integer - -t alsa -b32 hw:1,0 gain -6 rate -vMa 192000 dither -s',raw"
}
}
Verifica di averlo scritto correttamente... (e provalo con aplay). Sempre a giudicare dal messaggio di errore, immagino che probabilmente hai omesso/invertito uno degli apici. C'è una coppia di "apici doppi" (
"...
") che delimitano l'inizio e la fine della stringa che costituisce il parametro di "pcm" ed all'interno di questa stringa c'è un'altra sotto-stringa, delimitata da apici singoli (
'...
'), che costituisce il parametro di "file".
In generale, gli apici servono (quasi sempre) a delimitare delle stringhe e possono essere "annidati", ma solo se sono di tipo diverso. Gli apici vanno (quasi) sempre in coppia: per ogni apice (che segna l'inizio di una stringa) ne corrisponde sempre un secondo uguale che chiude la stringa.
Analogamente, le parentesi graffe delimitano un "blocco": per ogni parentesi aperta ce n'è sempre una chiusa.
Le virgole invece qui servono a delimitare parametri diversi (in questo caso, i due parametri "file" e "tipo" dello slave pcm).
antonellocaroli ha scritto:
Codice: Seleziona tutto
Oct 15 19:33 : decoder_thread: probing plugin flac
Oct 15 19:33 : decoder: audio_format=96000:24:2, seekable=true
Oct 15 19:33 : alsa: opened sox192 type=FILE
Oct 15 19:33 : alsa: format=S24_LE (Signed 24 bit Little Endian)
Oct 15 19:33 : alsa: buffer: size=1..412316860 time=10..4294967292
Oct 15 19:33 : alsa: period: size=0..412316861 time=0..4294967295
Oct 15 19:33 : alsa: default period_time = buffer_time/4 = 500000/4 = 125000
Oct 15 19:33 : alsa: buffer_size=48000 period_size=12000
qui non sembrano esserci errori, almeno dal punto di vista di MPD... però MPD manda l'uscita a 24bit: non hai messo il format a 32?
hai tolto le opzioni alsa_buffer ed alsa_period?
antonellocaroli ha scritto:
Codice: Seleziona tutto
Oct 15 19:33 : output: opened plugin=alsa name="So1x" audio_format=96000:24:2
e questo? che roba è "So1x"?

Re: MPD (Music Player Daemon)
Inviato: 16 ott 2013, 19:16
da antonellocaroli
Ciao Unix,
li ho provate tutte.....ma devo dire che la cosa succedeva anche con mpdpup...a sto punto mi tenco il resemple interno di mpd che funziona con tutto...solo che non posso usare il
samplerate_converter "Best Sinc Interpolator"
che la cpu mi schizza al 40%
e devo usare
samplerate_converter "Medium Sinc Interpolator"
comunque grazie dell´aiuto Unix.
solo una cosa ma tu usi voyage mpd con sox..ti postrei postare il file che non funziona...
Re: MPD (Music Player Daemon)
Inviato: 16 ott 2013, 22:33
da UnixMan
No, non uso MPD... in genere (come per quasi tutto) vado di linea di comando.
Magari quando ho un attimo lo installo e ti faccio sapere.
Per quanto riguarda il file, dubito che sia un problema specifico di quello. Presumo che il problema si verifichi per qualsiasi file 24/96... o per nessuno.
Re: MPD (Music Player Daemon)
Inviato: 17 ott 2013, 01:14
da antonellocaroli
UnixMan ha scritto:No, non uso MPD... in genere (come per quasi tutto) vado di linea di comando.
Magari quando ho un attimo lo installo e ti faccio sapere.
Per quanto riguarda il file, dubito che sia un problema specifico di quello. Presumo che il problema si verifichi per qualsiasi file 24/96... o per nessuno.
si per tutti i 24/96...
Re: MPD (Music Player Daemon)
Inviato: 19 ott 2013, 15:04
da UnixMan
Allora, ho fatto qualche prova... in effetti, qualche rogna c'è.
La configurazione di ALSA (asound.conf) è all'incirca quella postata in precedenza. In particolare, il device virtuale utilizzato per l'upsampling con sox è questo:
Codice: Seleziona tutto
# Use sox directly, new method
pcm.soxp {
type empty
slave {
pcm "file:'| /usr/bin/sox -q --combine sequence -t raw -c %c -b %b -r %r -e signed-integer - -t alsa -b32 hw:2,0 gain -6 rate -vMa 192000 dither -s',raw"
}
hint {
show on
description "SOX upsampling via pipe (new)"
}
}
N.B.: la definizione dello "slave" (pcm ...) va scritta tutta su una sola riga!
La configurazione di MPD è questa:
mpd.conf
in particolare, gli output che ho definito sono:
Codice: Seleziona tutto
audio_output {
type "alsa"
name "ALSA default"
device "default"
enabled "yes"
}
audio_output {
type "alsa"
name "MPD upsample"
auto_resample "no"
format "192000:32:2"
device "default"
enabled "no"
}
audio_output {
type "alsa"
name "SOX upsample"
device "soxp"
format "*:32:2"
auto_resample "no"
auto_channels "no"
auto_format "no"
enabled "no"
}
# N.B.: see "man mpd.conf" for the meaning of the "auto_..." options whose names may be misleading!
L'uscita su sox a volte funziona, a volte no. Ancora non ho verificato a sufficienza, ma l'impressione è che il problema ci sia soprattutto quando si passa da un file ad un altro con un formato (risoluzione/SR) diverso...

Re: MPD (Music Player Daemon)
Inviato: 19 ott 2013, 16:09
da UnixMan
/usr/bin/sox FAIL formats: can't open output file `hw:2,0': snd_pcm_open error: Device or resource busy
ALSA lib pcm_file.c:359:(snd_pcm_file_write_bytes) write failed: Broken pipe
[...]
ALSA lib pcm_file.c:359:(snd_pcm_file_write_bytes) write failed: Broken pipe
mpd: pcm_file.c:398: snd_pcm_file_add_frames: Assertion `file->wbuf_used_bytes < file->wbuf_size_bytes' failed.
Mmmh... credo di aver capito qual è il problema: MPD non chiude il device ALSA tra una traccia e l'altra, neanche quando il formato del file che si appresta a mandare in play è diverso da quello del file precedente.
Di conseguenza, dato che il device ALSA resta aperto, resta aperta anche la pipe ed il relativo processo di sox. Sfortunatamente ciò implica che, quando il formato del file (risoluzione e/o SR) cambia, al "device virtuale" di ALSA e quindi alla relativa pipe (ed a sox) arriva uno stream con un formato diverso da quello per cui il tutto era stato configurato... e ti saluto.
Mandando manualmente MPD in "stop"
prima di passare da una traccia in un formato ad un altra con formato diverso il problema non si presenta, anche se ovviamente la cosa è a dir poco scomoda...
Bisogna vedere se è possibile "forzare" MPD a chiudere il dispositivo di uscita tra le traccie o (meglio) ogni volta che il formato del file che sta per mandare in play cambia rispetto al file precedente.
P.S.: siamo di fronte ad una sfortunata coincidenza: da una parte una "leggerezza" di MPD (che quando il formato cambia tra un file e quello successivo farebbe decisamente meglio a chiudere e riaprire il device di output, anche se a rigore non è tenuto a farlo e quindi non si può parlare di un vero e proprio "bug") e dall'altra un bug (questo sì...) di ALSA, che invece dovrebbe essere tenuto a chiudere e riaprire la pipe quando il formato dello stream in ingresso cambia...
Re: MPD (Music Player Daemon)
Inviato: 20 ott 2013, 17:35
da antonellocaroli
UnixMan ha scritto:
Codice: Seleziona tutto
# Use sox directly, new method
pcm.soxp {
type empty
slave {
pcm "file:'| /usr/bin/sox -q --combine sequence -t raw -c %c -b %b -r %r -e signed-integer - -t alsa -b32 hw:2,0 gain -6 rate -vMa 192000 dither -s',raw"
}
hint {
show on
description "SOX upsampling via pipe (new)"
}
}
N.B.: la definizione dello "slave" (pcm ...) va scritta tutta su una sola riga!
Ciao Paolo,
che intendi che deve essere cosi?
Codice: Seleziona tutto
# Use sox directly, new method
pcm.soxp {type empty slave {pcm "file:'| /usr/bin/sox -q --combine sequence -t raw -c %c -b %b -r %r -e signed-integer - -t alsa -b32 hw:2,0 gain -6 rate -vMa 192000 dither -s',raw"}
hint {
show on
description "SOX upsampling via pipe (new)"
}
}
Re: MPD (Music Player Daemon)
Inviato: 20 ott 2013, 18:25
da vince
ciao,
credo intendesse che non vanno utilizzati "a capo" dopo:
pcm "file:
Re: MPD (Music Player Daemon)
Inviato: 20 ott 2013, 20:17
da UnixMan
vince ha scritto:ciao,
credo intendesse che non vanno utilizzati "a capo" dopo:
pcm "file:
esatto.
La visualizzazione sul forum può andare a capo automaticamente, rischiando di trarre in inganno. Per questo ho specificato...
Re: MPD (Music Player Daemon)
Inviato: 20 ott 2013, 20:56
da antonellocaroli
Paolo comunque adesso funziona...
ma é come dici tu quando poi passa da un tipo di file ad un´ altro non va...
Re: MPD (Music Player Daemon)
Inviato: 20 ott 2013, 21:05
da UnixMan
antonellocaroli ha scritto:Paolo comunque adesso funziona...
ma é come dici tu quando poi passa da un tipo di file ad un´ altro non va...
ho inserito un bug report:
http://bugs.musicpd.org/view.php?id=3839
...vediamo se ne veniamo a capo. Nel frattempo, se vuoi usarlo, ricordati di premere "stop" quando vuoi passare tra file con risoluzione diversa. In quel modo funziona. Altrimenti ti tocca riavviare il server.
Re: MPD (Music Player Daemon)
Inviato: 21 ott 2013, 18:04
da antonellocaroli
Ciao
sapreste perché mpd quando metto una radio in streaming non mi dice artista e titolo?
mentre con mpdpup stessa radio esce?
c´é qualche parametro che fa questa decodifica?
Re: MPD (Music Player Daemon)
Inviato: 21 ott 2013, 21:10
da UnixMan
Non saprei. Prova a dare una occhiata alla configurazione di MPD su mpdpup, nonché all'elenco dei plugin installati...
Re: MPD (Music Player Daemon)
Inviato: 21 ott 2013, 21:20
da antonellocaroli
UnixMan ha scritto:Non saprei. Prova a dare una occhiata alla configurazione di MPD su mpdpup, nonché all'elenco dei plugin installati...
Ciao Unix,
giá confrontati i due mpd.conf niente differenze eclatanti...
sai come posso controllare i plugin installati?
ti posto i due top
voyage
Codice: Seleziona tutto
3045 root 20 0 140m 139m 28m S 13.3 14.7 5:36.46 mpd
13 root -21 0 0 0 0 S 0.3 0.0 0:05.22 ksoftirqd/1
341 root 20 0 0 0 0 S 0.3 0.0 0:00.04 kworker/1:1
3100 root 20 0 4428 1440 1032 R 0.3 0.1 0:00.02 top
1 root 20 0 2196 728 628 S 0.0 0.1 0:00.34 init
2 root 20 0 0 0 0 S 0.0 0.0 0:00.00 kthreadd
3 root -21 0 0 0 0 S 0.0 0.0 0:05.23 ksoftirqd/0
5 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 kworker/0:0H
7 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 kworker/u:0H
8 root rt 0 0 0 0 S 0.0 0.0 0:00.00 posixcputmr/0
9 root rt 0 0 0 0 S 0.0 0.0 0:00.00 migration/0
10 root 20 0 0 0 0 S 0.0 0.0 0:00.01 rcu_preempt
11 root 20 0 0 0 0 S 0.0 0.0 0:00.00 rcu_bh
12 root 20 0 0 0 0 S 0.0 0.0 0:00.00 rcu_sched
14 root rt 0 0 0 0 S 0.0 0.0 0:00.00 posixcputmr/1
15 root rt 0 0 0 0 S 0.0 0.0 0:00.00 migration/1
17 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 kworker/1:0H
18 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 khelper
19 root 20 0 0 0 0 S 0.0 0.0 0:00.00 kdevtmpfs
125 root 20 0 0 0 0 S 0.0 0.0 0:00.00 bdi-default
127 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 kblockd
129 root -51 0 0 0 0 S 0.0 0.0 0:00.00 irq/9-acpi
340 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 rpciod
359 root 20 0 0 0 0 S 0.0 0.0 0:00.00 kswapd0
360 root 20 0 0 0 0 S 0.0 0.0 0:00.00 fsnotify_mark
361 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 nfsiod
362 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 crypto
436 root -51 0 0 0 0 S 0.0 0.0 0:00.00 irq/1-i8042
447 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 deferwq
448 root 20 0 0 0 0 S 0.0 0.0 0:00.00 kworker/0:2
543 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 ata_sff
545 root 20 0 0 0 0 S 0.0 0.0 0:00.00 khubd
582 root -51 0 0 0 0 S 0.0 0.0 0:00.00 irq/19-
583 root -51 0 0 0 0 S 0.0 0.0 0:00.01 irq/19-ahci
588 root 20 0 0 0 0 S 0.0 0.0 0:00.00 scsi_eh_0
589 root 20 0 0 0 0 S 0.0 0.0 0:00.00 scsi_eh_1
590 root 20 0 0 0 0 S 0.0 0.0 0:00.00 scsi_eh_2
591 root 20 0 0 0 0 S 0.0 0.0 0:00.00 scsi_eh_3
592 root 20 0 0 0 0 S 0.0 0.0 0:00.00 scsi_eh_4
593 root 20 0 0 0 0 S 0.0 0.0 0:00.00 scsi_eh_5
596 root 20 0 0 0 0 S 0.0 0.0 0:00.00 kworker/u:4
597 root 20 0 0 0 0 S 0.0 0.0 0:00.00 kworker/u:5
601 root -51 0 0 0 0 S 0.0 0.0 0:00.77 irq/18-ehci_hcd
611 root -51 0 0 0 0 S 0.0 0.0 0:00.00 irq/23-ehci_hcd
620 root 20 0 0 0 0 S 0.0 0.0 0:00.00 scsi_eh_6
621 root 20 0 0 0 0 S 0.0 0.0 0:00.07 usb-storage
633 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 kworker/0:1H
638 root 20 0 0 0 0 S 0.0 0.0 0:00.00 kworker/1:2
808 root 20 0 2604 1216 720 S 0.0 0.1 0:00.05 udevd
967 root -51 0 0 0 0 S 0.0 0.0 0:00.86 irq/18-i801_smb
984 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 kworker/1:2H
1042 root -61 0 0 0 0 S 0.0 0.0 0:04.05 irq/16-snd_oxyg
1189 root 20 0 0 0 0 S 0.0 0.0 0:00.03 kworker/0:3
2197 root -51 0 0 0 0 S 0.0 0.0 0:01.70 irq/18-eth0
2295 root 20 0 5096 2028 312 S 0.0 0.2 0:00.00 dhclient
2398 root 20 0 2292 716 520 S 0.0 0.1 0:00.00 rpcbind
mpdpup:
Codice: Seleziona tutto
PID PPID USER STAT VSZ %MEM CPU %CPU COMMAND
3964 3804 root S 9060 1% 1 2% /usr/bin/sox --single-threaded --combine sequence -q -V0 -t raw -c 2 -b 32 -r 44100 -s - -t alsa -b 32 hw:0,0 rate -v -I -a 192000
3804 1 root S 47224 5% 1 0% mpd
3866 3760 root S 6688 1% 3 0% sshd: root@pts/0
3760 1 root S 4104 0% 1 0% /usr/sbin/sshd
3629 1 root S 3152 0% 0 0% -sh
3872 3866 root S 3152 0% 2 0% -sh
3949 3872 root R 2628 0% 2 0% top
3630 1 root S 2348 0% 0 0% /sbin/getty 38400 tty2
1 0 root S 2344 0% 1 0% /bin/busybox init
3966 1 root S 2344 0% 0 0% /sbin/getty -L 19200 ttyS0
3748 1 daemon S 2340 0% 3 0% avahi-daemon: running [tunes.local]
3749 3748 daemon S 2340 0% 1 0% avahi-daemon: chroot helper
3810 1 root S 2088 0% 0 0% /usr/sbin/lighttpd -f /etc/lighttpd/lighttpd.conf
1229 1 root S < 2016 0% 2 0% /sbin/udevd --daemon --resolve-names=early
2899 1229 root S < 2012 0% 2 0% /sbin/udevd --daemon --resolve-names=early
3822 1229 root S < 2012 0% 0 0% /sbin/udevd --daemon --resolve-names=early
3800 1 root S 1908 0% 1 0% dhcpcd -d -I eth0
873 1 root S 1808 0% 3 0% ntfs-3g /dev/sda3 /mnt/dev_save -o umask=0,no_def_opts,noatime,rw
1685 2 root SW 0 0% 1 0% [kworker/1:3]
78 2 root SW 0 0% 3 0% [kworker/3:1]
94 2 root SW 0 0% 3 0% [usb-storage]
986 2 root SW< 0 0% 0 0% [loop0]
2 0 root SW 0 0% 3 0% [kthreadd]
3 2 root SW 0 0% 0 0% [ksoftirqd/0]
4 2 root SW 0 0% 0 0% [kworker/0:0]
5 2 root SW 0 0% 1 0% [kworker/u:0]
6 2 root SW 0 0% 0 0% [migration/0]
7 2 root SW 0 0% 1 0% [migration/1]
8 2 root SW 0 0% 1 0% [kworker/1:0]
9 2 root SW 0 0% 1 0% [ksoftirqd/1]
10 2 root SW 0 0% 0 0% [kworker/0:1]
11 2 root SW 0 0% 2 0% [migration/2]
12 2 root SW 0 0% 2 0% [kworker/2:0]
13 2 root SW 0 0% 2 0% [ksoftirqd/2]
14 2 root SW 0 0% 3 0% [migration/3]
15 2 root SW 0 0% 3 0% [kworker/3:0]
16 2 root SW 0 0% 3 0% [ksoftirqd/3]
17 2 root SW< 0 0% 1 0% [cpuset]
18 2 root SW< 0 0% 1 0% [khelper]
19 2 root SW 0 0% 0 0% [sync_supers]
20 2 root SW 0 0% 1 0% [bdi-default]
21 2 root SW< 0 0% 0 0% [kblockd]
22 2 root SW< 0 0% 0 0% [ata_sff]
23 2 root SW 0 0% 0 0% [khubd]
24 2 root SW 0 0% 0 0% [kswapd0]
25 2 root SWN 0 0% 1 0% [ksmd]
26 2 root SWN 0 0% 0 0% [khugepaged]
27 2 root SW 0 0% 1 0% [fsnotify_mark]
28 2 root SW< 0 0% 0 0% [xfs_mru_cache]
29 2 root SW< 0 0% 1 0% [xfslogd]
30 2 root SW< 0 0% 1 0% [xfsdatad]
31 2 root SW< 0 0% 1 0% [xfsconvertd]
32 2 root SW 0 0% 1 0% [scsi_eh_0]
33 2 root SW 0 0% 2 0% [scsi_eh_1]
34 2 root SW 0 0% 1 0% [scsi_eh_2]
35 2 root SW 0 0% 2 0% [scsi_eh_3]
36 2 root SW 0 0% 1 0% [scsi_eh_4]
37 2 root SW 0 0% 1 0% [scsi_eh_5]
38 2 root SW 0 0% 1 0% [kworker/u:1]
Re: MPD (Music Player Daemon)
Inviato: 21 ott 2013, 22:21
da UnixMan
In questo caso dubito che puoi vedere qualcosa da "top".
BTW: hai provato con le stesse "radio" nei due sistemi? pare che la cosa non funzioni con tutte:
http://bbs.archlinux.org/viewtopic.php?id=140405
se invece lo fa con tutte, potrebbe anche essere un bug nella versione di MPD che hai su Voyage:
http://bugs.musicpd.org/view.php?id=3671
Cercando info in rete, ho trovato questo link che potrebbe interessarti:
http://mightyohm.com/blog/2008/12/build ... -with-mpd/
P.S.: hanno chiuso il bug del "cambio risoluzione". A quanto pare non è come sospettavo, MPD apre e chiude il device. Ma il problema rimane.
Potrebbe essere un problema di ALSA...
Re: MPD (Music Player Daemon)
Inviato: 22 ott 2013, 17:59
da antonellocaroli
Si a questo punto sembra un problema con ALSA....

peccato!!!
Per la decodifica dei tag da radio in streaming...non riesco proprio a capire chi se ne occupa.
questo da voyage:
Codice: Seleziona tutto
root@voyage:~# mpc
http://prem2.jazzradio.com:80/bluesrock?158e415a7fa474240ca2839c#Blues Rock
[playing] #1/1 0:11/0:00 (0%)
volume: n/a repeat: off random: off single: off consume: off
Questo da mpdpup:
Codice: Seleziona tutto
# mpc
Blues Rock - JAZZRADIO.com Premium: J.J.Cale - Lies
[playing] #1/1 11:38/0:00 (0%)
volume: n/a repeat: off random: off single: off consume: off
Re: MPD (Music Player Daemon)
Inviato: 24 ott 2013, 20:46
da antonellocaroli
Provato anche su debian:
Codice: Seleziona tutto
root@hosteo:~# mpc
Bass Jazz - JAZZRADIO.com Premium: Red Mitchell & Rich Matteson - Our Love is Here to Stay
[playing] #1/1 1:58/0:00 (0%)
volume: n/a repeat: off random: off single: off consume: off
é funziona...a questo punto penso che manchi qualcosa in voyage....
su debian non ho installato niente solo mpd e mpc....mahhhh
Re: MPD (Music Player Daemon)
Inviato: 25 ott 2013, 09:21
da UnixMan
antonellocaroli ha scritto:Provato anche su debian:
[...]
e funziona...a questo punto penso che manchi qualcosa in voyage....
potrebbe essere la diversa versione di MPD che c'è su Voyage. Puoi provare ad installare quella di Debian su Voyage. Guarda quali versioni hai a disposizione:
e prova ad installarne una diversa...
Re: MPD (Music Player Daemon)
Inviato: 25 ott 2013, 14:08
da antonellocaroli
UnixMan ha scritto:prova ad installarne una diversa...
Grazie paolo stasera provo...
mi puoi dire come faccio a trovare un pacchetto installato e rimuoverlo?
Re: MPD (Music Player Daemon)
Inviato: 25 ott 2013, 14:53
da UnixMan
antonellocaroli ha scritto:mi puoi dire come faccio a trovare un pacchetto installato e rimuoverlo?
lo strumento più potente, comodo e versatile per gestire i pacchetti in Debian e sue derivate è "
aptitude". Con quello puoi fare letteralmente qualsiasi cosa. Purtroppo, il suo uso non è troppo intuitivo e richiede un minimo di apprendimento. Però ti consiglio di prenderci confidenza perché è utilissimo.
Alternativamente, puoi usare dpkg ed apt-get da riga di comando:
ti da la lista di tutti i pacchetti installati (dai il comando "man dpkg" per maggiori dettagli).
Per installare una versione specifica di un pacchetto con apt-get, puoi specificare la versione nella linea di comando. Al solito, guarda nel manuale per sapere come:
Re: MPD (Music Player Daemon)
Inviato: 25 ott 2013, 16:12
da antonellocaroli
Caio paolo,
Codice: Seleziona tutto
apt-cache policy mpd
mpd:
Installed: 0.18.git20121124-2
Candidate: 0.18.git20121124-2
Version table:
*** 0.18.git20121124-2 0
500 http://www.voyage.hk/dists/0.9/ ./ Packages
100 /var/lib/dpkg/status
0.18.git20121124 0
500 http://www.voyage.hk/dists/0.9/ ./ Packages
0.18.git20120913 0
500 http://www.voyage.hk/dists/0.9/ ./ Packages
0.18.0git20130624-1 0
500 http://www.voyage.hk/dists/experimental/ ./ Packages
0.16.7-2 0
500 http://ftp.jp.debian.org/debian/ wheezy/main i386 Packages
come faccio ad installare un altra versione?
se do
apt-get install mpd 0.16.7-2 0
non da risultato
Re: MPD (Music Player Daemon)
Inviato: 25 ott 2013, 20:32
da UnixMan
antonellocaroli ha scritto:Caio paolo,
Sempronio Antonello,

( scusa

)
antonellocaroli ha scritto:come faccio ad installare un altra versione?
se do
apt-get install mpd 0.16.7-2 0
non da risultato
ti avevo ben detto di leggere la man page...
[...]
install
[...]
A specific version of a package can be selected for installation by following the package name with an equals and the version of the package to select. This will cause that version to be located and selected for install. Alternatively a specific distribution can be selected by following the package name with a slash and the version of the distribution or the Archive name (stable, testing, unstable).
Both of the version selection mechanisms can downgrade packages and must be used with care.
[...]
Re: MPD (Music Player Daemon)
Inviato: 25 ott 2013, 20:42
da antonellocaroli
UnixMan ha scritto:antonellocaroli ha scritto:Caio paolo,
Sempronio Antonello,

( scusa

)
Caio Paolo, suona bene peró....
comunque avevi ragione era un problema della versione di mpd...

grazie!!!
MPD con soxr via LD_PRELOAD!
Inviato: 27 ott 2013, 15:44
da UnixMan
Ciao a tutti,
big news!
come accennavo, recentemente è stata sviluppata una libreria,
libsoxr, che contiene gli algoritmi di resampling di sox. Oltre ad una sua interfaccia (
API) "nativa", che permette di sfruttarne a pieno tutte le possibilità, è stata creata anche una seconda interfaccia (libsoxr-lsr), compatibile con quella della (attualmente più diffusa)
libsamplerate.
Questo non è utile solo per gli sviluppatori, che in questo modo hanno un modo per utilizzare libsoxr in alternativa (o in aggiunta) a libsamplerate con minimo sforzo (senza modifiche o con modifiche banali al codice esistente), ma anche per gli utenti finali. Infatti Linux (in effetti il suo
linker dinamico) prevede un meccanismo che permette di "sostituire" facilmente una libreria (dinamica) con un'altra (compatibile, cioè con la stessa API) semplicemente settando una variabile di ambiente (LD_PRELOAD) prima di avviare un eseguibile, oppure a livello globale attraverso il file di configurazione "/etc/ld.so.preload".
Questo fornisce un semplice modo "quick and dirty" per poter utilizzare libsoxr-lsr al posto di libsamplerate in tutti i programmi che fanno uso di quest'ultima. Incluso quindi MPD!
In pratica, la cosa è banale. Su Debian (e Voyage) si tratta di installare due pacchetti (libsoxr-lsr0 e libsoxr0) e fare delle semplici modifiche in due files di configurazione (/etc/ld.so.preload e /etc/mpd.conf).
L'unica piccola difficoltà risiede nel fatto che
soxr è "entrata" da poco in Debian e quindi non è inclusa nella attuale versione "stable" (AKA Wheezy) e neanche in Voyage, ma solo in "unstable" (AKA "Sid") e "testing". Per fortuna soxr ha pochissime dipendenze e, almeno nella versione attuale, queste sono soddisfacibili anche con quanto disponibile in wheezy:
http://packages.debian.org/jessie/libsoxr0/
http://packages.debian.org/jessie/libsoxr-lsr0/
Quindi si tratta semplicemente di scaricarli e poi installarli a mano con dpkg:
Codice: Seleziona tutto
mkdir soxr
cd soxr
wget http://ftp.it.debian.org/debian/pool/main/libs/libsoxr/libsoxr0_0.1.1-1_i386.deb
wget http://ftp.it.debian.org/debian/pool/main/libs/libsoxr/libsoxr-lsr0_0.1.1-1_i386.deb
dpkg -i *.deb
(sostituite "i386" con "amd64" se avete installato un sistema a 64bit).
A questo punto editate il file /etc/ld.so.preload (createlo se non esiste) e scriveteci dentro una riga che contiene il percorso (pathname) completo del file che contiene la libreria libsoxr-lsr. Ad es., attualmente nel mio sistema è:
Quindi editate il file /etc/mpd.conf, aggiungendo/modificando l'opzione "samplerate_converter" come segue:
Codice: Seleziona tutto
# To be used with libsoxr-lsr (via LD_PRELOAD)
#
#samplerate_converter "LSR best sinc"
#samplerate_converter "LSR medium sinc"
#samplerate_converter "LSR fastest sinc"
#samplerate_converter "LSR ZOH"
#samplerate_converter "LSR linear"
samplerate_converter "SoX VHQ"
A questo punto non vi resta che riavviare il processo di MPD:
ed il gioco è fatto!
Dal punto di vista della qualità all'ascolto al momento non voglio esprimermi. Provate e riportate le vostre impressioni.
Da quello dell'utilizzo di risorse il risultato invece è a dir poco strabiliante: nel mio sistema, MPD con soxr in preload e resample in modalità "SOX VHQ" usa appena il 2% circa di CPU, contro oltre il 40% (di un core) utilizzando libsamplerate in modalità "Best Sync"!
Un po' di link e riferimenti vari:
http://sourceforge.net/p/soxr/code/ci/m ... ree/README
http://blog.ivitera.com/pavel/linux-aud ... ld_preload
http://www.diyaudio.com/forums/pc-based ... ost3641134
http://www.diyaudio.com/forums/pc-based ... ost3646816
http://www.computeraudiophile.com/f10-m ... ndex3.html
http://www.hydrogenaudio.org/forums/ind ... t&p=817595
http://mailman.alsa-project.org/piperma ... 66764.html
http://audacity.238276.n2.nabble.com/So ... 44i20.html
Re: MPD (Music Player Daemon)
Inviato: 28 ott 2013, 11:56
da sontero
Molto interessante Paolo ,ottima notizia . La provo sicuramente e poi riferisco (appena rientro in possesso del mio music server).
Grazie
Re: MPD (Music Player Daemon)
Inviato: 28 ott 2013, 17:33
da antonellocaroli
Bella notizia!!!
Paolo io ho provato seguendo le tue indicazioni ma non va...
questo il log:
Codice: Seleziona tutto
Oct 28 18:25 : Failed to open mixer for 'upsample': no such mixer control: PCM
Oct 28 18:25 : avahi: Service 'Voyage Music Player' successfully established.
Oct 28 18:26 : mixer: Failed to read mixer for 'upsample': no such mixer control: PCM
Oct 28 18:28 : Failed to open mixer for 'upsample': no such mixer control: PCM
Oct 28 18:30 : avahi: Service 'Voyage Music Player' successfully established.
Oct 28 18:31 : mixer: Failed to read mixer for 'upsample': no such mixer control: PCM
Re: MPD (Music Player Daemon)
Inviato: 28 ott 2013, 18:37
da UnixMan
antonellocaroli ha scritto:Paolo io ho provato seguendo le tue indicazioni ma non va...
apparentemente quell'errore non dovrebbe avere nulla a che vedere con l'uso di libsoxr. Fermo restando tutto il resto, senza libsoxr-lsr0 in /etc/ld.so.preload ti funziona?!
Prova a vedere come hai configurato l'uscita audio. Per sicurezza, mandala direttamente ad un device "raw" (hw:x,y o plughw:x,y) e disabilita i controlli di volume di MPD (presumibilmente sono solo quelli che tentano di usare il mixer del device audio di uscita).
In allegato la versione aggiornata di mpd.conf (con anche la parte RT per la versione 0.18.0git20130624-1 da Voyage experimental; lo sto usando con un kernel RT preso da bpo).
mpd.conf
Re: MPD (Music Player Daemon)
Inviato: 28 ott 2013, 19:22
da antonellocaroli
Caio Paolo,
avevo risolto il problema delle radio in streaming (nome artista e titolo) con una versione di mpd scaricata da i repositari di debian (mpd_0.16.7-2_i386.deb), ma a quanto pare questa versione non digerisce quanto scritto in /etc/ld.so.preload,
in quanto commentanto la riga in questione torna a funzionare.
Ho provato a installare la versione di mpd che ho postato anche nel tread Voyage mpd RT e con questa funziona il tutto, a parte la conoscenza della song quando suona una radio in streaming...

a quanto pare non si puó avere tutto dalla vita.
Re: MPD (Music Player Daemon)
Inviato: 29 ott 2013, 18:41
da samhorn
Salve, ho fatto tutta la procedura per inoculare le libsox ma alla partenza si blocca quando carica le librerie, togliendo il percorso dentro il file Ld.so.preload tutto torna come prima... Ho controllato e il file che richiama è proprio in quella posizione, quindi escluderei errori di battitura... Ho visto che nella cartella esiste un altro file con nome simile potresti postare proprio il tuo file ld.so.preload?
Re: MPD (Music Player Daemon)
Inviato: 29 ott 2013, 19:04
da UnixMan
Devi mettere il nome esatto della libreria di compatibilità, con la versione completa (libsoxr-lsr.so.0.1.9). L'altro che vedi (libsoxr-lsr.so.0) è solo un link simbolico allo stesso file, che però non può essere usato per il preload:
Codice: Seleziona tutto
$ ls -lahF /usr/lib/i386-linux-gnu/libsoxr*
lrwxrwxrwx 1 root root 20 Apr 5 2013 /usr/lib/i386-linux-gnu/libsoxr-lsr.so.0 -> libsoxr-lsr.so.0.1.9
-rw-r--r-- 1 root root 9.4K Apr 5 2013 /usr/lib/i386-linux-gnu/libsoxr-lsr.so.0.1.9
lrwxrwxrwx 1 root root 16 Apr 5 2013 /usr/lib/i386-linux-gnu/libsoxr.so.0 -> libsoxr.so.0.1.0
-rw-r--r-- 1 root root 194K Apr 5 2013 /usr/lib/i386-linux-gnu/libsoxr.so.0.1.0
Comunque, il file è questo:
ld.so.preload.txt
Attenzione che devi cambiare anche "samplerate_converter" in /etc/mpd.conf come indicato, altrimenti MPD non funziona! (non parte proprio, da errore).
Che versione di MPD usi?
Re: MPD (Music Player Daemon)
Inviato: 30 ott 2013, 00:01
da sontero
UnixMan ha scritto:Devi mettere il nome esatto della libreria di compatibilità, con la versione completa (libsoxr-lsr.so.0.1.9). L'altro che vedi (libsoxr-lsr.so.0) è solo un link simbolico allo stesso file, che però non può essere usato per il preload:
Codice: Seleziona tutto
$ ls -lahF /usr/lib/i386-linux-gnu/libsoxr*
lrwxrwxrwx 1 root root 20 Apr 5 2013 /usr/lib/i386-linux-gnu/libsoxr-lsr.so.0 -> libsoxr-lsr.so.0.1.9
-rw-r--r-- 1 root root 9.4K Apr 5 2013 /usr/lib/i386-linux-gnu/libsoxr-lsr.so.0.1.9
lrwxrwxrwx 1 root root 16 Apr 5 2013 /usr/lib/i386-linux-gnu/libsoxr.so.0 -> libsoxr.so.0.1.0
-rw-r--r-- 1 root root 194K Apr 5 2013 /usr/lib/i386-linux-gnu/libsoxr.so.0.1.0
Comunque, il file è questo:
ld.so.preload.txt
Attenzione che devi cambiare anche "samplerate_converter" in /etc/mpd.conf come indicato, altrimenti MPD non funziona! (non parte proprio, da errore).
Che versione di MPD usi?
Paolo ho eseguito l'installazione come da te indicata e ho creato il file " ld.so.preload " scrivendo il path indicato .
Prima di creare il file con nano avevo eseguito " ls -lahF /usr/lib/i386-linux-gnu/libsoxr* " e il risultato era identico a quello da te postato
Volevo modificare anche "mpd.conf " ma il
sistema è andato in crash e non si avviava piu' . Ho dovuto reinstallare Voyage .
Il kernel era quello "liscio" di default con MPD 0.17.0.
Che diamine è successo ?? Sono il solito sfigato o il solito asino....
Re: MPD (Music Player Daemon)
Inviato: 30 ott 2013, 00:37
da samhorn
Questo è quello che è successo anche a me, io però non ho reinstallato, è bastato togliere la riga dal file Ld.so.preload e tutto è ripartito... ( ho staccato l'hd e collegato su un altro pc)
Anch'io avevo voyage mpd 091 liscio...
Re: MPD (Music Player Daemon)
Inviato: 30 ott 2013, 08:12
da UnixMan
sontero ha scritto:Volevo modificare anche "mpd.conf " ma il sistema è andato in crash e non si avviava piu'. Ho dovuto reinstallare Voyage .
Il kernel era quello "liscio" di default con MPD 0.17.0.
Che diamine è successo ?? Sono il solito sfigato o il solito asino....
nel dettaglio, così a distanza non posso dirlo. Certamente il meccanismo del "preload" è potenzialmente molto pericoloso in quanto "forza" l'uso di una libreria al posto di un'altra e, se questa non è perfettamente compatibile con quella che va a rimpiazzare e con il resto del sistema, può causare problemi grossi.
Però, dato l'uso limitato e specializzato della libreria in questione, è piuttosto strano che tu ti sia ritrovato addirittura con un sistema non più avviabile. In che senso non si avviava più? fin dove arrivava? non è che l'unica cosa a non partire era proprio MPD? (e magari gli script di avvio di Voyage aspettavano inutilmente all'infinito che fosse attivo prima di terminare la sequenza di boot?)
In ogni caso, a questo punto prima di provare a rimettere quella lib in ls.so.preload, ti conviene fare qualche prova a mano, utilizzando la variabile di ambiente LD_PRELOAD, in modo che ciò che fai influenza solo i processi avviati successivamente dalla shell da cui stai lavorando (e non viene mantenuta al reboot).
Re: MPD (Music Player Daemon)
Inviato: 30 ott 2013, 08:57
da antonellocaroli
sontero ha scritto:Paolo ho eseguito l'installazione come da te indicata e ho creato il file " ld.so.preload " scrivendo il path indicato .
Prima di creare il file con nano avevo eseguito " ls -lahF /usr/lib/i386-linux-gnu/libsoxr* " e il risultato era identico a quello da te postato
Volevo modificare anche "mpd.conf " ma il
sistema è andato in crash e non si avviava piu' . Ho dovuto reinstallare Voyage .
Il kernel era quello "liscio" di default con MPD 0.17.0.
Che diamine è successo ?? Sono il solito sfigato o il solito asino....
Sembra strano,
a me andava in crash mpd 0.16 (ma solo mpd il sistema funzionava)
poi ho provato sia con mpd standard di voyage che con la versione per rt,
funziona con tutte e due!
Re: MPD (Music Player Daemon)
Inviato: 30 ott 2013, 09:56
da sontero
Però, dato l'uso limitato e specializzato della libreria in questione, è piuttosto strano che tu ti sia ritrovato addirittura con un sistema non più avviabile. In che senso non si avviava più? fin dove arrivava? non è che l'unica cosa a non partire era proprio MPD? (e magari gli script di avvio di Voyage aspettavano inutilmente all'infinito che fosse attivo prima di terminare la sequenza di boot?)
Il sistema si avviava per poi incantarsi sempre nello stesso punto, mi pare di ricordare proprio perchè non poteva far partire MPD.
In ogni caso, a questo punto prima di provare a rimettere quella lib in ls.so.preload, ti conviene fare qualche prova a mano, utilizzando la variabile di ambiente LD_PRELOAD, in modo che ciò che fai influenza solo i processi avviati successivamente dalla shell da cui stai lavorando (e non viene mantenuta al reboot).
Ci provo . Mi dovresti dire come avvio la variabile LD_PRELOAD .
Intanto ti dico che subito dopo aver creato il file " ls.so.preload ", con dentro il path richiesto, MPD non si avviava piu', ne' nessun altro comando: ecco perchè non ho potuto
modificare il "mpd.conf" ne' fare alcunchè di altro se non tentare un riavvio (non eseguiva neppure "reboot").
Quindi, se ho capito qualcosa, prima avvio la variabile d'ambiente LD_PRELOAD poi installo le librerie e quindi modifico mpd.conf senza creare il file ls.so.preload .
Confermi ?
Re: MPD (Music Player Daemon)
Inviato: 30 ott 2013, 15:56
da UnixMan
sontero ha scritto: Il sistema si avviava per poi incantarsi sempre nello stesso punto, mi pare di ricordare proprio perchè non poteva far partire MPD.
ok, questo è normale. Dato che il nome delle diverse "modalità" di resampling cambia tra una libreria e l'altra, se non modifichi la sua configurazione MPD non parte.
Tieni conto che anche se MPD non parte, arrivati a quel punto il sistema è già avviato completamente o quasi. Anche se sulla prima console virtuale non arriva a mostrarti il prompt di login, le altre dovrebbero essere già attive e quindi dovresti essere in grado di accedere attraverso una di quelle. Se ti dovesse ricapitare, prova ad usare la combinazione di tasti Alt+Fn (Il tasto "Alt" di sinistra premuto insieme ad uno dei tasti funzione in alto, da F1 ad F12) per cambiare console virtuale. Di solito in corrispondenza ai primi 5 tasti funzione sono attivate altrettante console virtuali con prompt di login.
P.S.: ovviamente, le diverse console virtuali le puoi usare ogni volta che vuoi, non solo se/quando per qualche motivo non puoi accedere alla prima. Ed altrettanto ovviamente non c'è motivo di limitarsi ad usare un solo terminale alla volta. Puoi anche installare "
gpm" (
altre info) per avere il supporto del mouse (incluso il "copia-incolla") in console.
sontero ha scritto:Ci provo . Mi dovresti dire come avvio la variabile LD_PRELOAD.
la variabile di ambiente si setta con questo comando:
Codice: Seleziona tutto
export LD_PRELOAD=/usr/lib/i386-linux-gnu/libsoxr-lsr.so.0.1.9
che va dato nella shell da cui poi avvierai (a mano) /usr/bin/mpd, dopo aver fermato il servizio (mpd) avviato automaticamente al boot. Dato che però mpd viene fatto girare da un utente diverso (user mpd, gruppo audio) e devi anche passargli una serie di parametri da riga di comando, la cosa richiede un minimo di dimestichezza. Se non sei pratico, forse è meglio evitare. Ti conviene piuttosto riprovare nell'altro modo, che è più semplice, avendo cura di
NON riavviare Voyage finché non sei riuscito a far funzionare tutto!
(ricorda che Linux NON è come windows, che richiede un riavvio ad ogni pie' sospinto: tranne nel caso in cui vuoi/devi caricare un kernel diverso da quello che sta girando, con Linux un reboot non è praticamente mai necessario... e di solito non è neanche utile).
Per prima cosa installa le librerie, poi modifica il file /etc/mpd.conf, quindi crea il file /etc/ld.so.preload ed infine riavvia -soltanto- il servizio mpd, così:
quindi verifica che mpd sia effettivamente ripartito senza errori:
Re: MPD (Music Player Daemon)
Inviato: 30 ott 2013, 16:32
da sontero
ok! Paolo . Molto chiaro . Ci potro' provare forse domani
Re: MPD (Music Player Daemon)
Inviato: 30 ott 2013, 18:03
da samhorn
Riprovato con attenzione, spento mpd, librerie gia installate in precedenza, editato file e poi senza far nulla prima di editare mpd.conf mi dice:
root@voyage:~# nano /etc/mpd.conf
nano: error while loading shared libraries: libgomp.so.1: cannot open shared object file: No such file or directory
root@voyage:~# nano /etc/ld.so.preload
nano: error while loading shared libraries: libgomp.so.1: cannot open shared object file: No such file or directory
root@voyage:~#
Che faccio? Non oso riavviare, so gia che poi dovrei staccare hd e cancellare ld.so.preload
Ma come può far questo senza lanciare niente, solo editando un file?
Re: MPD (Music Player Daemon)
Inviato: 30 ott 2013, 18:55
da UnixMan
Re: MPD (Music Player Daemon)
Inviato: 30 ott 2013, 20:17
da UnixMan
samhorn ha scritto:root@voyage:~# nano /etc/mpd.conf
nano: error while loading shared libraries: libgomp.so.1: cannot open shared object file: No such file or directory
ah!
hai installato le librerie soxr a mano... con (almeno) una delle sue dipendenze non soddisfatte! non hai notato un messaggio di errore di dpkg?
samhorn ha scritto:Che faccio? Non oso riavviare, so gia che poi dovrei staccare hd e cancellare ld.so.preload
Ma come può far questo senza lanciare niente, solo editando un file?
non per caso si chiama "preload"...

quella libreria (libsoxr-lsr) viene (sempre) pre-caricata dal linker dinamico
prima di qualsiasi altra libreria.
http://rafalcieslak.wordpress.com/2013/ ... -programs/
http://man7.org/linux/man-pages/man8/ld.so.8.html
Ma quella libreria (libsoxr-lsr) a sua volta utilizza (ha bisogno di) altre librerie:
Codice: Seleziona tutto
$ ldd /usr/lib/i386-linux-gnu/libsoxr-lsr.so.0.1.9
linux-gate.so.1 (0xb779f000)
libm.so.6 => /lib/i386-linux-gnu/i686/cmov/libm.so.6 (0xb7732000)
libsoxr.so.0 => /usr/lib/i386-linux-gnu/libsoxr.so.0 (0xb76f2000)
libgomp.so.1 => /usr/lib/i386-linux-gnu/libgomp.so.1 (0xb76e1000)
libpthread.so.0 => /lib/i386-linux-gnu/i686/cmov/libpthread.so.0 (0xb76c6000)
libc.so.6 => /lib/i386-linux-gnu/i686/cmov/libc.so.6 (0xb7517000)
/lib/ld-linux.so.2 (0xb77a0000)
librt.so.1 => /lib/i386-linux-gnu/i686/cmov/librt.so.1 (0xb750e000)
almeno una delle quali (libgomp.so.1) NON è installata nel tuo sistema (di sicuro dpkg te lo aveva detto... con Linux non si deve MAI ignorare un messaggio di errore!)
A quel punto quando il linker dinamico (ld) prova a "linkare" la libsoxr-lsr stessa (per pre-caricarla) non trova una delle librerie richieste e quindi fallisce con quell'errore. Con la conseguenza che
qualsiasi programma che faccia uso di librerie dinamiche non può più essere eseguito. Poiché praticamente tutti i programmi (inclusa la gran parte dei tool di sistema, tranne pochissime eccezioni) usano le librerie dinamiche... non funziona più nulla.
È uno dei motivi per cui dicevo che il preload (specie se generalizzato) è uno strumento molto utile e potente ma anche molto "pericoloso"...

Boom!
La cosa più semplice per rimediare è eliminare il preload, cancellando o rinominando il file come indicato nel post precedente (lo puoi ancora fare solo perché la shell è stata avviata
prima di quando hai creato il preload, altrimenti...) e quindi dare il comando:
questo dovrebbe correggere l'errore installando automaticamente il pacchetto/i della/e librerie mancante/i.
Da "man apt-get":
-f, --fix-broken
Fix; attempt to correct a system with broken dependencies in place. This option,
when used with install/remove, can omit any packages to permit APT to deduce a
likely solution. If packages are specified, these have to completely correct the
problem. The option is sometimes necessary when running APT for the first time; APT
itself does not allow broken package dependencies to exist on a system. It is
possible that a system's dependency structure can be so corrupt as to require manual
intervention (which usually means using dselect(1) or dpkg --remove to eliminate
some of the offending packages). Use of this option together with -m may produce an
error in some situations. Configuration Item: APT::Get::Fix-Broken.
Re: MPD (Music Player Daemon)
Inviato: 30 ott 2013, 21:23
da UnixMan
Comincio a pensare che l'uso del preload generalizzato sia decisamente troppo pericoloso, specie per utenti inesperti. Oltre tutto in questo caso non è affatto necessario (e potrebbe anche essere controproducente).
Di conseguenza vi suggerisco un'altra alternativa, altrettanto efficace ma decisamente più sicura: anziché creare/editare il file ld.so.preload, editate invece il file "
/etc/default/mpd" (che è uno script "di configurazione" che viene "incluso" in quello che avvia automaticamente mpd al boot,
/etc/init.d/mpd).
In fondo al file
/etc/default/mpd aggiungete una riga come questa:
Codice: Seleziona tutto
## Use libsoxr-lsr instead of libsamplerate for resampling (via ld preload)
#
export LD_PRELOAD=/usr/lib/i386-linux-gnu/libsoxr-lsr.so.0.1.9
(l'ultima riga, il resto è solo un commento che potete anche omettere).
Et voilà, il gioco è fatto. Il preload viene eseguito esclusivamente per i programmi avviati dallo script del servizio mpd (cioè in sostanza solo per mpd). Se qualcosa va storto il resto del sistema non ne risente: alla peggio non vi funziona soltanto mpd. In questo modo non rischiate di compromettere l'intero sistema e trovarvi nei pasticci. Scusate se non ci ho pensato prima.
P.S.: è possibile che, se aggiornate il pacchetto di mpd, apt/dpkg voglia sostituire il vostro file /etc/default/mpd con una "nuova" versione contenuta nel pacchetto. In tal caso verificate le differenze tra il vostro file attuale e quello nuovo e valutate quindi se sia il caso di installare la nuova versione oppure mantenere quella vecchia. È possibile (e probabile) che la "nuova" versione del file in realtà sia identica a quella vecchia tranne che per la mancanza della vostra modifica per il preload di libsoxr-lsr (o per qualche altra modifica ininfluente, come ad es. un commento diverso). In tal caso dite pure al package manager di lasciare la vecchia versione al suo posto e non dovete fare altro.
Se al contrario ci dovessero essere differenze significative, ditegli di installare la nuova versione. Ovviamente, al termine dell'installazione del pacchetto dovete ricordarvi di aggiungere nuovamente la riga per il preload. N.B.: il vecchio file non sarà eliminato ma solo rinominato e lasciato nella stessa directory, per cui potrete utilizzarlo come riferimento. Potete anche comodamente "appenderlo" a quello nuovo (con il comando "cat vecchio_file >> nuovo_file") prima di editare il file, così che poi dovrete solo cancellare le linee estranee o duplicate provenienti dal file vecchio (lasciando ovviamente al loro posto quelle relative al preload) senza dover riscrivere nulla.
Questa piccola seccatura in caso di aggiornamenti del pacchetto di mpd è praticamente l'unico inconveniente di questo metodo, che mi sento di raccomandare caldamente rispetto a quelle precedentemente suggerito.
Re: MPD (Music Player Daemon)
Inviato: 30 ott 2013, 22:34
da sontero
Paolo forse hai avuto un po' di fretta a elargire questa novita' .
per conto mio visto che ci offri un rimedio non ti mandero' i Carabinieri a casa
Te la stai cavando a buon mercato .....

Re: MPD (Music Player Daemon)
Inviato: 30 ott 2013, 22:59
da samhorn
RISOLTO! era proprio una dipendenza... Hai ragione mai non leggere quello che da terminale linux dice! non è mai per nulla... La ridondanza di stupidaggini che win dice agli utenti da anni ormai mi ha abituato a non leggere e andare avanti...
Comunque consiglio anche agli altri che hanno voyage mpd di installare la dipendenza con
Apt-get install libgomp1
Prima di lanciare il comando
dpkg -i *.deb
Poi si edita il file ld.so.preload e mpd.conf come sopra descritto
Infine riavviare mpd e tutto funziona! cpu al 4% su un vecchio laptop del d600 (intel centrino mobile 1.6 ghz)
Re: MPD (Music Player Daemon)
Inviato: 30 ott 2013, 23:23
da UnixMan
Ottimo
Fatemi sapere le vostre impressioni di ascolto rispetto alle altre alternative...
Re: MPD (Music Player Daemon)
Inviato: 31 ott 2013, 01:15
da sontero
bene samhorn .....e dicci anche il tuo parere
Re: MPD (Music Player Daemon)
Inviato: 31 ott 2013, 15:03
da sontero
rifatta la procedura :
stop mpd -->installato libgomp1 -->installato libsoxr-lsr0--> creato il file /etc/ld.so.preload --> modificato mpd.conf
restart mpd ---> funziona mpd e il kernel .
Tutto cio' sul kernel RT . Primi ascolti mi pare molto buoni ma devo avere un po' piu' di tempo
mi sembra pero' che il suono sia piu' raffinato forse un tantino piu' leggero nel registro medio-basso, comunque non
sostanzialmente differente dalla versione "normale" in ambiente RT. Ci vuole un altro po' di tempo
Re: MPD (Music Player Daemon)
Inviato: 31 ott 2013, 15:11
da antonellocaroli
sontero ha scritto:rifatta la procedura :
stop mpd -->installato libgomp1 -->installato libsoxr-lsr0--> creato il file /etc/ld.so.preload --> modificato mpd.conf
restart mpd ---> funziona mpd e il kernel .
Tutto cio' sul kernel RT . Primi ascolti mi pare molto buoni ma devo avere un po' piu' di tempo
mi sembra pero' che il suono sia piu' raffinato forse un tantino piu' leggero nel registro medio-basso, comunque non
sostanzialmente differente dalla versione "normale" in ambiente RT. Ci vuole un altro po' di tempo
CIao Giovanni,
cosa intendi con versione "normale" ?
resempler con sox (come visto qui in post precedenti) o con resempler interno di mpd?
Re: MPD (Music Player Daemon)
Inviato: 31 ott 2013, 18:17
da sontero
antonellocaroli ha scritto:
CIao Giovanni,
cosa intendi con versione "normale" ?
resempler con sox (come visto qui in post precedenti) o con resempler interno di mpd?
Beh intendo con il "nuovo" resampler interno , non stiamo parlando di questo?
Il mpd.conf recita:
Codice: Seleziona tutto
# This setting will change all decoded audio to be converted to the specified
# format before being passed to the audio outputs. By default, this setting is
# disabled.
#
#audio_output_format "44100:16:2"
#audio_output_format "*:32:2"
#
# If MPD has been compiled with libsamplerate support, this setting specifies
# the sample rate converter to use. Possible values can be found in the
# mpd.conf man page or the libsamplerate documentation. By default, this is
# setting is disabled.
#
#samplerate_converter "internal" # fast, poor quality
#samplerate_converter "Linear Interpolator" # fast
#samplerate_converter "Fastest Sinc Interpolator"
#samplerate_converter "Medium Sinc Interpolator"
#samplerate_converter "Best Sinc Interpolator"
questa non è piu' in corso
mentre questa lo è :
Codice: Seleziona tutto
# To be used with libsoxr-lsr (via LD_PRELOAD)
#samplerate_converter "LSR best sinc"
#samplerate_converter "LSR medium sinc"
#samplerate_converter "LSR fastest sinc"
#samplerate_converter "LSR ZOH"
#samplerate_converter "LSR linear"
samplerate_converter "SoX VHQ"
Re: MPD (Music Player Daemon)
Inviato: 31 ott 2013, 21:34
da UnixMan
Prima cosa usavi, "Best Sinc Interpolator"?
Re: MPD (Music Player Daemon)
Inviato: 31 ott 2013, 21:57
da sontero
UnixMan ha scritto:Prima cosa usavi, "Best Sinc Interpolator"?
Si
Re: MPD (Music Player Daemon)
Inviato: 03 nov 2013, 12:20
da sontero
Avevo detto che sarei tornato a riferire sul nuovo resampler . Ho avuto un po' di tempo e calma e quindi, in breve per quanto mi riguarda
e non ho dubbi, il salto qualitativo c'è ed è rilevante : il parametro forse piu' evidente e' la capacita' dinamica,il messaggio è restituito con un "respiro"
notevolissimo. Per il resto confermo che la raffinatezza è sensibilmente aumentata e tutti quei parametri di cui sempre si disquisisce sono tutti a posto.
Avevo scritto di registro medi-basso "alleggerito". Rinnego quella affermazione . E' tutto a posto.
Ho avuto modo anche recentissimamente di apprezzare la qualita' del sistema Cmp2 proprio a casa del mio caro amico Audiodan che da ultimo a
messo mano al suo DAC con splendidi risultati :
http://www.nexthardware.com/forum/cmp2- ... cigno.html
Ebbene io non voglio fare confronti ma per quanto mi riguarda il mio sistema con VoyageMPD "ultima edizione" con kernel RT e libreria libsoxr
se non è allo stesso livello poco ci manca . Non riuscivo a smettere di ascoltare brani uno dietro l'altro con grande gusto . Mi pare che cio' sia
poi quello che conta.
Attendo altri pareri e mi interessa molto anche quello di Paolo "Unix".
Grazie Paolo per questo contributo

e grazie con complimenti agli sviluppatori : hanno fatto un ottimo lavoro.

Re: MPD (Music Player Daemon)
Inviato: 05 nov 2013, 15:46
da UnixMan
sontero ha scritto:E' tutto a posto.
ottimo!
sontero ha scritto:Ho avuto modo anche recentissimamente di apprezzare la qualita' del sistema Cmp2 proprio a casa del mio caro amico Audiodan
sarebbe interessante fare qualche confronto diretto, tipo provare il tuo sistema Linux a casa sua (con la sua catena) nonché far girare un sistema come il tuo sulle sue macchine "cMP"...
sontero ha scritto:Attendo altri pareri e mi interessa molto anche quello di Paolo "Unix".
...direi che sono abbastanza in linea con i tuoi.

Re: MPD (Music Player Daemon)
Inviato: 05 nov 2013, 17:20
da sontero
UnixMan ha scritto:
sarebbe interessante fare qualche confronto diretto, tipo provare il tuo sistema Linux a casa sua (con la sua catena) nonché far girare un sistema come il tuo sulle sue macchine "cMP"... 
Sarebbe anche facile :porto il thin client+il suo ali Mael modificato e lo attacchiamo al suo dac Asus One con un cavo usb .
Io invece potrei provare il suo "sughetto" portatile(si fa' per dire).
...direi che sono abbastanza in linea con i tuoi.

Molto bene .
Speriamo si faccia sentire qualcun'altro...compreso
MiClaud che vedo molto attivo.
Re: MPD (Music Player Daemon)
Inviato: 07 nov 2013, 22:55
da Miclaud
sontero ha scritto:
Molto bene .
Speriamo si faccia sentire qualcun'altro...compreso MiClaud che vedo molto attivo.
Heheheh, datemi tempo che arrivo!
E' da diverso tempo che sto dietro alle tematiche della cura della sorgente PC, sin dai tempi del CMP2 su Nexthardware, ma ultimamente ho dovuto lasciare indietro un po' le cose per i troppi impegni. Ora sto ripartendo e per nostra fortuna c'è UnixMan, che già avevo "inquadrato" in questo forum (

) che ci facilita di molto il lavoro. Complimenti per il tuo sforzo di ricerca, davvero!
Detto ciò, ho appena installato libsoxr e configurato l'upsampling. In effetti il Geode riesce a reggere anche 192000:32:2 , cosa impensabile con gli altri algoritmi!
Al di là delle considerazioni sul suono, per il quale non voglio ancora sbilanciarmi, devo dire che questo mi riesce solo se non imposto la massima priorità per la sezione "audio_output", altrimenti il suono diventa un disastro, con continui click e interruzioni. Il bello è che questo accade anche con la CPU al di sotto del 100% di occupazione, quindi presumo sia qualche problema di svuotamento precoce di buffer vari...
Vi mostro la mia attuale configurazione mpd.conf:
Codice: Seleziona tutto
music_directory "/media/music"
playlist_directory "/media/music/mpd/playlists"
db_file "/media/music/mpd/tag_cache"
log_file "/var/log/mpd/mpd.log"
pid_file "/var/run/mpd/pid"
state_file "/var/lib/mpd/state"
sticker_file "/var/lib/mpd/sticker.sql"
user "mpd"
input {
plugin "curl"
}
filesystem_charset "UTF-8"
id3v1_encoding "UTF-8"
follow_outside_symlinks "yes"
follow_inside_symlinks "yes"
zeroconf_enabled "yes"
zeroconf_name "Voyage Music Player"
mixer_type "disabled"
bind_to_address "0.0.0.0"
realtime_option {
memlock "yes"
stack_reserve "1024"
heap_reserve "0"
main_priority "OTHER:0"
player_priority "FIFO:49"
decoder_priority "FIFO:48"
update_priority "OTHER:0"
}
audio_output {
type "alsa"
name "XMOS WaveIO (Sox)"
device "hw:0,0"
priority "FIFO:47"
auto_resample "yes"
format "192000:32:2"
use_mmap "yes"
}
Se aumento la priorità dell' "audio_output" a 52, quindi superiore a tutti gli altri thread (sbaglio?), il suono diventa frammentario e inascoltabile, anche giocando con i buffer o diminuendo l'upsampling a 48000:16:2
Che ne dite?
Re: MPD (Music Player Daemon)
Inviato: 08 nov 2013, 15:36
da UnixMan
Miclaud ha scritto:Al di là delle considerazioni sul suono, per il quale non voglio ancora sbilanciarmi, devo dire che questo mi riesce solo se non imposto la massima priorità per la sezione "audio_output", altrimenti il suono diventa un disastro, con continui click e interruzioni.
le priorità "RT" sono una cosa piuttosto delicata, spesso non banale da gestire, in quanto un processo con priorità più alta può interrompere in qualsiasi momento l'esecuzione di quelli a priorità più bassa. Non dimenticare che in questo caso abbiamo una catena di processi (e/o thread) che dipendono l'uno dall'altro: se dai troppa priorità ad uno, rischi che poi gli altri non ce la fanno a tenere il passo...
Sarebbe il caso di documentarsi (al limite, se non si trova altra documentazione scritta, direttamente presso gli sviluppatori di MPD) per capire come andrebbero configurati in maniera ottimale quei parametri.
A naso, presumo che i processi coinvolti nella catena di lettura dovrebbero avere tutti la stessa priorità, forse al più con una minima prevalenza di quelli più vicini all'uscita rispetto ai precedenti. O forse viceversa...

Re: MPD (Music Player Daemon)
Inviato: 11 nov 2013, 13:12
da antonellocaroli
Ciao,
qualcuno sa come patchare manualmente MPD con l opzione RT?
Il perché di questa domanda?
perché la versioneprecompilata presa da
http://www.voyage.hk/dists/experimental/mpd/
Ha alcuni bug...tipo i tag che non escono quando si ascolda una radio in streaming...
mi sono compilato l´ultima versione di mpd presa da
http://www.musicpd.org/ ma chiaramente non funziona con l´opzione RT.
Re: MPD (Music Player Daemon)
Inviato: 11 nov 2013, 16:27
da UnixMan
Prova a scaricare la versione di sviluppo dal repository git...
http://git.musicpd.org/cgit/master/mpd.git/
Re: MPD (Music Player Daemon)
Inviato: 11 nov 2013, 20:06
da antonellocaroli
Grazie Unix,
ma non credo che quella versione supporti l´opzione real time nell´mpd.conf...

Re: MPD (Music Player Daemon)
Inviato: 11 nov 2013, 22:20
da UnixMan
antonellocaroli ha scritto:ma non credo che quella versione supporti l´opzione real time nell´mpd.conf...

perché non dovrebbe? non è l'ultima versione stabile, è il repository di sviluppo. Dove c'è il codice aggiornato istante per istante. Ho fatto un "grep" al volo per le variabili relative, e mi pare che ci sono. Comunque, se non è li, di sicuro è in qualche altro branch di git...
Re: MPD (Music Player Daemon)
Inviato: 11 nov 2013, 23:31
da antonellocaroli
UnixMan ha scritto:antonellocaroli ha scritto:ma non credo che quella versione supporti l´opzione real time nell´mpd.conf...

perché non dovrebbe? non è l'ultima versione stabile, è il repository di sviluppo. Dove c'è il codice aggiornato istante per istante. Ho fatto un "grep" al volo per le variabili relative, e mi pare che ci sono. Comunque, se non è li, di sicuro è in qualche altro branch di git...
Si Paolo era come pensavo non digerisce l´opzione realtime nell´mpd.conf
cioé questa:
Codice: Seleziona tutto
realtime_option {
memlock "yes"
stack_reserve "1024"
heap_reserve "0"
main_priority "OTHER:0"
player_priority "FIFO:49"
decoder_priority "FIFO:48"
update_priority "OTHER:0"
c é bisogno di una patch come spiega qui :
http://www.symphonic-net.com/kubotayo/a ... uningpatch
oppure i pacchetti giá compilati cosi, che si trovano qua:
http://www.voyage.hk/dists/experimental/mpd/
soltanto che quest ultimi non sono proprio l´ultima versione di mpd (ci sono alcuni bug risolti nelle ultime versioni)
se si trova qualcosa in git non so ma io non ho trovato.
Re: MPD (Music Player Daemon)
Inviato: 12 nov 2013, 00:42
da UnixMan
Ah! Sorry. Credevo che il supporto per quei parametri fosse stato introdotto dagli sviluppatori di mpd, non sapevo che fosse una patch "esterna".
Però nei sorgenti qualcosa a riguardo c'è... devo darci una occhiata.
Leggendo il sito che hai indicato, se il pacchetto è stato fatto seguendo le loro indicazioni per la configurazione, appare evidente perché non ti funzionano le radio: non hanno abilitato quasi nulla tranne le funzionalità più essenziali...
Re: MPD (Music Player Daemon)
Inviato: 12 nov 2013, 10:28
da antonellocaroli
UnixMan ha scritto:Ah! Sorry. Credevo che il supporto per quei parametri fosse stato introdotto dagli sviluppatori di mpd, non sapevo che fosse una patch "esterna".
Però nei sorgenti qualcosa a riguardo c'è... devo farci una occhiata.
Leggendo il sito che hai indicato, se il pacchetto è stato fatto seguendo le loro indicazioni per la configurazione, appare evidente perché non ti funzionano le radio: non hanno abilitato quasi nulla tranne le funzionalità più essenziali...
Ciao Paolo,
io ho problemi con i tag delle radio in streaming con il pacchetto scaricato da qui:
http://www.voyage.hk/dists/experimental/mpd/
che é giá compilato con la patch real time. è assodato che il pacchetto non é compilato con l´ultimissima versione di mpd. Il problema si presenta anche con la versione di default di voyage. Quindi sicuro un problema legato a quella versione.
infatti compilando quello dal sito
http://www.musicpd.org/ e anche quella suggerita da te
il problema sparisce...infatti é un bug corretto!
Solo che cosí non funziona l´opzione RT.
Re: MPD (Music Player Daemon)
Inviato: 12 nov 2013, 11:35
da UnixMan
antonellocaroli ha scritto:Solo che cosí non funziona l´opzione RT.
a questo punto direi che hai due possibilità: devi scaricare la patch RT dal sito che hai indicato e provare ad applicarla all'ultima versione stabile oppure alla versione git attuale. Per la prima opzione se ho visto bene c'è una patch apposita e quindi dovrebbe andare senza problemi, mentre non è detto che l'ultima patch disponibile sia applicabile alla versione git attuale. In alternativa, puoi anche provare con uno dei loro binari precompilati...
edit: ho fatto una prova al volo: la patch "mpd-0.17git-20120819rtopt.diff" non è applicabile alla attuale versione git, sono cambiate troppe cose.
Re: MPD (Music Player Daemon)
Inviato: 12 nov 2013, 12:06
da antonellocaroli
UnixMan ha scritto:antonellocaroli ha scritto:Solo che cosí non funziona l´opzione RT.
a questo punto direi che hai due possibilità: devi scaricare la patch RT dal sito che hai indicato e provare ad applicarla all'ultima versione stabile oppure alla versione git attuale. Per la prima opzione se ho visto bene c'è una patch apposita e quindi dovrebbe andare senza problemi, mentre non è detto che l'ultima patch disponibile sia applicabile alla versione git attuale. In alternativa, puoi anche provare con uno dei loro binari precompilati...
edit: ho fatto una prova al volo: la patch "mpd-0.17git-20120819rtopt.diff" non è applicabile alla attuale versione git, sono cambiate troppe cose.
Si infatti avevo provato anche io un po di tempo fa...e non andava..
e i binari sono troppo vecchi...
quello scritto qui é interessante :
http://www.voyage.hk/dists/experimental ... 86.changes
mi sa che bisogna aspettare che mettano una nuova versione qui:
http://www.voyage.hk/dists/experimental/mpd/
a meno che non ci siano altre patch piú aggiornate in giro
Re: MPD (Music Player Daemon)
Inviato: 17 nov 2013, 11:48
da UnixMan
Un paio di considerazioni a proposito di
scheduling e "
real-time".
La prima e più importante è che, di solito, per default soltanto "root" ha i privilegi necessari per poter assegnare uno scheduling di tipo "real-time" ad uno o più processi/threads. Il motivo di ciò risulta evidente se si ha presente che cosa ciò significhi in realtà. Dato che forse non tutti lo sanno, spendo due parole per provare a spiegarlo in modo semplice.
Oggi siamo talmente abituati ad avere a che fare con sistemi "multitasking" che diamo praticamente per scontato che un computer sia in grado di svolgere un gran numero di compiti diversi "contemporaneamente". Perciò tendiamo a dimenticare che, in realtà, un computer è un sistema strettamente
sequenziale, che cioè fa una sola cosa alla volta, una dopo l'altra, in sequenza (nei sistemi moderni ci può essere un certo grado di parallelismo effettivo grazie alla presenza di sottosistemi hardware ridondanti, ma la sostanza non cambia). Che i diversi compiti siano svolti "contemporaneamente" è fondamentalmente una illusione, dovuta al fatto che il sistema (per la precisione lo
scheduler, che è uno degli elementi essenziali del
kernel) interrompe continuamente l'esecuzione del "task" in corso per eseguirne un altro e così via, in rapida successione (ed ovviamente fa altrettanto anche per poter eseguire sé stesso!). Se la cosa avviene in modo sufficientemente veloce (rispetto alle esigenze specifiche dei compiti che sta svolgendo), agli effetti pratici è come se i vari compiti fossero effettivamente svolti "in parallelo".
È proprio nello scheduler, ovvero nel modo in cui questo decide quando sospendere l'esecuzione di un task per passare ad un altro (ed a quale altro passare), che risiede la differenza tra un sistema "real-time" ed uno che non lo è.
In breve, la differenza sostanziale consiste unicamente nel tempo di attesa tra l'interruzione di un "task" e la sua successiva riattivazione. In generale, tale tempo di attesa è
casuale (dipende dalla velocità e dal "carico" del sistema, ecc) ma, in un sistema real-time, il massimo tempo di attesa deve essere
deterministico. Cioè, in ogni caso, un dato task che ha "priorità" real-time deve tornare ad essere eseguito al più
entro un tempo massimo prefissato.
Ovviamente, dato che le risorse del sistema sono finite, ciò non può che avvenire a spese degli altri task.
Ovvio quindi che, normalmente, in un sistema multiutente non si può permettere che un utente qualsiasi possa "monopolizzare" le risorse del sistema assegnando priorità real-time ad uno (o più) dei propri processi.
Perché un utente normale possa utilizzare la modalità real-time, è quindi necessario che questo (od uno dei gruppi di cui fa parte) sia debitamente autorizzato a farlo.
In caso contrario (a meno di non far girare mpd come utente root, cosa altamente sconsigliata!) utilizzare una versione di MPD con la patch "real-time" (con o senza un kernel "-rt") è perfettamente inutile, in quanto mpd verrà comunque eseguito con scheduling e priorità normali!
Per permettere l'esecuzione di MPD (o di qualsiasi altra cosa...) in modalità real-time, editate i files:
/etc/security/limits.conf
/etc/security/limits.d/audio.conf
ed assicuratevi che, in uno dei due (quale dei due è indifferente), sia presente quanto segue:
Codice: Seleziona tutto
@audio - rtprio 50
#@audio - memlock unlimited
@audio - memlock 1542192
#@audio - nice -19
@audio - nice -10
(in effetti, l'unica linea essenziale è quella relativa al parametro "rtprio". Al solito, quelle che iniziano con il carattere '#' sono inattive in quanto "commenti").
Il significato di tali impostazioni è il seguente:
#Each line describes a limit for a user in the form:
#
#<domain> <type> <item> <value>
#
#Where:
#<domain> can be:
# - an user name
# - a group name, with @group syntax
# [...]
#<item> can be one of the following:
# [...]
# - memlock - max locked-in-memory address space (KB)
# - nice - max nice priority allowed to raise to values: [-20, 19]
# - rtprio - max realtime priority
Una nota a proposito dei kernel "-rt": in realtà, ormai da molto tempo
tutti i kernel Linux "sono real-time", cioè hanno schedulers che supportano le modalità realtime (
RR e FIFO).
La differenza tra le attuali versioni "-rt" rispetto alle altre consiste essenzialmente nel fatto che i kernel "-rt" sono "
fully preemptible", cioè non solo i processi utente, ma anche quelli del kernel stesso possono essere interrotti in favore di un task che gira in modalità real-time (ciò in realtà può accadere anche per i kernel non rt, ma solo per un set più limitato di "task" del kernel stesso). Questo consente di raggiungere l'obbiettivo di ottenere un sistema "hard real-time", cioè con ritardi (latenza) massimi effettivamente (sempre) deterministici. Per contro, con un kernel "-rt" è molto più facile produrre malfunzionamenti o blocchi totali del sistema se si sbaglia ad assegnare scheduling e priorità ai vari task (servizi del kernel inclusi) oppure se c'è un bug in una delle applicazioni che gira in modalità real-time (o peggio nel kernel stesso).
https://rt.wiki.kernel.org/index.php/Fr ... _Questions
http://taipei.freedomhec.org/dlfile/RealTimeLinux.pdf
http://stackoverflow.com/questions/9374 ... g-in-linux
In altre parole, NON è necessario utilizzare un kernel "-RT" per far girare MPD in modalità real-time (sia pure "soft real-time", che di norma però dovrebbe essere più che sufficiente per i nostri scopi).
Parimenti, NON è strettamente necessario utilizzare una versione di MPD con la patch real-time per farlo girare in modalità real-time: per impostare modalità di scheduling e priorità di qualsiasi processo si può infatti utilizzare il comando "
chrt" oppure "
schedtool":
Il vantaggio principale della versione di MPD con la patch RT è che questa permette di controllare facilmente (attraverso il file di configurazione) la modalità di scheduling e la priorità dei vari sottoprocessi.
P.S.: consiglio di installare "
htop" (apt-get install htop) quale utile strumento per monitorare i processi (è un tool simile a "top", ma molto più completo).
P.P.S.: IMHO eviterei di dare ai processi utente (incluso quelli di mpd) priorità RT maggiore di quella dei task RT del kernel stesso (RT=50): la cosa rischia di creare problemi ed essere controproducente...
Inoltre, userei la modalità "RR" piuttosto che quella "FIFO".
Have fun!

Rompr e Mopidy
Inviato: 17 nov 2013, 18:35
da UnixMan
Leggendo qua e la, mi sono imbattuto in questo "Web front-end" per MPD:
http://sourceforge.net/projects/rompr/
che parrebbe un oggetto interessante. Da li poi ho scoperto anche l'esistenza di "Mopidy":
http://www.mopidy.com/
che è un "music server" alternativo ad MPD che però supporta il medesimo protocollo e può quindi essere utilizzato con gli stessi client. Per l'uscita audio utilizza la piattaforma "
GStreamer". Se qualcuno ha voglia e tempo, sarebbe da provare anche questo...
Re: MPD (Music Player Daemon)
Inviato: 20 nov 2013, 12:35
da sontero
@audio - rtprio 50
#@audio - memlock unlimited
@audio - memlock 1542192
#@audio - nice -19
@audio - nice -10
(in effetti, l'unica linea essenziale è quella relativa al parametro "rtprio". Al solito, quelle che iniziano con il carattere '#' sono inattive in quanto "commenti").
sudo apt-get install schedtool
man schedtool
Have fun!

Messo tutto in opera, Paolo .
all'ascolto qualita' da vendere ( Kernel rt - 3.10.11-voyage-rt-rt7 + libsoxr0 + samplerate_converter "SoX VHQ" ) e uso della CPU da parte di MPD fra 15% e 18% :
Codice: Seleziona tutto
realtime_option {
memlock "yes"
stack_reserve "1024"
heap_reserve "0"
main_priority "OTHER:0"
player_priority "FIFO:49"
decoder_priority "FIFO:48"
update_priority "OTHER:0"
}
audio_output {
type "alsa"
name "My Alsa"
device "hw:0,0"
priority "FIFO:48"
format "96000:32:2" # optional
# mixer_device "default" # optional
# mixer_control "PCM" # optional
# mixer_index "0" # optional
}
audio_buffer_size "51200"
buffer_before_play "100%"
# To be used with libsoxr-lsr (via LD_PRELOAD)
#samplerate_converter "LSR best sinc"
#samplerate_converter "LSR medium sinc"
#samplerate_converter "LSR fastest sinc"
#samplerate_converter "LSR ZOH"
#samplerate_converter "LSR linear"
samplerate_converter "SoX VHQ"
Sox a confronto non molto lontano pero' la CPU deve lavorare di piu' (35% - 40% )con questi parametri di sox in /etc/asound.conf :
Codice: Seleziona tutto
pcm.soxp {
type empty
slave {
pcm "file:'| /usr/bin/sox -q --combine sequence -t raw -c %c -b %b -r %r -e signed-integer - -t alsa -b16 hw:0,0 gain -2 rate -vMa 96000 dither -s',raw"
}
hint {
show on
description "SOX upsampling via pipe (new)"
}
}
Sono molto funny

Re: Rompr e Mopidy
Inviato: 20 nov 2013, 13:22
da antonellocaroli
UnixMan ha scritto:Leggendo qua e la, mi sono imbattuto in questo "Web front-end" per MPD:
http://sourceforge.net/projects/rompr/
che parrebbe un oggetto interessante. Da li poi ho scoperto anche l'esistenza di "Mopidy":
http://www.mopidy.com/
che è un "music server" alternativo ad MPD che però supporta il medesimo protocollo e può quindi essere utilizzato con gli stessi client. Per l'uscita audio utilizza la piattaforma "
GStreamer". Se qualcuno ha voglia e tempo, sarebbe da provare anche questo...
Ciao Paolo,
Rompr sembra interessante, peccato che non ci sia una versione Win.
Una cosa che non capisco é il senso di tutti questi client per MPD...tra l´altro con feature diverse.
Mopidy l ho installato ma non sono riuscito a configurarlo e farlo suonare.
volevo provare se riuscivo ad ascoltare playlist da Spotify.
Non sono stato mai capace di far suonare qualcosa da Spotify neanche con MPD (ecco un client MPD con una propria feature per Spotify non sarebbe male).
Peccato.
Re: Rompr e Mopidy
Inviato: 20 nov 2013, 15:33
da UnixMan
antonellocaroli ha scritto:Rompr sembra interessante, peccato che non ci sia una versione Win.
che importa? è una interfaccia Web, quindi la puoi usare con qualsiasi cosa abbia un browser... (se non hai risorse troppo risicate, lo potresti far girare anche sulla stessa macchina dove gira MPD o Mopidy).
antonellocaroli ha scritto:Una cosa che non capisco é il senso di tutti questi client per MPD...tra l´altro con feature diverse.
curioso, a me invece pare evidente.

L'interfaccia utente è, per sua natura, qualcosa di estremamente soggettivo: ogni utente ha le sue esigenze specifiche e le sue preferenze estetico/funzionali, che non necessariamente (anzi, raramente) sono le stesse di un altro. Avere interfacce diverse permette a ciascuno di scegliere liberamente l'interfaccia che preferisce. Proprio questo è uno dei motivi principali per cui hanno realizzato sistemi di tipo "
client-server" come MPD,
XMMS2, ecc, in quanto così facendo si ha la possibilità di separare in modo naturale la parte "funzionale" del software dall'interfaccia utente, in modo da poter realizzare (ed utilizzare) facilmente UI differenti fermo restando "il motore" che c'è dietro.
Re: MPD (Music Player Daemon)
Inviato: 03 dic 2013, 12:27
da UnixMan
Casomai vi fosse sfuggito, nel repository
Voyage experimental è disponibile una nuova versione di MPD (0.18.4git) con la patch RT:
* new upstream release from git
* backported Yan's patch : mpd-rtopt-20130203.diff for 0.18.4
http://www.voyage.hk/dists/experimental ... 86.changes
Re: MPD (Music Player Daemon)
Inviato: 03 dic 2013, 20:41
da antonellocaroli
Grazie Paolo per la segnalazione....
é nata dopo uno scambio di email con Punky...molto disponibile!!!
dopo una email che ho inviato dopo due giorni c´era la nuova versione...

Re: MPD (Music Player Daemon)
Inviato: 04 dic 2013, 16:09
da kartak
Re: MPD (Music Player Daemon)
Inviato: 04 dic 2013, 16:10
da kartak
Salve a tutti
le ultime patch rt per mpd le trovate qui....
https://skydrive.live.com/?cid=CE384832 ... 8DA832!105

Re: MPD (Music Player Daemon)
Inviato: 05 dic 2013, 16:51
da Miclaud
Ciao a tutti! E' un po' che non ci sentiamo

Finalmente ho avuto il tempo di fare un po' di prove serie da un mio amico, con risultati molto interessanti.
Posso prima di tutto dirvi che il kernel realtime fa la differenza, e non poco! Maggior profondità, limpidezza e suono molto più raffinato e dalla grana fine. Perdonate i termini da "sommelier audiofilo" ma sono le stesse sensazioni che ho avuto quando sono passato ad alimentazioni lineari, un miglioramento davvero sensibile, ammetto che non ci speravo così tanto.
Poi ho avuto anche modo di apprezzare le qualità dell'upsampling con libsoxr. Purtroppo il mio Geode non vanta grandi prestazioni: spesso nei primi istanti del playback avvengono dei salti, proprio in occasione del picco iniziale della CPU, dovuto probabilmente al caricamento del file audio in memoria e all'avvio delle prime elaborazioni. Poi la situazione si stabilizza, ma è piuttosto fastidioso. In ogni caso, questo problema è quasi assente se provo frequenze di campionamento che sono multipli dei file trattati. Usando quindi un campionamento di 88.2 khz con file da 44.1, le cose vanno benone. Son dolori invece quando provo ad upsamplare gli stessi a 48, 96 o peggio ancora 192.
Che voi sappiate, c'è modo di dire a MPD di usare una frequenza di campionamento relativa al file trattato? Mi sembra che in Foobar fosse possibile dire di moltiplicare per 2 o per 4 le frequenze dei file in ingresso, il che permetterebbe sempre di sovracampionare a frequenze direttamente multiple, evitando conversioni "strane" e difficili da trattare.
Inoltre con questa versione patchata di mpd (si quella appena uscita, quotata qui sopra, che la precedente) ho grossi problemi nello spostare l'esecuzione da un punto a l'altro del brano. Come provo a spostare la barra di esecuzione in un altro punto del brano MPD crasha e non posso far altro che riavviarlo. Per voi è lo stesso?
Re: MPD (Music Player Daemon)
Inviato: 05 dic 2013, 17:52
da UnixMan
Miclaud ha scritto:Posso prima di tutto dirvi che il kernel realtime fa la differenza, e non poco!
con che setup? hai applicato
questi settings?
Miclaud ha scritto:Purtroppo il mio Geode non vanta grandi prestazioni: spesso nei primi istanti del playback avvengono dei salti, proprio in occasione del picco iniziale della CPU, dovuto probabilmente al caricamento del file audio in memoria e all'avvio delle prime elaborazioni.
prova a
ridurre il buffering iniziale di MPD.
Miclaud ha scritto:Che voi sappiate, c'è modo di dire a MPD di usare una frequenza di campionamento relativa al file trattato?
purtroppo, che io sappia no.
Miclaud ha scritto:Inoltre con questa versione patchata di mpd (si quella appena uscita, quotata qui sopra, che la precedente) ho grossi problemi nello spostare l'esecuzione da un punto a l'altro del brano. Come provo a spostare la barra di esecuzione in un altro punto del brano MPD crasha e non posso far altro che riavviarlo. Per voi è lo stesso?
provo e ti faccio sapere...
Re: MPD (Music Player Daemon)
Inviato: 05 dic 2013, 21:51
da sontero
Miclaud ha scritto:
Ciao a tutti! E' un po' che non ci sentiamo 
Finalmente ho avuto il tempo di fare un po' di prove serie da un mio amico, con risultati molto interessanti.
Posso prima di tutto dirvi che il kernel realtime fa la differenza, e non poco! Maggior profondità, limpidezza e suono molto più raffinato e dalla grana fine. Perdonate i termini da "sommelier audiofilo" ma sono le stesse sensazioni che ho avuto quando sono passato ad alimentazioni lineari, un miglioramento davvero sensibile, ammetto che non ci speravo così tanto.
Poi ho avuto anche modo di apprezzare le qualità dell'upsampling con libsoxr. Purtroppo il mio Geode non vanta grandi prestazioni: spesso nei primi istanti del playback avvengono dei salti, proprio in occasione del picco iniziale della CPU, dovuto probabilmente al caricamento del file audio in memoria e all'avvio delle prime elaborazioni. Poi la situazione si stabilizza, ma è piuttosto fastidioso. In ogni caso, questo problema è quasi assente se provo frequenze di campionamento che sono multipli dei file trattati. Usando quindi un campionamento di 88.2 khz con file da 44.1, le cose vanno benone. Son dolori invece quando provo ad upsamplare gli stessi a 48, 96 o peggio ancora 192.
Che voi sappiate, c'è modo di dire a MPD di usare una frequenza di campionamento relativa al file trattato? Mi sembra che in Foobar fosse possibile dire di moltiplicare per 2 o per 4 le frequenze dei file in ingresso, il che permetterebbe sempre di sovracampionare a frequenze direttamente multiple, evitando conversioni "strane" e difficili da trattare.
Inoltre con questa versione patchata di mpd (si quella appena uscita, quotata qui sopra, che la precedente) ho grossi problemi nello spostare l'esecuzione da un punto a l'altro del brano. Come provo a spostare la barra di esecuzione in un altro punto del brano MPD crasha e non posso far altro che riavviarlo. Per voi è lo stesso?
Ciao Miclaud. Le tue osservazioni sono sostanzialmente simili a quelle che ho sperimentato nel mio sistema per quanto riguarda le prestazioni all'ascolto, quindi siamo almeno in due ad aver relazionato molto positivamente.
Nel mio sistema se provo a upsamplare non ho nessun problema ,fila liscio (ho un thin client con CPU VIA 7 da 1Ghz) pero' ho riscontrato lo stesso tuo problema muovendo la barra di esecuzione,anche a me crasha e devo riavviare MPD (non mi toglie il sonno comunque questo problema....) francamente non sento l'esigenza di cambiare con l'ultima versione indicata da Paolo perchè mi sta andando tutto a meraviglia (ho anche applicato i settings per il K RT) .

Re: MPD (Music Player Daemon)
Inviato: 06 dic 2013, 09:54
da antonellocaroli
Miclaud ha scritto:
Ciao a tutti! E' un po' che non ci sentiamo

Finalmente ho avuto il tempo di fare un po' di prove serie da un mio amico, con risultati molto interessanti.
Posso prima di tutto dirvi che il kernel realtime fa la differenza, e non poco! Maggior profondità, limpidezza e suono molto più raffinato e dalla grana fine. Perdonate i termini da "sommelier audiofilo" ma sono le stesse sensazioni che ho avuto quando sono passato ad alimentazioni lineari, un miglioramento davvero sensibile, ammetto che non ci speravo così tanto.
Poi ho avuto anche modo di apprezzare le qualità dell'upsampling con libsoxr. Purtroppo il mio Geode non vanta grandi prestazioni: spesso nei primi istanti del playback avvengono dei salti, proprio in occasione del picco iniziale della CPU, dovuto probabilmente al caricamento del file audio in memoria e all'avvio delle prime elaborazioni. Poi la situazione si stabilizza, ma è piuttosto fastidioso. In ogni caso, questo problema è quasi assente se provo frequenze di campionamento che sono multipli dei file trattati. Usando quindi un campionamento di 88.2 khz con file da 44.1, le cose vanno benone. Son dolori invece quando provo ad upsamplare gli stessi a 48, 96 o peggio ancora 192.
Che voi sappiate, c'è modo di dire a MPD di usare una frequenza di campionamento relativa al file trattato? Mi sembra che in Foobar fosse possibile dire di moltiplicare per 2 o per 4 le frequenze dei file in ingresso, il che permetterebbe sempre di sovracampionare a frequenze direttamente multiple, evitando conversioni "strane" e difficili da trattare.
Inoltre con questa versione patchata di mpd (si quella appena uscita, quotata qui sopra, che la precedente) ho grossi problemi nello spostare l'esecuzione da un punto a l'altro del brano. Come provo a spostare la barra di esecuzione in un altro punto del brano MPD crasha e non posso far altro che riavviarlo. Per voi è lo stesso?
Puoi postare il tuo mpd.conf?
Re: MPD (Music Player Daemon)
Inviato: 07 dic 2013, 09:39
da antonellocaroli
Ciao Kartak,
matu sei riuscito ad applicare una di quelle patch?
Re: MPD (Music Player Daemon)
Inviato: 07 dic 2013, 10:02
da Miclaud
UnixMan ha scritto:
con che setup? hai applicato
questi settings?
Non riesco a seguire il link che mi hai indicato, comunque il mio mpd è questo:
Codice: Seleziona tutto
auto_update "yes"
auto_update_depth "6"
realtime_option {
memlock "yes"
stack_reserve "1024"
heap_reserve "0"
main_priority "OTHER:0"
player_priority "FIFO:49"
decoder_priority "FIFO:48"
update_priority "OTHER:0"
}
audio_output {
type "alsa"
name "AQUA XMOS"
device "hw:0,0"
priority "FIFO:48"
auto_resample "yes"
format "88200:24:2"
use_mmap "yes"
}
samplerate_converter "SoX VHQ"
filesystem_charset "UTF-8"
id3v1_encoding "UTF-8"
follow_outside_symlinks "yes"
follow_inside_symlinks "yes"
zeroconf_enabled "yes"
zeroconf_name "Voyage Music Player"
mixer_type "disabled"
bind_to_address "0.0.0.0"
audio_buffer_size "1600"
buffer_before_play "100%"
Come potete notare "audio_buffer_size" è piccolissimo. E' l'unico modo per poter usare Sox con un minimo di resa, anche se occasionalmente ci sono ancora problemi di salti.
Notate inoltre come la priorità rt del thread "audio" sia a 48, come il thread "decoder". In questo modo, se non ho capito male, il thread con più priorità è "player". Abbiamo provato ad impostare "audio" come thread con maggior priorità ma abbiamo notato che la qualità del suono era leggermente inferiore, seppur sempre ottima.
Si potrebbero fare altre prove, magari non usando lo scheduling FIFO. Che voi sappiate, esiste una documentazione che spiega bene quali siano i compiti dei singoli thread di MPD (player, decoder, audio...)?
Potremmo provare a realizzare insieme una sorta di piccolo vademecum su come sperimentare le varie impostazioni
sontero ha scritto:
Nel mio sistema se provo a upsamplare non ho nessun problema ,fila liscio (ho un thin client con CPU VIA 7 da 1Ghz)
Avevo dimenticato questo particolare, ho anche un thinclient di un amico con il tuo stesso processore. Confermo, nessun problema in questo caso, il picco iniziale si ferma intorno al 60%. Posso upsamplare a qualsiasi frequenza, anche da 44.1/16 a 192/32.
Una prova che farò in futuro sarà paragonare le due schede madri: Alix + Geode 500Mhz da un lato e Thinclient + Via C7 1Ghz dall'altro. Il Geode è fantastico per i suoi bassissimi consumi, tanto per dire non ha neanche un dissipatore sulla CPU, al contrario del VIA il quale se non altro riesce comunque a rinunciare alle ventole. Alix sembra di un livello qualitativo generalmente superiore, ad occhio, ma sarà interessante vedere se ci saranno differenze percepibili sul suono. Devo solo metterli in condizione di eseguire lo stesso sistema operativo e sfruttare la stessa alimentazione

Vi informerò al rigaurdo.
Re: MPD (Music Player Daemon)
Inviato: 07 dic 2013, 11:37
da UnixMan
UnixMan ha scritto:Miclaud ha scritto:Inoltre con questa versione patchata di mpd (si quella appena uscita, quotata qui sopra, che la precedente) ho grossi problemi nello spostare l'esecuzione da un punto a l'altro del brano. Come provo a spostare la barra di esecuzione in un altro punto del brano MPD crasha e non posso far altro che riavviarlo. Per voi è lo stesso?
provo e ti faccio sapere...
No, a me non da problemi di sorta (mpd 0.18.4git con patch RT da Voyage experimental su Debian 32bit, client gmpc).
Re: MPD (Music Player Daemon)
Inviato: 07 dic 2013, 12:38
da Miclaud
UnixMan ha scritto:UnixMan ha scritto:Miclaud ha scritto:Inoltre con questa versione patchata di mpd (si quella appena uscita, quotata qui sopra, che la precedente) ho grossi problemi nello spostare l'esecuzione da un punto a l'altro del brano. Come provo a spostare la barra di esecuzione in un altro punto del brano MPD crasha e non posso far altro che riavviarlo. Per voi è lo stesso?
provo e ti faccio sapere...
No, a me non da problemi di sorta (mpd 0.18.4git con patch RT da Voyage experimental su Debian 32bit, client gmpc).
Argh...
Ti ringrazio. Posso chiederti su quale hardware gira il tutto? A cosa ti riferisci con Voyage Experimental? La daily snapshot dal sito di voyage?
Re: MPD (Music Player Daemon)
Inviato: 07 dic 2013, 13:19
da UnixMan
Miclaud ha scritto:Non riesco a seguire il link che mi hai indicato,
sorry, link errato.
Quello giusto è questo:
http://www.audiofaidate.org/forum/viewt ... 61#p119161 (post precedente qui).
Miclaud ha scritto:Come potete notare "audio_buffer_size" è piccolissimo.
IMHO, è sbagliato: è il "buffer_before_play" che deve essere mooolto più basso, lasciando invece le dimensioni complessive del buffer sui valori consigliati. Per cominciare, io proverei a commentare quelle due righe in modo che vengano adottati i valori di default...
Miclaud ha scritto:Notate inoltre come la priorità rt del thread "audio" sia a 48, come il thread "decoder". In questo modo, se non ho capito male, il thread con più priorità è "player". Abbiamo provato ad impostare "audio" come thread con maggior priorità ma abbiamo notato che la qualità del suono era leggermente inferiore, seppur sempre ottima.
hai provato a mettere tutti e tre alla stessa priorità?
ad usare la modalità RT "RR" anziché quella "FIFO"?
a spostare la priorità RT dei processi di mpd a valori più bassi / uguali / più alti rispetto ai processi RT del kernel? (priorità RT=50)
N.B.: verifica con "htop" (o simili) l'effettiva priorità assegnata ai processi!
P.S.: ho notato che non è necessario specificare "priority" all'interno delle definizioni della/e uscita/e audio: omettendo il parametro, la priorità viene assegnata automaticamente ad un valore uguale a quella del processo "player". Al momento sto provando così:
Codice: Seleziona tutto
realtime_option {
memlock "yes"
stack_reserve "1024"
heap_reserve "0"
main_priority "OTHER:0"
update_priority "OTHER:0"
decoder_priority "RR:59"
player_priority "RR:59"
}
Miclaud ha scritto:Si potrebbero fare altre prove, magari non usando lo scheduling FIFO.
infatti. IMHO, almeno in teoria dovrebbe essere meglio utilizzare "RR".
Miclaud ha scritto:Potremmo provare a realizzare insieme una sorta di piccolo vademecum su come sperimentare le varie impostazioni
mi sembra una buona idea.
Miclaud ha scritto:Ti ringrazio. Posso chiederti su quale hardware gira il tutto?
Al momento, un Intel Core2 duo E5200.
Miclaud ha scritto:A cosa ti riferisci con Voyage Experimental?
http://www.voyage.hk/dists/experimental/mpd/
Re: MPD (Music Player Daemon)
Inviato: 08 dic 2013, 12:35
da antonellocaroli
Ciao,
qualcuno ha provato a suonare qualche play list da soundcloud?
Io ho questo problema...la playlist parte, ma dopo pochi minuti é il silenzio.
questo dopo che do mpd restart:
Codice: Seleziona tutto
Stopping Music Player Daemon: mpd.
[....] Starting Music Player Daemon: mpdrtopt: realtime_option(set_parameter): memlock enable stack_reserve : 1048576 heap_reserve : 0
rtopt: realtime_option(set_parameter): main_priority policy 0 priority 0
rtopt: realtime_option(set_parameter): player_priority policy 1 priority 50
rtopt: realtime_option(set_parameter): decoder_priority policy 1 priority 70
rtopt: realtime_option(set_parameter): update_priority policy 0 priority 0
rtopt: realtime_option(init_output_priority_tab): output priority name My Alsa policy 1 priority 95
rtopt: realtime_option(init_output_priority_tab): output priority name MPD upsample policy 1 priority 95
rtopt: realtime_option(init_output_priority_tab): output priority name SOX upsample policy 1 priority 95
rtopt: realtime_option(rtopt_change_priority): name main_priority policy 0 priority 0
rtopt: realtime_option(rtopt_change_thread_priority): name main_priority not changed
path: SetFSCharset: fs charset is: UTF-8
libsamplerate: libsamplerate converter 'SoX VHQ'
opus: libopus 0.9.14
db: reading DB
soundcloud: disabling the soundcloud playlist plugin because API key is not set
daemon: opening pid file
daemon: daemonized
daemon: writing pid file
Questo nel log:
Codice: Seleziona tutto
Dec 08 13:34 : state_file: Saving state file /var/lib/mpd/state
Dec 08 13:34 : output: closed plugin=alsa name="MPD upsample"
Dec 08 13:34 : avahi: Shutting down interface
Dec 08 13:34 : listen: listen_global_finish called
Dec 08 13:34 : client: [1] closed
Dec 08 13:34 : main: db_finish took 0.070000 seconds
Dec 08 13:34 : avahi: Initializing interface
Dec 08 13:34 : avahi: Client changed to state 2
Dec 08 13:34 : avahi: Client is RUNNING
Dec 08 13:34 : avahi: Registering service _mpd._tcp/Voyage Music Player
Dec 08 13:34 : avahi: Service group changed to state 0
Dec 08 13:34 : avahi: Service group is UNCOMMITED
Dec 08 13:34 : state_file: Loading state file /var/lib/mpd/state
Dec 08 13:34 : rtopt: realtime_option(rtopt_change_priority): name player_priority poli cy 1 priority 50
Dec 08 13:34 : rtopt: realtime_option(change_priority): name player_priority policy 1 priority 50
Dec 08 13:34 : rtopt: realtime_option(rtopt_change_priority): name decoder_priority pol icy 1 priority 70
Dec 08 13:34 : rtopt: realtime_option(change_priority): name decoder_priority policy 1 priority 70
Dec 08 13:34 : rtopt: realtime_option(rtopt_change_output_priority): name MPD upsample policy 1 priority 95
Dec 08 13:34 : rtopt: realtime_option(change_priority): name MPD upsample policy 1 pri ority 95
Dec 08 13:34 : inotify: initializing inotify
Dec 08 13:34 : inotify: watching music directory
Dec 08 13:34 : rtopt: realtime_option(rtopt_memlock): stack_reserve 1048576
Dec 08 13:34 : avahi: Service group changed to state 1
Dec 08 13:34 : avahi: Service group is REGISTERING
Dec 08 13:34 : client: [0] opened from 192.168.178.21:50056
Dec 08 13:34 : client: [0] process command "idle"
Dec 08 13:34 : client: [0] command returned 1
Dec 08 13:34 : client: [0] closed
Dec 08 13:34 : client: [1] opened from 192.168.178.21:50058
Dec 08 13:34 : client: [1] process command "idle"
Dec 08 13:34 : client: [1] command returned 1
Dec 08 13:34 : decoder_thread: probing plugin mad
Dec 08 13:34 : mad: detected LAME version 3.99 ("LAME3.99r")
Dec 08 13:34 : mad: LAME peak found: 0.000000
Dec 08 13:34 : mad: LAME track gain found: -5.900000
Dec 08 13:34 : mad: encoder delay is 576, encoder padding is 832
Dec 08 13:34 : decoder: audio_format=44100:24:2, seekable=true
Dec 08 13:34 : avahi: Service group changed to state 2
Dec 08 13:34 : avahi: Service 'Voyage Music Player' successfully established.
Dec 08 13:34 : alsa_output: opened hw:0,0 type=HW
Dec 08 13:34 : alsa_output: format=S32_LE (Signed 32 bit Little Endian)
Dec 08 13:34 : alsa_output: buffer: size=8..131072 time=41..682667
Dec 08 13:34 : alsa_output: period: size=8..131072 time=41..682667
Dec 08 13:34 : alsa_output: default period_time = buffer_time/4 = 500000/4 = 125000
Dec 08 13:34 : alsa_output: buffer_size=96000 period_size=24000
Dec 08 13:34 : output: opened plugin=alsa name="MPD upsample" audio_format=192000:32:2
Dec 08 13:34 : output: converting from 44100:24:2
Dec 08 13:34 : libsamplerate: setting samplerate conversion ratio to 4.35
Dec 08 13:34 : client: [1] process command "idle"
Dec 08 13:34 : client: [1] command returned 1
Dec 08 13:34 : client: [2] opened from 192.168.178.21:50061
Dec 08 13:34 : client: [2] process command "status"
Dec 08 13:34 : client: [2] command returned 0
Dec 08 13:34 : client: [2] process command "replay_gain_status"
Dec 08 13:34 : client: [2] command returned 0
Dec 08 13:34 : client: [1] process command "idle"
Dec 08 13:34 : client: [1] command returned 1
Dec 08 13:34 : client: [2] process command "status"
Dec 08 13:34 : client: [2] command returned 0
Dec 08 13:34 : client: [2] process command "replay_gain_status"
Dec 08 13:34 : client: [2] command returned 0
Dec 08 13:35 : client: [2] timeout
Dec 08 13:35 : client: [2] closed
Comunque a quanto pare é un problema con l´ultima versione in Experimental....domani gli scrivo.

Re: MPD (Music Player Daemon)
Inviato: 08 dic 2013, 22:25
da kartak
antonellocaroli ha scritto:
Ciao Kartak,
matu sei riuscito ad applicare una di quelle patch?
Si...questa è l ultima versione 0.18.5 con la patch Rt...risotta al minimo...molte opzioni sono disattivate....
mediafire.com/download/zx9p6ruc4c9669r/RT+mpd_0.18.5-1_i386.rar
Installa le dipendenze di mpd...
Installa il pacchetto deb
Sposta il file mpd da /usr/local/bin a usr/bin/
Occhio che la cartella playlists....in var lib mpd...viene cancellata...
Questo è il mio config
./configure --disable-adplug --disable-roar --disable-ao --disable-audiofile --disable-bzip2 --disable-cdio-paranoia --disable-curl --disable-debug --disable-documentation --disable-fifo --disable-fluidsynth --disable-gme --disable-httpd-output --disable-inotify --disable-ipv6 --disable-iso9660 --disable-jack --disable-despotify --disable-soundcloud --disable-lame-encoder --disable-libwrap --disable-lsr --disable-mad --disable-mikmod --disable-mms --disable-modplug --disable-mpc --disable-mpg123 -disable-openal --disable-oss --disable-opus --disable-pipe-output --disable-pulse --disable-recorder-output --disable-sidplay --disable-shout --disable-sndfile --disable-solaris-output --disable-sqlite --disable-test --disable-twolame-encoder --disable-vorbis --disable-vorbis-encoder --disable-wave-encoder --disable-wavpack --disable-werror --disable-wildmidi --disable-zzip --disable-aac --enable-rtopt
Re: MPD (Music Player Daemon)
Inviato: 09 dic 2013, 17:41
da antonellocaroli
UnixMan ha scritto:
P.S.: ho notato che non è necessario specificare "priority" all'interno delle definizioni della/e uscita/e audio: omettendo il parametro, la priorità viene assegnata automaticamente ad un valore uguale a quella del processo "player". Al momento sto provando così:
Codice: Seleziona tutto
realtime_option {
memlock "yes"
stack_reserve "1024"
heap_reserve "0"
main_priority "OTHER:0"
update_priority "OTHER:0"
decoder_priority "RR:59"
player_priority "RR:59"
}
Ciao Paolo,
volendo non usare una versione di mpd Patchata,
come si fa a dare quelle prioritá?
Re: MPD (Music Player Daemon)
Inviato: 09 dic 2013, 18:19
da UnixMan
antonellocaroli ha scritto:volendo non usare una versione di mpd Patchata,
come si fa a dare quelle prioritá?
Puoi usare il comando "
chrt" oppure "
schedtool" (lo avevo già accennato nel
post sul RT).
Puoi lanciare mpd direttamente "attraverso" chrt (o schedtool), oppure modificare scheduling e priorità di qualsiasi processo già esistente. Ovviamente, se lanci mpd direttamente con chrt (o schedtool), tutti i (sotto)processi/thread avranno la medesima priorità (incluso quelli che sarebbe meglio lasciare a bassa priorità, tipo gli aggiornamenti della libreria).
Conviene quindi agire "a posteriori", identificando i "pid" dei vari (sotto)processi di mpd e cambiandone scheduling e priorità uno per uno.
La cosa ovviamente può essere automatizzata con uno script che poi puoi far eseguire subito dopo l'avvio di mpd dallo stesso init script di mpd, oppure avviare alla fine del boot aggiungendolo alla fine di /etc/rc.local.
Re: MPD (Music Player Daemon)
Inviato: 09 dic 2013, 20:01
da antonellocaroli
UnixMan ha scritto:
Conviene quindi agire "a posteriori", identificando i "pid" dei vari (sotto)processi di mpd e cambiandone scheduling e priorità uno per uno.
ecco é proprio questo il problema come identificare quei "pid" ?
Dando un comando del genere
chrt -f -p 45 `pgrep mpd`
significa dare prioritá 45 a MPD e a tutti i sottoprocessi...
ma se si vuole sostiture quello che si scrive nel mpd.conf é basta?
Re: MPD (Music Player Daemon)
Inviato: 10 dic 2013, 14:09
da UnixMan
Devi realizzare uno script un po' più complesso. Per cominciare, è necessario identificare i diversi thread di mpd, ad es. così:
Codice: Seleziona tutto
$ ps -C mpd -Lfc
UID PID PPID LWP NLWP CLS PRI STIME TTY TIME CMD
mpd 30288 1 30288 5 TS 19 00:35 ? 00:00:00 /usr/bin/mpd /etc/mpd.conf
mpd 30288 1 30291 5 TS 19 00:35 ? 00:00:00 /usr/bin/mpd /etc/mpd.conf
mpd 30288 1 30293 5 RR 99 00:35 ? 00:00:00 /usr/bin/mpd /etc/mpd.conf
mpd 30288 1 30294 5 RR 99 00:35 ? 00:00:00 /usr/bin/mpd /etc/mpd.conf
mpd 30288 1 30295 5 RR 99 00:35 ? 00:00:00 /usr/bin/mpd /etc/mpd.conf
quindi puoi usare "chrt -p nn xxxxx" per impostare la priorità dei diversi thread.
BTW: sempre a proposito di RT, per caso ho visto questo:
https://sites.google.com/site/computera ... ng-up-alsa
ci stavo giusto pensando tempo fa. Non ha molto senso dare priorità RT ad MPD e lasciare che la gestione dell'interfaccia audio (ALSA, USB, ecc) avvenga con scheduling e priorità normali...
Re: MPD (Music Player Daemon)
Inviato: 11 dic 2013, 19:15
da antonellocaroli
UnixMan ha scritto:Devi realizzare uno script un po' più complesso. Per cominciare, è necessario identificare i diversi thread di mpd, ad es. così:
Codice: Seleziona tutto
$ ps -C mpd -Lfc
UID PID PPID LWP NLWP CLS PRI STIME TTY TIME CMD
mpd 30288 1 30288 5 TS 19 00:35 ? 00:00:00 /usr/bin/mpd /etc/mpd.conf
mpd 30288 1 30291 5 TS 19 00:35 ? 00:00:00 /usr/bin/mpd /etc/mpd.conf
mpd 30288 1 30293 5 RR 99 00:35 ? 00:00:00 /usr/bin/mpd /etc/mpd.conf
mpd 30288 1 30294 5 RR 99 00:35 ? 00:00:00 /usr/bin/mpd /etc/mpd.conf
mpd 30288 1 30295 5 RR 99 00:35 ? 00:00:00 /usr/bin/mpd /etc/mpd.conf
quindi puoi usare "chrt -p nn xxxxx" per impostare la priorità dei diversi thread.
BTW: sempre a proposito di RT, per caso ho visto questo:
https://sites.google.com/site/computera ... ng-up-alsa
ci stavo giusto pensando tempo fa. Non ha molto senso dare priorità RT ad MPD e lasciare che la gestione dell'interfaccia audio (ALSA, USB, ecc) avvenga con scheduling e priorità normali...
Ciao Paolo,
il problema é che quando si da il restart a mpd quei PID cambiano...

Re: MPD (Music Player Daemon)
Inviato: 11 dic 2013, 19:23
da UnixMan
antonellocaroli ha scritto:il problema é che quando si da il restart a mpd quei PID cambiano...

ovvio. Ma l'ordine di avvio dei diversi thread non dovrebbe cambiare...
hint: puoi usare "cut" (in un loop) oppure "awk", "perl", ecc per "estrarre" i pid che ti interessano e passarli a chrt.
Re: MPD (Music Player Daemon)
Inviato: 11 dic 2013, 19:47
da antonellocaroli
UnixMan ha scritto:antonellocaroli ha scritto:il problema é che quando si da il restart a mpd quei PID cambiano...

ovvio. Ma l'ordine di avvio dei diversi thread non dovrebbe cambiare...
hint: puoi usare "cut" (in un loop) oppure "awk", "perl", ecc per "estrarre" i pid che ti interessano e passarli a chrt.

paolo di linux so poco, molto poco...quello che hai scritto per me é quasi arabo

urge esempio pratico.
Re: MPD (Music Player Daemon)
Inviato: 14 dic 2013, 17:57
da Miclaud
UnixMan ha scritto:
IMHO, è sbagliato: è il "buffer_before_play" che deve essere mooolto più basso, lasciando invece le dimensioni complessive del buffer sui valori consigliati. Per cominciare, io proverei a commentare quelle due righe in modo che vengano adottati i valori di default...
Avevi ragione. Impostando buffer_before_play con valori tra 1 e 5 (quindi percentuali minime) e commentando (quindi disattivando) la grandezza del buffer, la situazione è migliorata drasticamente! Ora ho problemi sono se faccio conversioni estreme, usando campionamenti che non sono multipli diretti.
Per dire:
44.1 -> 88.2 OK
44.1 -> 96 OK
44.1 -> 176.4 OK
44.1 -> 192 MALE
96 -> 192 OK
96 -> 176.4 MALE
Certo, il massimo sarebbe poter dire a MPD di usare campionature relativamente al file in input. Qualcosa come "raddoppia o quadruplica il file in input", in modo da poter usare sempre campionature multiple in potenza di due dei file in ingresso (che poi dovrebbe essere la pratica ottima da seguire, da quello che ho capito e che da informatico sarei portato a pensare).
Ora vedrò come giocare ulteriormente le impostazioni realtime (magari passando da FIFO a RR e giocando con le priorità).
Certo, con il VIA C7 tutto ciò non è necessario perché se la cava egregiamente con ogni conversione. Tuttavia ho notato come una motherboard Alix, con Geode LX800 consumi solo 0.40A/12V contro i ben 1.50A/12V del thinclient basato su VIA C7 Eden da 1Ghz. Chissà perché così tanta differenza. Non vorrei fosse la componente video a bruciare tanta energia...
Dal punto di vista sonico mi pare di notare un lieve vantaggio da parte di Alix, ma niente di eclatante, le metterei sullo stesso piano.
La mia prossima prova sarà con un thinclient Praim basato su Atom dual core N270. Vedremo come andrà

Re: MPD (Music Player Daemon)
Inviato: 18 dic 2013, 14:35
da Echo
Ciao Michele, la faccenda è stabile o meglio aspettare se non si sa smanettare??
Re: MPD (Music Player Daemon)
Inviato: 20 dic 2013, 00:31
da UnixMan
antonellocaroli ha scritto:urge esempio pratico.
eccolo qui. Ancora più semplice del previsto:
Codice: Seleziona tutto
#!/bin/bash
# per prima cosa eseguo 'ps' ed uso il suo output
# per ottenere un array con i pids di mpd:
#
mpd_tid=($(ps -C mpd -L --no-headers -o tid))
# poi verifico che il numero di threads sia quello previsto:
#
if [ ${#mpd_tid} -lt 4 ]; then
echo -e "\nToo few (${#mpd_tid}) threads found: is mpd running?\nAbort."
exit 1
elif [ ${#mpd_tid} -gt 4 ]; then
echo -e "\nSomething is wrong: too many ((${#mpd_tid})) threads found!\nAbort."
exit 2
fi
# else -> ok, expected number of threads
# set desired policies & priorities:
# chrt -v -r -p 1 ${mpd_tid[0]} # main
# chrt -v -r -p 1 ${mpd_tid[1]} # update
chrt -v -r -p 60 ${mpd_tid[2]} # player
chrt -v -r -p 60 ${mpd_tid[3]} # decoder
chrt -v -r -p 60 ${mpd_tid[4]} # output
# use somthing like:
# ps -C mpd -L -o tid,cmd,nlwp,ni,pri,cls,rtprio
# to check!
# Hint: see the relevant man pages!
# man bash
# man ps
# man chrt
Re: MPD (Music Player Daemon)
Inviato: 20 dic 2013, 17:44
da antonellocaroli
Ciao Paolo,
quando lancio lo script mi da questo errore:
Re: MPD (Music Player Daemon)
Inviato: 20 dic 2013, 18:37
da UnixMan
strano. Prima di postarlo l'ho provato e funziona perfettamente. Hai usato il file in allegato o hai fatto un copia-incolla del testo nel post?
(commenti a parte dovrebbero essere identici, ma magari ci può essere stato qualche errore "di trascrizione").
N.B.: la sequenza "
#!" ("
hashbang" o "
shabang", ecc) all'inizio di uno script non è opzionale,
ha un significato speciale e (anche se inizia con un '#')
non è un commento!
Vedi:
http://it.wikipedia.org/wiki/Shabang
P.S.: lo script devi farlo girare come utente "root".
Re: MPD (Music Player Daemon)
Inviato: 20 dic 2013, 20:07
da antonellocaroli
UnixMan ha scritto:strano. Prima di postarlo l'ho provato e funziona perfettamente. Hai usato il file in allegato o hai fatto un copia-incolla del testo nel post?
in effetti ho provato sia copiando quello in code e sia quello in allegato.
non é che c´é bisogno di qualcosa in particolare da installare per farlo girare senza errori?
Re: MPD (Music Player Daemon)
Inviato: 20 dic 2013, 22:38
da Miclaud
Echo ha scritto:Ciao Michele, la faccenda è stabile o meglio aspettare se non si sa smanettare??
Ciao Giorgio, ti farò sapere non appena avrò fatto prove sufficienti. Giocando con il buffer la situazione migliora molto ma ora come ora non la vedo definitiva e pienamente soddisfacente con la cpu Geode LX800.
Con il VIA C7 nessun problema. Mi chiedo però quanto faccia la differenza il maggior clock (1Ghz contro i 500Mhz del Geode) o il supporto per istruzioni più avanzate (VIA C7 vanta SSE, SSE2 e SSE3 mentre il Geode non ha nessuno di questi set di istruzioni, limitandosi al solo, e probabilmente inutile, 3Dnow). Purtroppo non c'è modo dal bios di fare un underclock del VIA C7: portandolo a 500 Mhz il confronto sarebbe stato interessante.
UnixMan, che tu sappia le libsoxr fanno uso delle istruzioni da SSE a SSE4.1? Vorrei identificare una cpu X86 perfetta per i nostri scopi, qualcosa con consumi e clock minimi indispensabili ma con istruzioni ottimizzate che permettano di lavorare in efficienza e senza problemi. Per ora ho addocchiato questo interessante Atom, architettura che solitamente aborro ma in questo caso può fare al caso nostro:
http://www.cpu-world.com/CPUs/Atom/Inte ... 800DE.html
Atom Z500: clock 800Mhz, istruzioni fino a SSSE3 e addirittura 0.65 Watt di TDP. Sembrerebbe grandiosa
Comunque devo dire una cosa, trovare una motherboard a basso consumo come Alix.1D è un'impresa (per non parlare dei modelli Alix senza VGA). L'ultima volta ho registrato consumi per la miseria di 0.35A, contro i ben 1.5A richiesti da quella con VIA C7. Dubito sia interamente riconducibile alla sola CPU, anche il chipset grafico e componenti vari diranno la loro...
Re: MPD (Music Player Daemon)
Inviato: 21 dic 2013, 11:22
da antonellocaroli
Cosi ho copiato lo script:
Codice: Seleziona tutto
#!/bin/bash
mpd_tid=($(ps -C mpd -L --no-headers -o tid))
if [ ${#mpd_tid} -lt 4 ]; then
echo -e "\nToo few (${#mpd_tid}) threads found: is mpd running?\nAbort."
exit 1
elif [ ${#mpd_tid} -gt 4 ]; then
echo -e "\nSomething is wrong: too many ((${#mpd_tid})) threads found!\nAbort."
exit 2
fi
# else ${#mpd_tid}=4 -> ok, expected number of threads
# set desired policies & priorities:
# chrt -v -r -p 1 ${mpd_tid[0]} # main
# chrt -v -r -p 1 ${mpd_tid[1]} # update
chrt -v -r -p 60 ${mpd_tid[2]} # player
chrt -v -r -p 60 ${mpd_tid[3]} # decoder
chrt -v -r -p 60 ${mpd_tid[4]} # output
# use somthing like:
# ps -C mpd -L -o tid,cmd,nlwp,ni,pri,cls,rtprio
# to check!
Penso sia tutto corretto...ma continua a dare l´errore.
c´é qualcun altro che puó provare?
Re: MPD (Music Player Daemon)
Inviato: 21 dic 2013, 11:58
da UnixMan
antonellocaroli ha scritto:in effetti ho provato sia copiando quello in code e sia quello in allegato.
non é che c´é bisogno di qualcosa in particolare da installare per farlo girare senza errori?
No. Lo script usa solo la shell (bash) ed i due comandi "ps" e "chrt". Che OS stai utilizzando? Ovviamente, in particolare è utile sapere quali versioni di bash e ps hai nel tuo sistema:
Se non vado errato, l'errore ti viene segnalato relativamente a questa riga:
e si direbbe che la shell non riconosca la sintassi utilizzata. Prova ad eseguire quel comando a mano. Per prima cosa, prova ad eseguire:
dovresti ottenere la lista dei pid di mpd (solo i numeri, niente altro). Dopo di che, prova con la riga completa e vedi cosa succede.
Casomai nel tuo sistema bash non gradisse i fine riga in luogo degli spazi come separatori, puoi provare ad aggiungere "xargs" per riformattare l'output:
Codice: Seleziona tutto
mpd_tid=($(ps -C mpd -L --no-headers -o tid | xargs))
Puoi anche provare a sostituire la sintassi "$(command-line)" con quella vecchio stile con i "
backticks", "`command-line`", anche se dubito che possa fare alcuna differenza:
Codice: Seleziona tutto
mpd_tid=(`ps -C mpd -L --no-headers -o tid | xargs`)
Oppure ancora, puoi provare a modificare lo script sostituendo la riga incriminata con questo codice:
Codice: Seleziona tutto
np=0
for pid in `ps -C mpd -L --no-headers -o tid | xargs` "end"; do
if [ "$pid" != "end" ]; then
mpd_tid[$np]=${pid}
np=$[ np + 1 ]
fi
done
Re: MPD (Music Player Daemon)
Inviato: 21 dic 2013, 12:15
da UnixMan
Re: MPD (Music Player Daemon)
Inviato: 21 dic 2013, 13:28
da Miclaud
UnixMan ha scritto:
BTW: sempre a proposito di RT, per caso ho visto questo:
https://sites.google.com/site/computera ... ng-up-alsa
ci stavo giusto pensando tempo fa. Non ha molto senso dare priorità RT ad MPD e lasciare che la gestione dell'interfaccia audio (ALSA, USB, ecc) avvenga con scheduling e priorità normali...
Paolo, mi era sfuggito questo tuo post. Sto leggendo l'articolo, molto interessante, anche per il discorso del fissare l'assegnazione i processi audio allo stesso singolo core.
Ora mi sto documentando sul comando taskset. Secondo te perché MPD si comporta meglio se messo in condizione di lavorare sempre nello stesso core? Forse migliora la gestione della cache, visto che tutti i suoi processi lavorerebbero con la stessa, invece di usare ciascuno quella del core a cui sono stati assegnati?
Non riesco a capire se sia necessario bloccare a un solo core tutti i thread di MPD oppure sia necessario solo per quelli dedicati all'audio, lasciando magari il thread "player" e "update" agli altri core, così lavorerebbero senza "disturbare"

Re: MPD (Music Player Daemon)
Inviato: 21 dic 2013, 14:52
da UnixMan
Miclaud ha scritto:Ora mi sto documentando sul comando taskset.
per funzioni analoghe, oltre a
taskset c'è anche
schedtool (vedi
man page), che in un colpo solo permette di gestire sia l'affinity che le modalità (e priorità) RT, ecc.
Miclaud ha scritto:Secondo te perché MPD si comporta meglio se messo in condizione di lavorare sempre nello stesso core? Forse migliora la gestione della cache, visto che tutti i suoi processi lavorerebbero con la stessa, invece di usare ciascuno quella del core a cui sono stati assegnati?
non saprei...
A naso, disponendo di abbastanza cores, io proverei a destinare un core distinto per ogni processo / thread real-time e mettere tutti quelli non critici insieme su un altro... oppure (forse meglio, e si risparmia anche un core) ad assegnare un core ad ogni processo/thread RT lasciando che il kernel gestisca liberamente quelli non critici (e non RT).
In
queste pagine potrebbero esserci delle informazioni interessanti/utili. Ad es.:
http://stackoverflow.com/questions/1529 ... al-threads
http://highscalability.com/blog/2013/10 ... os-sc.html
https://access.redhat.com/site/document ... index.html
http://www.wiki.xilinx.com/Real-Time+Linux
ecc.
Re: MPD (Music Player Daemon)
Inviato: 21 dic 2013, 17:39
da antonellocaroli
Caio Paolo,
cerco di risponderti in ordine
Uso voyage mpd 0.9.1
Codice: Seleziona tutto
bash --version
GNU bash, version 4.2.37(1)-release (i486-pc-linux-gnu)
Copyright (C) 2011 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software; you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
Codice: Seleziona tutto
root@voyage:~# sh avv.sh
avv.sh: 3: avv.sh: Syntax error: "(" unexpected
L errore sembra proprio nella riga tre come dici tu.
se do direttamente da shell:
nessuno errore ma neanche nessun risultato:
Codice: Seleziona tutto
root@voyage:~# mpd_tid=($(ps -C mpd -L --no-headers -o tid))
root@voyage:~#
Codice: Seleziona tutto
root@voyage:~# ps -C mpd -L --no-headers -o tid
2671
2673
2675
2677
2678
sostituendo quella riga con questi:
Codice: Seleziona tutto
Casomai nel tuo sistema bash non gradisse i fine riga in luogo degli spazi come separatori, puoi provare ad aggiungere "xargs" per riformattare l'output:
Code:
mpd_tid=($(ps -C mpd -L --no-headers -o tid | xargs))
Puoi anche provare a sostituire la sintassi "$(command-line)" con quella vecchio stile con i "backticks", "`command-line`", anche se dubito che possa fare alcuna differenza:
Code:
mpd_tid=(`ps -C mpd -L --no-headers -o tid | xargs`)
Mi restituisce lo stesso errore.
invece sostituento la riga con questo:
Codice: Seleziona tutto
np=0
for pid in `ps -C mpd -L --no-headers -o tid | xargs` "end"; do
if [ "$pid" != "end" ]; then
mpd_tid[$np]=${pid}
np=$[ np + 1 ]
fi
done
ottengo:
Codice: Seleziona tutto
root@voyage:~# sh avv.sh
avv.sh: 6: avv.sh: mpd_tid[0]=2671: not found
avv.sh: 7: avv.sh: np: not found
avv.sh: 6: avv.sh: mpd_tid[0]=2673: not found
avv.sh: 7: avv.sh: np: not found
avv.sh: 6: avv.sh: mpd_tid[0]=2675: not found
avv.sh: 7: avv.sh: np: not found
avv.sh: 6: avv.sh: mpd_tid[0]=2677: not found
avv.sh: 7: avv.sh: np: not found
avv.sh: 6: avv.sh: mpd_tid[0]=2678: not found
avv.sh: 7: avv.sh: np: not found
-e
Too few (0) threads found: is mpd running?
Abort.
aggiungendo questo prima della riga incriminata
ottengo:
Codice: Seleziona tutto
root@voyage:~# sh avv.sh
avv.sh: 2: avv.sh: declare: not found
avv.sh: 3: avv.sh: Syntax error: "(" unexpected

Re: MPD (Music Player Daemon)
Inviato: 21 dic 2013, 19:32
da UnixMan
antonellocaroli ha scritto:
se do direttamente da shell:
nessuno errore ma neanche nessun risultato:
ovvio!
pensavo che a questo punto il funzionamento dovesse esserti chiaro.

Il "risultato" è assegnato alla variabile "mpd_tid" (che è un array). Dopo aver dato quel comando, prova a dare i comandi:
Codice: Seleziona tutto
echo ${mpd_tid[*]}
echo ${#mpd_tid}
echo ${mpd_tid[0]}
echo ${mpd_tid[1]}
ecc., e vedrai...
antonellocaroli ha scritto:
[...] ottengo:
Codice: Seleziona tutto
root@voyage:~# sh avv.sh
avv.sh: 6: avv.sh: mpd_tid[0]=2671: not found
avv.sh: 7: avv.sh: np: not found
...
chiaro che il file dello script è corrotto e quindi non viene interpretato correttamente. Per caso lo hai creato, estratto e/o editato da windoze o altri sistemi non-Unix? Ad occhio e croce, il problema è quello.
OS diversi hanno modi diversi per codificare i files di testo. In particolare, Unix indica i
fine-riga con il solo carattere "LF" (0xA), mentre windoze utilizza una coppia CR+LF (0xD0xA). Se un file di testo è stato creato o modificato in ambiente windoze, in ambiente Unix il file risulta corrotto a causa della presenza dei caratteri CR.
Crea il file direttamente su Linux, oppure correggilo (su Linux) eliminando i fine riga errati. Per farlo puoi installare ed utilizzare comandi come ad es. dos2unix, flip o tofrodos.
Codice: Seleziona tutto
apt-get install tofrodos flip dos2unix
man dos2unix
man flip
man fromdos
in breve, dai banalmente:
Se avessi scaricato o trasferito il file .gz (binario...) direttamente sulla macchina Unix, non avresti avuto problemi. Windoze is evil!
In futuro NON "maneggiare" mai script, sorgenti o qualsiasi altro file di testo destinato a Unix in ambienti diversi da Unix!
Re: MPD (Music Player Daemon)
Inviato: 21 dic 2013, 20:37
da antonellocaroli
UnixMan ha scritto:
In futuro NON "maneggiare" mai script, sorgenti o qualsiasi altro file di testo destinato a Unix in ambienti diversi da Unix!
In realtá l ho creato con "nano" direttamente da voyage....
provato anche direttamente con file che hai allegato
Codice: Seleziona tutto
sh mpd_set_policy.sh
mpd_set_policy.sh: 3: mpd_set_policy.sh: Syntax error: "(" unexpected
Re: MPD (Music Player Daemon)
Inviato: 21 dic 2013, 21:36
da UnixMan
antonellocaroli ha scritto:In realtá l ho creato con "nano" direttamente da voyage...
acc... avrei scommesso che il motivo fosse quello.
antonellocaroli ha scritto:
provato anche direttamente con file che hai allegato
Codice: Seleziona tutto
sh mpd_set_policy.sh
mpd_set_policy.sh: 3: mpd_set_policy.sh: Syntax error: "(" unexpected
Ah! bingo! lo chiami con "sh"!!!
Questo script utilizza gli array, che sono un "
bashism". Lo devi far girare con bash, non con sh!
Anche se di solito nei sistemi Linux "
sh" coincide di fatto con
bash, quando questa viene avviata come "
sh" si avvia in modalità
POSIX, cioè funziona come la shell Unix originale standard. Che NON supporta gli arrays!
devi rendere eseguibile lo script:
e quindi avviarla banalmente così:
(oppure usare
bash e non
sh)
Re: MPD (Music Player Daemon)
Inviato: 22 dic 2013, 07:44
da antonellocaroli
Grande Paolo!!!!
adesso si che funziona!!!
Grande script...veramente grazie paolo!!!
Codice: Seleziona tutto
./avv.sh
pid 2801's current scheduling policy: SCHED_RR
pid 2801's current scheduling priority: 60
pid 2801's new scheduling policy: SCHED_RR
pid 2801's new scheduling priority: 60
pid 2803's current scheduling policy: SCHED_RR
pid 2803's current scheduling priority: 60
pid 2803's new scheduling policy: SCHED_RR
pid 2803's new scheduling priority: 60
pid 2804's current scheduling policy: SCHED_RR
pid 2804's current scheduling priority: 60
pid 2804's new scheduling policy: SCHED_RR
pid 2804's new scheduling priority: 60
Aggiunta anche riga a /etc/rc.local
Grazie!!!

Re: MPD (Music Player Daemon)
Inviato: 22 dic 2013, 10:48
da UnixMan
tutto è bene ciò che finisce bene. E l'ultimo... chiuda la porta.
http://www.youtube.com/watch?v=t4QHjvqQ_uo
[youtube]t4QHjvqQ_uo[/youtube]

Re: MPD (Music Player Daemon)
Inviato: 22 dic 2013, 17:07
da UnixMan
antonellocaroli ha scritto:
Aggiunta anche riga a /etc/rc.local
piccola nota: il './' serve ad indicare la directory corrente (così come '../' è quella immediatamente superiore). Dare un comando './miofile' significa dire al sistema "esegui il file 'miofile' che si trova nella directory corrente".
Se, come in questo caso, specifichi un path (percorso) completo (a partire dalla root, '/'), il './' non serve.
Re: MPD (Music Player Daemon)
Inviato: 22 dic 2013, 18:06
da antonellocaroli
UnixMan ha scritto:
Se, come in questo caso, specifichi un path (percorso) completo (a partire dalla root, '/'), il './' non serve.
Che dire Paolo se non ancora Grazie!!!!
e se non ci sentiamo prima Auguro a tutti un buon natale e Buone FESTE!!!
Re: MPD (Music Player Daemon)
Inviato: 31 dic 2013, 09:44
da UnixMan
Altrettanto!
Nel frattempo hai avuto modo di fare qualche test "giocando" con scheduling e priorità? notato qualche differenza significativa all'ascolto?
Ne approfitto per segnalare un ennesimo client MPD (appena entrato in Debian Sid) che si direbbe piuttosto interessante (specie per chi usa GUI KDE, ma non solo): "
Cantata".
Re: MPD (Music Player Daemon)
Inviato: 06 gen 2014, 10:27
da antonellocaroli
UnixMan ha scritto:Altrettanto!
Nel frattempo hai avuto modo di fare qualche test "giocando" con scheduling e priorità? notato qualche differenza significativa all'ascolto?
Ne approfitto per segnalare un ennesimo client MPD (appena entrato in Debian Sid) che si direbbe piuttosto interessante (specie per chi usa GUI KDE, ma non solo): "
Cantata".
Ciao Paolo,
i valori che sto usando attualmente sono rispettivamente 50,70,75 e mi trovo bene.
Ottengo un suono che mi piace, precisione, un buon basso e tanta dinamica.
Ho provato a cambiare di un po questi valori ma con le casse che mi ritrovo attualmente non riesco ad apprezzare grandi differenze.
Chiaramente ho fatto tutte le ottimizzazioni consigliate anche dallo script che si trova all´inizio di questa pagine:
http://linuxaudio.it/index.php/Configur ... #QuickScan
Tranne il Set CPU Governors to 'performance'!!!
Per quato riguarda Cantata é veramente un ottimo client...lo usavo giá da un pó...attualmente uso (a volte anche contemporaneamente): Cantata, Gmpc e Rompr.
Re: MPD (Music Player Daemon)
Inviato: 23 mag 2014, 20:33
da antonellocaroli
Ciao,
qualcuno sa se con MPD é possibile fare una conversione PCM>DSD ?
Re: MPD (Music Player Daemon)
Inviato: 24 mag 2014, 22:57
da UnixMan
Le versioni recenti di MPD supportano il DSD (via DoP), vedi e.g.:
http://exd-audio.blogspot.hk/2012/06/mp ... g-dsd.html
http://exd-audio.blogspot.hk/2012/10/vo ... t-dsd.html
http://voyage-linux.34677.n3.nabble.com ... 25584.html
ma, che io sappia, non è prevista la conversione da PCM a DSD. Non so neanche se esista un qualsiasi software (a parte HQPlayer) in grado di effettuare la conversione in "real time".
Re: MPD (Music Player Daemon)
Inviato: 28 mag 2014, 09:06
da antonellocaroli
Ciao Unix,
da questo articolo sembra che lo facciano anche Jriver e foobar...se non ho capito male.
http://archimago.blogspot.co.at/2013/09 ... pling.html