PDA

View Full Version : Debian, alsa e due schede audio


Damage92
27-12-2010, 11:01
Salve!
Sul mio pc ho due schede audio, una integrata e una pci.
L'integrata è una Intel 82801DB (ICH4) con una sola uscita stereo.
La pci è una Sound Blaster (EMU10k1) con due uscite stereo.
Su ognuna delle tre uscite sono collegate due casse stereo diverse (speaker del monitor, amplificatore e casse del pc).

Fino ad oggi ho utilizzato solo le due uscite della SB, mettendo il mute all'uscita che non volevo utilizzare (altrimenti di default l'audio viene riprodotto su entrambe).
Ora vorrei utilizzare anche l'uscita dell'integrata (prima non avevo l'amplificatore), ma l'audio viene riprodotto solo sulla SB!

Sono riuscito a far caricare i moduli delle due schede.
Ho (provato) a leggere alcuni wiki di alsa, ma non capito molto... :fagiano:
Uso Debian Squeeze.

Qualcuno può aiutarmi? Ciao e grazie!

sacarde
27-12-2010, 20:40
io so che con :

alsamixer devi usare:


alsamixer -c 1

per la seconda scheda

Damage92
28-12-2010, 08:18
io so che con :

alsamixer devi usare:


alsamixer -c 1

per la seconda scheda

Purtroppo non mi sembra che questo serva per fargli usare l'altra scheda... semplicemente sembra che così avvii alsamixer visualizzando i canali della scheda scelta... tutto qui.

jeremy.83
28-12-2010, 09:40
Purtroppo non mi sembra che questo serva per fargli usare l'altra scheda... semplicemente sembra che così avvii alsamixer visualizzando i canali della scheda scelta... tutto qui.

Azz, un bel problema...

Ho anch'io 2 schede, una integrata e una USB, anche se non ho la tua necessità.

Usando Rosegarden però, una volta mi è capitato che partisse il metronomo che passava dalla integrata che non avevo scelto di usare (stavo usando la scheda USB)

Però sto su Ubuntu e lì è già tutto configurato. Nel mio caso potrebbe essere dovuto a qualche impostazione di pulseaudio che non credo tu abbia installato o addirittura al server audio jack, ma non penso che a te serva quest'ultimo.

Io ti consiglio di dare un'occhiata a pulseaudio, ma non riesco ad esserti maggiormente di aiuto, mi spiace.

Gimli[2BV!2B]
28-12-2010, 20:03
Ho trovato questo (http://alsa.opensrc.org/index.php/TwoCardsAsOne) e ricordo di avere letto di configurazioni particolari.

Altro esempio. (http://www.gentoo-wiki.info/HOWTO_Surround_Sound)

Scambio di mail che ha portato ad una soluzione, purtroppo non esplicitamente riportata. (http://www.mail-archive.com/alsa-user@lists.sourceforge.net/msg16661.html)

Anch'io ho una EMU10k1, ma mi ha *esasperato* ed ora prende polvere (sono parecchio pignolo con l'audio e 'sta dannata scheda mi premiava con fastidiosissime statiche ogni secondo).

Son passati mesi, m'hai quasi fatto venir voglia di riprovarci...

Damage92
31-12-2010, 17:29
Grazie a tutti per i suggerimenti, ma non sono ancora riuscito :(
Sarei anche disposto a studiarmi tutto un manuale sulla configurazione di Alsa, ma a trovarne uno che sia per newbie!

@gimli: sulla mia scheda sento dei fruscii quando muovo il mouse... risolto ammutolendo le entrate audio in alsamixer... magari può essere di aiuto.

Gimli[2BV!2B]
01-01-2011, 15:32
Ok, ora la mia Live! 5.1 sta funzionando alla perfezione. Nemmeno le statiche che sentivo mesi fa.
Il fatto è che fino a ieri, semplicemente, non riproduceva alcun suono sui canali stereo frontali, si sentivano solo dei ritorni degli altri canali mettendo qualsiasi volume a palla.

Ho fatto una valanga di prove (perché son testone), mille combinazioni di volumi, scheda integrata attiva, disattiva, Spread Spectrum sì o no (compendio in 15 volumi), ICH Delayed Transaction, interrupts, disabilitazione salvataggi e ripristini volumi durante avvio e spegnimento, compilazione modulare o integrata, ld10k1 (http://ld10k1.sourceforge.net/), .asoundrc, "EMU10K1 PCM Send Routing" & "EMU10K1 PCM Send Volume" e tanti auguri ai santi tutti.
Ho anche provato un cd Kubuntu 8.04 live e si sentiva tranquillamente.
Quindi ho provato un Kubuntu 10.10 e non si sentiva nulla.

Oggi accendo e alla prima prova mi spara i Vision Divine a palla dalle cuffiette. :mbe: :stordita:

Ma mettiamo da parte questa storia, che mò chiamo Roberto Giacobbo così ci fa una serie di puntate insieme ai Maya e quell'altra che è stata rapita dagli alieni.

Hai provato una configurazione del genere in .asoundrc:pcm.multi {
type multi
slaves.a.pcm "hw:0,0"
slaves.a.channels 2
slaves.b.pcm "hw:1,0"
slaves.b.channels 2
bindings.0.slave a
bindings.0.channel 0
bindings.1.slave a
bindings.1.channel 1
bindings.2.slave b
bindings.2.channel 0
bindings.3.slave b
bindings.3.channel 1
}Questa configurazione si può testare in questo modo:speaker-test -D plug:multi -c2

Naturalmente devi salvare l'.asoundrc nella home dello stesso utente con cui lancerai speaker-test (che fa parte di alsa-utils).

Se si ottiene il risultato desiderato si tratterà di rendere questa configurazione parte del precorso standard dei flussi audio.

In caso di fallimento riporta il risultato di aplay -l ed aplay -L

Damage92
01-01-2011, 20:06
Sembrano forti questi Vision Divine! :D

Ho provato la configurazione (ho anche rebootato), riconosce il plugin, ma si sente solo un canale (hw:0,0).

Anche lanciando
speaker-test -D hw:1,0 -c 2
Non funziona :(

Posto l'output di aplay:

root@squeeze:/home/gabriele$ aplay -l
**** List of PLAYBACK Hardware Devices ****
card 0: Live [SB Live! Value [CT4670]], device 0: emu10k1 [ADC Capture/Standard PCM Playback]
Subdevices: 31/32
Subdevice #0: subdevice #0
Subdevice #1: subdevice #1
Subdevice #2: subdevice #2
Subdevice #3: subdevice #3
Subdevice #4: subdevice #4
Subdevice #5: subdevice #5
Subdevice #6: subdevice #6
Subdevice #7: subdevice #7
Subdevice #8: subdevice #8
Subdevice #9: subdevice #9
Subdevice #10: subdevice #10
Subdevice #11: subdevice #11
Subdevice #12: subdevice #12
Subdevice #13: subdevice #13
Subdevice #14: subdevice #14
Subdevice #15: subdevice #15
Subdevice #16: subdevice #16
Subdevice #17: subdevice #17
Subdevice #18: subdevice #18
Subdevice #19: subdevice #19
Subdevice #20: subdevice #20
Subdevice #21: subdevice #21
Subdevice #22: subdevice #22
Subdevice #23: subdevice #23
Subdevice #24: subdevice #24
Subdevice #25: subdevice #25
Subdevice #26: subdevice #26
Subdevice #27: subdevice #27
Subdevice #28: subdevice #28
Subdevice #29: subdevice #29
Subdevice #30: subdevice #30
Subdevice #31: subdevice #31
card 0: Live [SB Live! Value [CT4670]], device 2: emu10k1 efx [Multichannel Capture/PT Playback]
Subdevices: 8/8
Subdevice #0: subdevice #0
Subdevice #1: subdevice #1
Subdevice #2: subdevice #2
Subdevice #3: subdevice #3
Subdevice #4: subdevice #4
Subdevice #5: subdevice #5
Subdevice #6: subdevice #6
Subdevice #7: subdevice #7
card 0: Live [SB Live! Value [CT4670]], device 3: emu10k1 [Multichannel Playback]
Subdevices: 1/1
Subdevice #0: subdevice #0
card 1: I82801DBICH4 [Intel 82801DB-ICH4], device 0: Intel ICH [Intel 82801DB-ICH4]
Subdevices: 1/1
Subdevice #0: subdevice #0
card 1: I82801DBICH4 [Intel 82801DB-ICH4], device 4: Intel ICH - IEC958 [Intel 82801DB-ICH4 - IEC958]
Subdevices: 1/1
Subdevice #0: subdevice #0

root@squeeze:/home/gabriele$ aplay -L
null
Discard all samples (playback) or generate zero samples (capture)
default:CARD=Live
SB Live! Value [CT4670], ADC Capture/Standard PCM Playback
Default Audio Device
front:CARD=Live,DEV=0
SB Live! Value [CT4670], ADC Capture/Standard PCM Playback
Front speakers
rear:CARD=Live,DEV=0
SB Live! Value [CT4670], ADC Capture/Standard PCM Playback
Rear speakers
center_lfe:CARD=Live,DEV=0
SB Live! Value [CT4670], ADC Capture/Standard PCM Playback
Center and Subwoofer speakers
surround40:CARD=Live,DEV=0
SB Live! Value [CT4670], ADC Capture/Standard PCM Playback
4.0 Surround output to Front and Rear speakers
surround41:CARD=Live,DEV=0
SB Live! Value [CT4670], ADC Capture/Standard PCM Playback
4.1 Surround output to Front, Rear and Subwoofer speakers
surround50:CARD=Live,DEV=0
SB Live! Value [CT4670], ADC Capture/Standard PCM Playback
5.0 Surround output to Front, Center and Rear speakers
surround51:CARD=Live,DEV=0
SB Live! Value [CT4670], ADC Capture/Standard PCM Playback
5.1 Surround output to Front, Center, Rear and Subwoofer speakers
iec958:CARD=Live,DEV=0
SB Live! Value [CT4670], Multichannel Capture/PT Playback
IEC958 (S/PDIF) Digital Audio Output
default:CARD=I82801DBICH4
Intel 82801DB-ICH4, Intel 82801DB-ICH4
Default Audio Device
front:CARD=I82801DBICH4,DEV=0
Intel 82801DB-ICH4, Intel 82801DB-ICH4
Front speakers
surround40:CARD=I82801DBICH4,DEV=0
Intel 82801DB-ICH4, Intel 82801DB-ICH4
4.0 Surround output to Front and Rear speakers
surround41:CARD=I82801DBICH4,DEV=0
Intel 82801DB-ICH4, Intel 82801DB-ICH4
4.1 Surround output to Front, Rear and Subwoofer speakers
surround50:CARD=I82801DBICH4,DEV=0
Intel 82801DB-ICH4, Intel 82801DB-ICH4
5.0 Surround output to Front, Center and Rear speakers
surround51:CARD=I82801DBICH4,DEV=0
Intel 82801DB-ICH4, Intel 82801DB-ICH4
5.1 Surround output to Front, Center, Rear and Subwoofer speakers
iec958:CARD=I82801DBICH4,DEV=0
Intel 82801DB-ICH4, Intel 82801DB-ICH4 - IEC958
IEC958 (S/PDIF) Digital Audio Output

Gimli[2BV!2B]
01-01-2011, 21:20
Però speaker-test -D hw:1,0 -c 2 dovrebbe produrre qualcosa.

I volumi dell'Intel non sono muti, vero?

Anche senza clonare gli output devi riuscire a sentire qualcosa.
Puoi provare anche a riprodurre file wav specificamente con quella scheda:aplay -D hw:1,0 _FILE_AUDIO_.wav

L'hw:1,4 è un'uscita S/P-DIF digitale, ma tu stai usando cuffie normali, giusto?
Non è che è attivo lo switch digitale, sempre in alsamixer? Se fosse selezionato non sentiresti nulla.

Damage92
01-01-2011, 22:05
;34067543']Però speaker-test -D hw:1,0 -c 2
L'hw:1,4 è un'uscita S/P-DIF digitale, ma tu stai usando cuffie normali, giusto?
Non è che è attivo lo switch digitale, sempre in alsamixer? Se fosse selezionato non sentiresti nulla.

In alsamixer i volumi della intel sono tutti alti... ora ho ammutolito quelli del tipo s/pdif... ma da comunque questo errore:

gabriele@squeeze:~$ aplay -D hw:1,0 /usr/share/skype/sounds/SkypeLogin.wav
Playing WAVE '/usr/share/skype/sounds/SkypeLogin.wav' : Signed 16 bit Little Endian, Rate 16000 Hz, Mono
aplay: set_params:1059: Channels count non available

Sto utilizzando le uscite "normali".

Gimli[2BV!2B]
01-01-2011, 22:19
Prova ad usare un wav decente, non un mono 16KHz.

Damage92
01-01-2011, 22:58
Funziona! Usando un wav stereo a 44Khz si sente :)

Ho escluso "Line Jack Sense" sulla Intel, e ora dando:
speaker-test -D plug:multi -c 4 -t wav
Si sente su tutte e tre le uscite! :D

Il surround sulla SB viene fatto da solo, e c'è una voce per regolare il volume di ciascuna uscita.
Però di suo non riproduce ancora l'audio sulla Intel...

Gimli[2BV!2B]
01-01-2011, 23:05
Prova questo in .asoundrc:pcm.!default {
type plug
slave.pcm "multi"
ttable.0.0 1.0
ttable.1.1 1.0
ttable.0.2 1.0
ttable.1.3 1.0
}

pcm.multi {
type multi
slaves.a.pcm "hw:0,0"
slaves.a.channels 2
slaves.b.pcm "hw:1,0"
slaves.b.channels 2
bindings.0.slave a
bindings.0.channel 0
bindings.1.slave a
bindings.1.channel 1
bindings.2.slave b
bindings.2.channel 0
bindings.3.slave b
bindings.3.channel 1
}

ctl.!default {
type hw
card 1
}

Damage92
01-01-2011, 23:31
Vanno solo le due uscite in surround della SB.
Per sentire su tutte e tre le uscite funziona solo con speaker-test specificando 4 canali (la SB prende i "front" e la intel i "rear"):
speaker-test -D plug:multi -c 4

Quindi l'audio in stereo viene riprodotto solo sulla SB...

Damage92
01-01-2011, 23:48
Anche io sono arrivato -.- avevo abbassato il volume degli speaker a zero, e lo avevo scordato :fagiano:

Funziona!! :D
Grazie mille, sei il migliore! :D

Ma dove hai letto come configurarlo?

Gimli[2BV!2B]
02-01-2011, 00:17
Funziona? Bene!
Alla fine facendo una ricerca multi + dmix ho trovato questa discussione (http://ubuntuforums.org/showthread.php?t=671697). Come vedi il codice proposto è lo stesso.

Però, come puoi leggere, lamenta il problema dell'impossibilità di riprodurre due flussi audio contemporaneamente.

Prova a riprodurre due audio in contemporanea.

Altra cosa, ho notato un indirizzo che mi pare inappropriato nella configurazione:pcm.!default {
type plug
slave.pcm "multi"
ttable.0.0 1.0
ttable.1.1 1.0
ttable.0.2 1.0
ttable.1.3 1.0
}

pcm.multi {
type multi
slaves.a.pcm "hw:0,0"
slaves.a.channels 2
slaves.b.pcm "hw:1,0"
slaves.b.channels 2
bindings.0.slave a
bindings.0.channel 0
bindings.1.slave a
bindings.1.channel 1
bindings.2.slave b
bindings.2.channel 0
bindings.3.slave b
bindings.3.channel 1
}

ctl.!default {
type hw
card 0
}

Altro link interessante (https://bbs.archlinux.org/viewtopic.php?id=109370), che contiene una configurazione per tre schede che si basa su una struttura ben diversa. Non mi sembra una buona soluzione ma può contenere spunti interessanti.

Damage92
02-01-2011, 00:40
;34068265']
Però, come puoi leggere, lamenta il problema dell'impossibilità di riprodurre due flussi audio contemporaneamente.

Prova a riprodurre due audio in contemporanea.

Altro link interessante (https://bbs.archlinux.org/viewtopic.php?id=109370), che contiene una configurazione per tre schede che si basa su una struttura ben diversa. Non mi sembra una buona soluzione ma può contenere spunti interessanti.

E' vero, non si possono riprodurre due audio insieme...
Inoltre vlc, impostato sull'uscita "default" di alsa, lamenta che c'è un problema sull'output audio, e non lo riproduce. Se comunque si sceglie a mano una uscita, funziona.

Ora sto dormendo in piedi... anzi sulla sedia :D Leggendo un pò forse sto capendo come funziona .asoundrc... domani farò un pò di prove!

Grazie mille! Buonanotte e... ormai è tardi per augurare buon primo d'anno! Facciamo buon secondo d'anno! :D

Damage92
02-01-2011, 13:39
Non c'è verso di fargli riprodurre più suoni insieme, neanche con il dmix...
Nel dmix non si può mettere il multi, perché funziona solo con periferiche hw.

Ho provato a creare un dimix per ciascuna scheda, e ad inserirli nel multi. Il surround c'è, ma il secondo programma che vuole riprodurre audio non funziona:

gabriele@squeeze:~$ aplay -D plug:default -c2 /home/gabriele/Scrivania/07\ -\ Bounce.wav
ALSA lib pcm_dmix.c:1068:(snd_pcm_dmix_open) unable to open slave
aplay: main:654: audio open error: Invalid argument


Eppure ho letto diversi casi in cui questa soluzione ha funzionato :(
Ho provato con questa configurazione:

pcm.dmix0 {
type dmix
ipc_key 1024
slave {
pcm "hw:0,0"
period_time 0
period_size 1024
buffer_size 4096
rate 44100
}

}

pcm.dmix1 {
type dmix
ipc_key 1020
slave {
pcm "hw:1,0"
period_time 0
period_size 1024
buffer_size 4096
rate 44100
}
}


pcm.!default {
type plug
slave.pcm {
type multi
slaves.a.pcm "dmix0"
slaves.a.channels 2
slaves.b.pcm "dmix1"
slaves.b.channels 2
bindings.0.slave a
bindings.0.channel 0
bindings.1.slave a
bindings.1.channel 1
bindings.2.slave b
bindings.2.channel 0
bindings.3.slave b
bindings.3.channel 1
}

ttable.0.0 1.0
ttable.1.1 1.0
ttable.0.2 1.0
ttable.1.3 1.0

}

ctl.!default {
type hw
card 0
}

Ho trovato anche questa pagina utile: http://www.alsa-project.org/alsa-doc/alsa-lib/pcm_plugins.html

Gimli[2BV!2B]
02-01-2011, 13:53
Ok, prova questo:pcm.!default {
type plug
slave.pcm "multi"
ttable.0.0 1.0
ttable.1.1 1.0
ttable.0.2 1.0
ttable.1.3 1.0
}

pcm.multi {
type multi
slaves.a.pcm "dmix:0,0"
slaves.a.channels 2
slaves.b.pcm "dmix:1,0"
slaves.b.channels 2
bindings.0.slave a
bindings.0.channel 0
bindings.1.slave a
bindings.1.channel 1
bindings.2.slave b
bindings.2.channel 0
bindings.3.slave b
bindings.3.channel 1
}

ctl.!default {
type hw
card 0
}Inserendo dmix davanti ad entrambe le schede dovrebbe essere possibile riprodurre più flussi sonori.
Per Vlc non ho fatto in tempo a guardare, ma credo manchino alcune definizioni standard.

Damage92
02-01-2011, 15:11
Non gli è piaciuto :(

gabriele@squeeze:~$ aplay -D default /home/gabriele/Scrivania/ACDC.wav
Playing WAVE '/home/gabriele/Scrivania/ACDC.wav' : Signed 32 bit Little Endian, Rate 44100 Hz, Stereo
ALSA lib pcm_params.c:2150:(snd1_pcm_hw_refine_slave) Slave PCM not usable
aplay: set_params:1031: Broken configuration for this PCM: no configurations available

Gimli[2BV!2B]
02-01-2011, 19:32
Nelle mie prove non si lamenta...
Che dice:cat /proc/asound/version

Prova a fare le combinazioni:

dmix:0,0 + hw:1,0
hw:0,0 + dmix:1,0

Gimli[2BV!2B]
02-01-2011, 19:39
Esatto, il mio sospetto è fondato, con alcune schede audio non funziona (http://www.spinics.net/linux/fedora/alsa-user/msg08033.html). La mia configurazione di prova lo mastica, la tua non gradisce.

Se una delle due combinazioni funziona (io spererei hw:0,0 + dmix:1,0) prova comunque a riprodurre due flussi audio in contemporanea.

Damage92
03-01-2011, 10:14
;34073659']Esatto, il mio sospetto è fondato, con alcune schede audio non funziona (http://www.spinics.net/linux/fedora/alsa-user/msg08033.html). La mia configurazione di prova lo mastica, la tua non gradisce.

Se una delle due combinazioni funziona (io spererei hw:0,0 + dmix:1,0) prova comunque a riprodurre due flussi audio in contemporanea.

Non ho capito bene, intendi così?
slaves.a.pcm "hw:0,0"
slaves.a.channels 2
slaves.b.pcm "dmix:1,0"
slaves.b.channels 2


Se si, non funziona.
Con dmix sul secondo e hw sul primo dice "Slave PCM not usable", mentre con dmix sul primo e hw sul secondo non va più di un audio alla volta.

Io ho altre due schede audio (entrambe Creative CT4810), ognuna con due uscite e un'entrata. Potrei montarle entrambe per sostituire la SB, oppure metterne una al posto della Intel integrata...

Ora faccio qualche prova!

Damage92
03-01-2011, 10:42
Funziona! :D
Ho disabilitato l'integrata, e ho montato una delle due schede.
Ora funziona sia il surround che il dmix!

Se può servire a qualcun altro questa è la versione di alsa:

gabriele@squeeze:~$ cat /proc/asound/version
Advanced Linux Sound Architecture Driver Version 1.0.23.


Grazie mille per l'aiuto, senza non avrei mai capito come fare!

Gimli[2BV!2B]
03-01-2011, 18:46
Benissimo, per fortuna che avevi altre schede audio, non credo sarebbe stato possibile superare lo scoglio della mancanza di mixing hardware nella scheda integrata.

Ciao! :)