Pagina 7 di 8

Re: PulseAudio su slackware

Inviato: mer 27 ago 2014, 12:55
da ZeroUno
Sulle schede digitali o che supportano nativamente il mixing, il pcm 'dmix' non esiste come device ma come tipo e quindi va definito in .asoundrc (o asound.conf)

Codice: Seleziona tutto

pcm.pippo {
        type dmix
        ipc_key 1024
        slave {
                pcm hw:1
        }
}
pcm.!default {
        type plug
        slave.pcm pippo
}

poi mettendo in defaut.pa:
load-module module-alsa-sink
senza device=dmix visto che tale device non esiste e l'ho linkato in default.

così funziona.. posso usare skype e aplay in contemporanea.

Sul pc di casa invece posso usare device=dmix

Si può anche fare

load-module module-alsa-sink device=skype

valido per tutti,
e poi in .asoundrc a seconda del supporto hw si mette

Codice: Seleziona tutto

pcm.skypemixer {
        type dmix
        ipc_key 1024
        slave {
                pcm hw:1
        }
}
pcm.skype {
        type plug
        slave.pcm skypemixer
}
oppure

Codice: Seleziona tutto

pcm.skype {
       type plug
       slave.pcm dmix
}
così l'utente che si vuole scegliere il canale o tunare la conf audio ecc deve toccare un file di alsa e lascia invariato pulse.

Anche a me non ha funzionato il microfono (ma all'una di notte con in stanza un'altra persona che dorme non si fanno bene le prove).
Ho compilato pulseaudio 2.0 con pathprefix /usr/share/skype/pulseaudio, senza supporto x11 e qualcos'altro. Al momento non ho lo slackbuild davanti.

Re: PulseAudio su slackware

Inviato: mer 27 ago 2014, 13:17
da rik70
Ottimo.

La seconda e la terza soluzione sono le migliori in quanto meno invasive, dato che la prima imposterebbe come periferica predefinita 'pcm.pippo' e forse non è desiderabile.

Per il microfono:

Codice: Seleziona tutto

arecord -l
e scegli quella giusta, impostando in modo corrispondente /etc/pulse/default.pa.

Per esempio, prendendo come buono l'ultimo .asoundrc:

Codice: Seleziona tutto

load-module module-alsa-sink device=skype
load-module module-alsa-source device=hw:0,0
Ps.
Perché pulseaudio 2.0 e non 5.0?
ZeroUno ha scritto:senza supporto x11
In che senso? Il modo migliore per lanciare pulse è 'start-pulseaudio-x11' o 'start-pulseaudio-kde'. Ci sono questi script nel tuo pacchetto?

Re: PulseAudio su slackware

Inviato: mer 27 ago 2014, 13:38
da ZeroUno
lancio pulse con pulseaudio --start; magari lo metto nel launcher di skype:

/usr/bin/skype:
#!/bin/bash
/usr/share/skype/pulseaudio/bin/pulseaudio --start
/usr/share/skype/skype
/usr/share/skype/pulseaudio/bin/pulseaudio --kill

il pulseaudio 2 vs. 5... boh!
http://slacky.eu/forum/viewtopic.php?f= ... 45#p339194

ma se faccio il pacchetto
skype_pulseaudio
dentro ci metto anche json-c e speex?
tanto nel pacchetto a 64bit ci devo mettere le librerie a 32bit nei path di skype; a questo punto l'utente si installa skype_static e skype_pulseaudio senza preoccuparsi di tutte le altre dipendenze (in fondo sono meno di 10 file in tutto) e non 'sporca' il sistema.

edit: anche per module-alsa-source vorrei mettere qualcosa simile a device=skype in modo da modificare il device dalla configurazione di alsa, che è qualcosa di più vicino all'utente, ma ancora non me la sono studiata.

Re: PulseAudio su slackware

Inviato: mer 27 ago 2014, 14:24
da rik70
Ok, su come fare il pacchetto lascio a te l'onere e l'onore 8)

Su speex non so risponderti, credo che bisognerebbe sapere che codec audio usa skype.

