Newsgroup: it.comp.os.linux.iniziare
Titolo: e vabbe'. Ora basta [ALSA & JACK]

Premetto che sono settimane che cerco di fare qualcosa di piu' di
"alsaconf" + "alsamixer" + "alsactl store" con i driver audio ALSA.
E pero' non riesco a fare, per esempio, una semplice condivisione tra
l'audio di un videogame come Enemy Territory e TeamSpeak, per parlare
con le cuffiette con amici, mentre si gioca.
Inutile dire che ho cercato in giro per settimane, ho trovato tanti help
e howto, ma nessuno sembra risolvere questo problema. Ho provato a
configurare il plugin alsa dmix, ho provato jack (e non ho ancora capito
come farlo partire, quel maledetto sembra non riuscire a trovare un modo
di funzionare con alsa).
Allora, cominciamo daccapo: ho appena configurato una nuova slack 10.2,
la mia scheda audio e' una C-Media CMI8738, riconosciuta subito da
alsaconf, lancio alsamixer, setto i volumi, esco e faccio alsactl store.
E poi? Se voglio parlare con teamspeak mentre gioco, come faccio? O
sento l'audio del gioco, o parlo.
Help e dritte, pls.

 sento l'audio del gioco, o parlo.
Non conosco i due software, ma la risposta che ti dò è di carattere
generale.
La tua scheda non supporta l'hardware mixing (credo questo tu l'abbia già
capito).
La soluzione bruta ma sicuramente efficace sarebbe comprarne una che lo
supporti, tipo una SoundBlaster dalla Live in poi. (vedi sulla soundcard
matrix di ALSA per info)
Una cosa che potresti provare è usare artsd e artsdsp, dato che credo tu usi
KDE...
HTH
-- 
          salvuz
     POST FATA RESVRGO
 Linux registered user #291700 | machine #174619
 get counted on ---> 
http://counter.li.org/
 <---

 KDE...
artsd ?? Si puo' fare qualche cosa anche direttamente con il demone?
Io ho fatto esperimenti con artsdsp.
Allora, prendiamo per esempio skype, usa il device /dev/dsp.
Per fare le prove, elimino asoundrc il file di cui sopra. Mi serve per
capire cosa succede, senza artifici costituiti dai plugin di alsa.
Se lancio skype da shell (senza artsdsp) esso effettua chiamate solo se
il device dsp e' libero; se xmms suona un mp3, skype restituisce un
"problema di audio device".
Se lo lancio con "artsdsp skype", avendo l'accortezza di flaggare FULL
DUPLEX nel centro controllo -> hardware -> dispositivo hardware (anche
se Autorilevamento dovrebbe.... mah!) skype chiama anche quando il
device e' impegnato da xmms che suona l'mp3.
Allora metto su il file asoundrc di prima.... e non cambia assolutamente
niente. Se lancio skype direttamente non fa nulla in contemporanea con
xmms, se lo lancio con artsdsp funziona anche con xmms che riproduce.
Conclusione, il file asoundrc funziona bene con cio' che usa alsa e non
con chi usa direttamente il dsp.

 Io ho fatto esperimenti con artsdsp.
Aggiungo che artsdsp introduce un consistente ritardo nell'audio,
dovendo intercettare "ruotare" i pacchetti audio dal dsp ad alsa.
Usando artsdsp, sia presente o meno un file asoundrc configurato di
plugin dmix e dsnoop e asym, si possono giocare i videogames come enemy
territory anche utilizzando in contemporanea Teamspeak2 per parlare con
gli amici.
Basta fare cosi:
artsdsp -m teamspeak &		(e connettersi al server di teamspeak)
artsdsp -m et 			(per giocare a enemy territory)
Il problema, come detto, e' che artsdsp introduce un ritardo nell'audio,
per cui uno clicca sul mouse, vede il fucile sparare e dopo 0,3 secondi
sente il suono. A nulla sono valsi gli esperimenti fatti nel centro
controllo riducendo la latenza del buffer sonoro in "prevenzione dei
salti" di kde e/o abilitando la priorita' realtime. Ho provato anche a
lanciare direttamente artsd -F 6 -S 256, come consigliato in piu' guide,
ma senza apparenti risultati.
Da questa mia esperienza nel mondo dell'audio, posso dire che
1) il mixing audio, sia playback che capture, via software e' possibile
per tutte le schede audio, utilizzando i plugin alsa. Cio' limita
l'applicazione del mixing a tutte quelle applicazioni che supportano
pienamente alsa.
2) Per le applicazioni che accedono direttamente al /dev/dsp, come
videogames o client voip come teamspeak o skype, si puo' ancora ottenere
un mixing audio usando aoss (parte di alsa) o artsdsp (parte di artsd,
il demone audio di kde). Ma i risultati, specie per i videogames, non
sono incoraggianti.
3) se uno spende 10-15 euro e si compra una soundblaster live! usata,
dotata di mixer audio, risolve il 90% dei problemi di condivisione
audio, senza perdere tempo con artsdp

 con chi usa direttamente il dsp.
Non è proprio esatto... per far usare il /dev/dsp dmixato alle applicazioni
OSS, devi lanciarle con aoss <programma OSS>.
man aoss
Nel tuo .asoundrc, c'è la riga che dice
# Now these are for use with the "aoss" OSS->ALSA API wrapper.
Ovvero dovresti lanciare 
aoss skype
per forzare skype ad usare il /dev/dsp o /dev/dsp0 creati con dmix.
Sul mio sistema va in segmentation fault, suppongo perchè skype cerca di
fare mmap() sul dispositivo (finto) creato con dmix, che non supporta mmap,
come è pure scritto nell'asoundrc:
# Ideally everything should go through dmix, but as dmix
# isn't mmap capable some bad written applications not
# checking for mmap capability may be broken
In conclusione, usa artsdsp e vivi felice. :)
Spero ti sia stato d'aiuto...
