Alsa resample

Visualizzazione dei risultati da 1 a 7 su 7
  1. #1
    pebibyte L'avatar di marcoc1712
    Registrato
    Jan 2013
    Messaggi
    5,254
    configurazione

    Predefinito Alsa resample

    Ciao a tutti, non sono il massimo esperto di Linux e di alsa, ma avendo incontrato il problema con Ubuntu e squeezelite, sono incappato in questo:

    DMIX per default è settato a 48000 Hz, quindi - se lo si utilizza - ALSA pratica un resample di tutto il materiale a rate diversi, indipendentemente da quello che fa il player.

    Secondo me è bene disabilitare DMIX sul render 'principale' (o sul NAA o...) lasciando che NAD o Squeezelite o MPD siano gli unici processi a poter accedere alla scheda audio, ma per chi, come me, vuole poter ascoltare fugacemente anche da un laptop mentre lavora in giardino, sfruttando il multi room di LMS + squeezelite, DMIX è comodo, dato che permette di mixare, appunto, i suoni prodotti dalle diverse applicazioni attive.

    Il problema è che DMIX ammette un solo settaggio, che consiglio di impostare al valore 'tipico' del vostro sistema, per me 44100. Per farlo occorre modificare il file: /usr/share/alsa/alsa.conf, alla voce defaults.pcm.dmix.rate

    Lasciando il valore di 48000, a parte il probabile deterioramento, poco significativo viste le condizioni d'uso, sussiste un maggiore carico dovuto al resample: il mio PC aveva un core sistematicamente al 100%, dato che squeezelite invia silenzio quando è inattivo, ad evitare click e bump vari, adesso entrambi i core sono al 15% massimo e squeezelite è a 0.

    Se sono stato impreciso (molto probabile) qualcuno mi correggerà, nel frattempo spero di esservi stato utile.
    Ciao, Marco.

    "Any intelligent fool can make things bigger, more complex, and more violent. It takes a touch of genius -- and a lot of courage -- to move in the opposite direction."
    — E. F. Schumacher (mis-attributed to A. Einstein)
    ________________________________________________________________________________
    Autore della patch R2 per Squeezelite e del plugin C-3PO. note libere
    Logitech media Server 7.9 > miniPc + squeezelite-R2 / SB+ > "Lu Scalmentu" NOS R2R DAC by TubeOne/ AudioResearch DAC 1-20 >
    Klimo Merlino Gold TPS > DIS Interconnect > Kent Gold > Reference > Monitor Audio Studio 20 SE

  2. #2
    tebibyte L'avatar di UnixMan
    Registrato
    Sep 2013
    Messaggi
    2,529
    configurazione

    Predefinito

    per i nostri scopi, dmix non lo usi proprio...

    Basta usare i device "plughw:x,y" o "hw:x,y". Quest'ultimo è il "raw" device, che manda lo stream al dispositivo fisico esattamente così com'è, senza alcuna elaborazione (e sta a te assicurarti che lo stream che gli mandi sia compatibile con il tuo hardware), mentre il primo è (appena) un filo più furbo e -se necessario- può applicare alcune semplici conversioni di formato per adattare lo stream in ingresso al "più vicino" formato supportato dall'hardware.
    Ciao, Paolo.

    «Se tu hai una mela, e io ho una mela, e ce le scambiamo, allora tu ed io abbiamo sempre una mela per uno. Ma se tu hai un'idea, ed io ho un'idea, e ce le scambiamo, allora abbiamo entrambi due idee.»

  3. #3
    pebibyte L'avatar di marcoc1712
    Registrato
    Jan 2013
    Messaggi
    5,254
    configurazione

    Predefinito

    Originariamente inviato da UnixMan
    per i nostri scopi, dmix non lo usi proprio...

    Basta usare i device "plughw:x,y" o "hw:x,y". Quest'ultimo è il "raw" device, che manda lo stream al dispositivo fisico esattamente così com'è, senza alcuna elaborazione (e sta a te assicurarti che lo stream che gli mandi sia compatibile con il tuo hardware), mentre il primo è (appena) un filo più furbo e -se necessario- può applicare alcune semplici conversioni di formato per adattare lo stream in ingresso al "più vicino" formato supportato dall'hardware.
    Ma usando hw:x:y si 'monopolizza' la scheda, corretto? E' certamente il risultato desiderato nelle applicazioni 'serie', ma quando ascolto in giardino con il laptop vorrei sentire l'arrivo si una chiamata di skype o altro, la qualità in quella particolare situazione mi interessa meno.
    Ciao, Marco.

    "Any intelligent fool can make things bigger, more complex, and more violent. It takes a touch of genius -- and a lot of courage -- to move in the opposite direction."
    — E. F. Schumacher (mis-attributed to A. Einstein)
    ________________________________________________________________________________
    Autore della patch R2 per Squeezelite e del plugin C-3PO. note libere
    Logitech media Server 7.9 > miniPc + squeezelite-R2 / SB+ > "Lu Scalmentu" NOS R2R DAC by TubeOne/ AudioResearch DAC 1-20 >
    Klimo Merlino Gold TPS > DIS Interconnect > Kent Gold > Reference > Monitor Audio Studio 20 SE

  4. #4
    tebibyte L'avatar di UnixMan
    Registrato
    Sep 2013
    Messaggi
    2,529
    configurazione

    Predefinito

    Originariamente inviato da marcoc1712
    Ma usando hw:x:y si 'monopolizza' la scheda, corretto?
    sì, ovviamente.

    Originariamente inviato da marcoc1712
    E' certamente il risultato desiderato nelle applicazioni 'serie', ma quando ascolto in giardino con il laptop vorrei sentire l'arrivo si una chiamata di skype o altro, la qualità in quella particolare situazione mi interessa meno.
    Ops... sorry, avevo letto di sfuggita dal telefono e mi ero perso la seconda parte del tuo post.

    Per quel tipo di uso IMHO ti conviene utilizzare "pulseaudio", lasciando che sia lui ad "appropriarsi" dell'interfaccia audio (senza passare per dmix) ed a gestire i vari flussi.

    Quasi certamente nel tuo caso è già così: pulseaudio è ormai uno standard de facto in quasi tutte le distribuzioni moderne, ed è richiesto obbligatoriamente dalle ultime versioni di Skype per Linux, che non supportano più altro che pulseaudio sia per l'input che per l'output audio.

    In tal caso è il server pulseaudio che svolge le funzioni di mixer audio e va configurato per il sample rate desiderato.

    http://it.wikipedia.org/wiki/PulseAudio

    http://www.freedesktop.org/wiki/Software/PulseAudio/
    Ciao, Paolo.

    «Se tu hai una mela, e io ho una mela, e ce le scambiamo, allora tu ed io abbiamo sempre una mela per uno. Ma se tu hai un'idea, ed io ho un'idea, e ce le scambiamo, allora abbiamo entrambi due idee.»

  5. #5
    pebibyte L'avatar di marcoc1712
    Registrato
    Jan 2013
    Messaggi
    5,254
    configurazione

    Predefinito

    Originariamente inviato da UnixMan
    sì, ovviamente.


    Ops... sorry, avevo letto di sfuggita dal telefono e mi ero perso la seconda parte del tuo post.

    Per quel tipo di uso IMHO ti conviene utilizzare "pulseaudio", lasciando che sia lui ad "appropriarsi" dell'interfaccia audio (senza passare per dmix) ed a gestire i vari flussi.

    Quasi certamente nel tuo caso è già così: pulseaudio è ormai uno standard de facto in quasi tutte le distribuzioni moderne, ed è richiesto obbligatoriamente dalle ultime versioni di Skype per Linux, che non supportano più altro che pulseaudio sia per l'input che per l'output audio.

    In tal caso è il server pulseaudio che svolge le funzioni di mixer audio e va configurato per il sample rate desiderato.

    PulseAudio - Wikipedia

    PulseAudio
    In effetti era così in origine, ma mi squeezelite occupava il 100% di un core, anche quando non suonava, forse potevo agire anche su pulseaudio e sistemare il sample rate li senza far intervenire dmix, che ne pensi?
    Ciao, Marco.

    "Any intelligent fool can make things bigger, more complex, and more violent. It takes a touch of genius -- and a lot of courage -- to move in the opposite direction."
    — E. F. Schumacher (mis-attributed to A. Einstein)
    ________________________________________________________________________________
    Autore della patch R2 per Squeezelite e del plugin C-3PO. note libere
    Logitech media Server 7.9 > miniPc + squeezelite-R2 / SB+ > "Lu Scalmentu" NOS R2R DAC by TubeOne/ AudioResearch DAC 1-20 >
    Klimo Merlino Gold TPS > DIS Interconnect > Kent Gold > Reference > Monitor Audio Studio 20 SE

  6. #6
    tebibyte L'avatar di UnixMan
    Registrato
    Sep 2013
    Messaggi
    2,529
    configurazione

    Predefinito

    Originariamente inviato da marcoc1712
    In effetti era così in origine, ma mi squeezelite occupava il 100% di un core, anche quando non suonava,
    mmh, quello è segno che c'era qualcosa che non andava. Squeezelite era compilato con il supporto per pulse (se ce l'ha)? stava usando l'interfaccia di uscita "giusta", cioè pulse e non alsa o altro?

    Originariamente inviato da marcoc1712
    forse potevo agire anche su pulseaudio e sistemare il sample rate li senza far intervenire dmix, che ne pensi?
    senza meno, è proprio quello che va fatto in tal caso. Altrimenti rischi di fare resample due volte. Di norma pulse non usa (e non dovrebbe usare) dmix, ma "appropriarsi" direttamente del device di uscita audio. Tutte le applicazioni dovrebbero "uscire" su di lui (in ALSA esiste la possibilità di creare un "device" virtuale che redirige l'uscita a pulse, per quei programmi che non lo supportano direttamente, ma è una soluzione tutt'altro che ottimale che va usata solo se non si può fare diversamente).
    Ciao, Paolo.

    «Se tu hai una mela, e io ho una mela, e ce le scambiamo, allora tu ed io abbiamo sempre una mela per uno. Ma se tu hai un'idea, ed io ho un'idea, e ce le scambiamo, allora abbiamo entrambi due idee.»

  7. #7
    pebibyte L'avatar di marcoc1712
    Registrato
    Jan 2013
    Messaggi
    5,254
    configurazione

    Predefinito

    Originariamente inviato da UnixMan
    mmh, quello è segno che c'era qualcosa che non andava. Squeezelite era compilato con il supporto per pulse (se ce l'ha)? stava usando l'interfaccia di uscita "giusta", cioè pulse e non alsa o altro?

    senza meno, è proprio quello che va fatto in tal caso. Altrimenti rischi di fare resample due volte. Di norma pulse non usa (e non dovrebbe usare) dmix, ma "appropriarsi" direttamente del device di uscita audio. Tutte le applicazioni dovrebbero "uscire" su di lui (in ALSA esiste la possibilità di creare un "device" virtuale che redirige l'uscita a pulse, per quei programmi che non lo supportano direttamente, ma è una soluzione tutt'altro che ottimale che va usata solo se non si può fare diversamente).
    Premesso che io non faccio resample, lo faceva a mia insaputa, ma non due volte, per quel che vale nelle mie condizioni d'uso. Me ne sono accorto per l'occupazione ingiustificata di risorse. Io uscivo su 'default' che su Ubuntu è (era) pulseaudio, leggendo in giro ho trovato la soluzione indicata di modificare i parametri di dmix, creare un device 'dmix0' ed uscire su di quello, così ho fatto, esiste un modo per fare la stessa cosa rimanendo in pulse? Puoi indicarmelo o dirigermi su una guida?

    Grazie.
    Ciao, Marco.

    "Any intelligent fool can make things bigger, more complex, and more violent. It takes a touch of genius -- and a lot of courage -- to move in the opposite direction."
    — E. F. Schumacher (mis-attributed to A. Einstein)
    ________________________________________________________________________________
    Autore della patch R2 per Squeezelite e del plugin C-3PO. note libere
    Logitech media Server 7.9 > miniPc + squeezelite-R2 / SB+ > "Lu Scalmentu" NOS R2R DAC by TubeOne/ AudioResearch DAC 1-20 >
    Klimo Merlino Gold TPS > DIS Interconnect > Kent Gold > Reference > Monitor Audio Studio 20 SE

Informazioni Thread

Users Browsing this Thread

Ci sono attualmente 1 utenti che stanno visualizzando questa discussione. (0 utenti e 1 ospiti)

Regole d'invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
nexthardware.com - © 2002-2022