json-c serve serve solo per compilare pulse? La butto lì a caso perché ne so meno di te. EDIT: forse uno sguardo al PKGBUILD di archlinux potrebbe aiutare.

Sulla versione di pulse: la 5.0 funziona bene sul mio hardware, non so quale motivo valido possa esserci per usare una versione precedente.

Quanto al microfono, considera questo:
per una soluzione simile ad alsa-sink dovresti usare dsnoop. Però hai lo svantaggio che se l'utente vuole cambiare microfono - ad esempio quello di una webcam - deve tribolare con .asoundrc.
Se invece carichi le pereferiche reali, es hw:0,0, hw:0,1, può cambiare microfono via gui con pavucontrol, o dalla riga di comando con pacmd.

Ad ogni modo, questo è un esempio di .asoundrc perfettamente funzionante con dsnoop impostato per il mic la webcam (seconda periferica audio in /proc/asound/cards, 1 solo canale d'ingresso):

Codice: Seleziona tutto

pcm.mixin {
	type dsnoop
	ipc_key 5978293	# must be unique for all dmix plugins!!!!
	ipc_key_add_uid yes
	slave {
		pcm "hw:1,0"
		channels 1
		period_size 1024
		buffer_size 4096
		rate 48000
		periods 0 
		period_time 0
	}
}

pcm.skype_in {
       type plug
       slave {
	pcm "mixin"
	}
}


/etc/pulse/default.pa:

Codice: Seleziona tutto

load-module module-alsa-sink device=dmix
load-module module-alsa-source device=skype_in
Per il test:
chiamata skype all'echo test e mentre regitrate il messaggio vocale lanciare:

Codice: Seleziona tutto

arecord -f cd -D plug:skype_in -d 5 foobar.wav
Se registra anche sul file wav, alsa e pulse non confliggono - da me funzica.

Re: PulseAudio su slackware

Inviato: mer 27 ago 2014, 14:34
da rik70
Però:

Codice: Seleziona tutto

arecord -f cd -D hw:1,0 -d 5 foobar.wav
arecord: main:722: audio open error: Dispositivo o risorsa occupata

Quindi alsa non va mentre skype registra dal mic. Dov'è l'errore?

EDIT
Comunque non è un problema. Appena skype smette di usare il microfono la risorsa si libera.

Versione semplificata del file.asoundrc:

Codice: Seleziona tutto

pcm.skype_in {
       type dsnoop;
       ipc_key 1024
       slave.pcm "hw:1";
       slave.channels 1;
}
EDIT2
Ma torno a dire, ha poco senso usare dsnoop per le ragioni viste sopra.

Re: PulseAudio su slackware

Inviato: mer 27 ago 2014, 15:57
da ZeroUno
rik70 ha scritto:

Codice: Seleziona tutto

arecord -f cd -D hw:1,0 -d 5 foobar.wav
arecord: main:722: audio open error: Dispositivo o risorsa occupata

Quindi alsa non va mentre skype registra dal mic. Dov'è l'errore?
perchè interrogando hw:1,0 occupi interamente il canale, incluso il dsnoop.
in verità dovresti dare
arecord -f cd -D plug:dsnoop -d 5 foobar.wav
o cose simili
Versione semplificata del file.asoundrc:

Codice: Seleziona tutto

pcm.skype_in {
       type dsnoop;
       ipc_key 1024
       slave.pcm "hw:1";
       slave.channels 1;
}
perchè sia slave.pcm che slave channels?
Ma torno a dire, ha poco senso usare dsnoop per le ragioni viste sopra.
perchè con un set meno invasivo possibile non c'è installato pavucontrol o altri comandi.
Non è scontato che skype_in debba usare necessariamente dsnoop. In .asoundrc si può mettere direttamente che punta all'hardware, ma almeno lasci scegliere all'utente con strumenti più consoni a slackware.

credo che sia sufficiente dare un .asoundrc ben commentato all'utente e non dovrebbe servire altro.

p.s. non ho ancora provato nient'altro ancora.

Re: PulseAudio su slackware

Inviato: mer 27 ago 2014, 16:17
da rik70
ZeroUno ha scritto:
rik70 ha scritto:

Codice: Seleziona tutto

arecord -f cd -D hw:1,0 -d 5 foobar.wav
arecord: main:722: audio open error: Dispositivo o risorsa occupata

Quindi alsa non va mentre skype registra dal mic. Dov'è l'errore?
perchè interrogando hw:1,0 occupi interamente il canale, incluso il dsnoop.
in verità dovresti dare
arecord -f cd -D plug:dsnoop -d 5 foobar.wav
o cose simili
Ah ok, perfetto.
perchè sia slave.pcm che slave channels?
channels perché la periferica in questione ha un solo canale in ingresso. Ma hai ragione tu, non è necessario specificarlo.
credo che sia sufficiente dare un .asoundrc ben commentato all'utente e non dovrebbe servire altro.
Vero anche questo.
p.s. non ho ancora provato nient'altro ancora.
Ok, comunque credo che ormai abbiamo sviscerato la faccenda per benino. Ora la palla passa a te e a chi vuole testare il tutto 8)

Re: PulseAudio su slackware

Inviato: mer 27 ago 2014, 17:24
da ZeroUno
ok. credo che stasera avrò un po' più di tempo da dedicarci (ma con il pc su cui funziona dmix)

Re: PulseAudio su slackware

Inviato: mer 27 ago 2014, 17:49
da tano70
quindi se non ho capito male...ben presto si preannuncia una versione imminente di skype 4.3 perfettamente funzionante, con diciamo la libreria pulseaudio non invasiva ma legata solo a questo programma? perchè in effetti reduce dal passato ho esperienze DISASTROSE con pulseaudio nel sistema

Re: PulseAudio su slackware

Inviato: mer 27 ago 2014, 17:55
da ZeroUno
"imminente" e "perfettamente" non vanno molto daccordo, però si, l'intenzione è quella.

Re: PulseAudio su slackware

Inviato: mer 27 ago 2014, 18:04
da tano70
Ottimo ;) prendetevi tutto il tempo...e se serve un beta tester per le vostre versioni io ci sono :) basta che non devo andare a sconvolgere il mio sistema...che al momento è un orologio svizzero :)

Re: PulseAudio su slackware

Inviato: mer 27 ago 2014, 18:18
da rik70
ZeroUno ha scritto: (ma con il pc su cui funziona dmix)
Non dovrebbe essere un problema.
Gioca con .asoundrc:
crei i dispositivi dmix e dsnoop e li usi per testare su quel PC. Un pò come ho fatto io qui. E poi "porti" il tutto sull'altro computer.

Re: PulseAudio su slackware

Inviato: gio 28 ago 2014, 0:59
da ZeroUno
http://files.z01.eu/skype/pulseaudio/
pacchetto + slackbuild
è da rifinire ed ho fatto solo quello a 32bit
il pacchetto, installato interamente in /usr/share/skype/pulseaudio, comprende al suo interno anche speex e json-c, così sporco al minimo possibile il sistema.

Da fare ancora il template del .asoundrc e il launcher di skype

per default.pa ho fatto:

Codice: Seleziona tutto

# You must define devices skype_out (playback) and skype_in (mic) in your .asoundrc
load-module module-alsa-sink device=skype_out
load-module module-alsa-source device=skype_in
Il pacchetto, così com'è, è di 1MB c.a. (compresso; 6M scompattato). Mi sto chiedendo se è il caso di fare un unico pacchetto con skype che tanto il solo binario pesa 35M.

Re: PulseAudio su slackware

Inviato: sab 30 ago 2014, 14:46
da ZeroUno
il miglior comando per testare microfono e casse credo che sia
arecord -f cd -D plug:skype_in |aplay -D plug:skype_out
mettete il microfono vicino le casse e alzate al massimo il volume ;)

Re: PulseAudio su slackware

Inviato: sab 30 ago 2014, 14:51
da ZeroUno
comunque a parte questo il pacchetto a 32bit sembra funzionare.
solo una cosa.
nel precedente lanciavo skype con
LD_PRELOAD=/usr/lib/libv4l/v4l2convert.so \
PULSE_LATENCY_MSEC=60 \

pensate servano ancora?