Sida 1 av 1

3 ljudkort

Postat: 23 aug 2008, 16:35
av ap_garden13
Hej!
Jag håller på att sätta igång en HTPC som ska använda sig av Linuxmce med kubuntu bas. I datorn har jag 3 ljudkort inkopplade som i sin tur är inkopplade till vars en surround receiver i varje rum i min lägenhet. Ideen är alltså att när jag spelar en låt på min media center dator så ska den spelas i alla rummen. Min fråga är hur jag ställer in det i kubuntu så att allt ljud jag spelar på datorn ska skickas till alla 3 ljudkorten samtidigt. Jag har löst detta tidigare när jag använde windows. Då använda jag winamp med en plugin som hette multiple output. Jag vill ju gärna byta till linux. Hur gör jag för att få alla 3 korten att fungera?
Går det inte får ni gärna tipsa om någon annan lösning!

Mvh
Jonas

Re: 3 ljudkort

Postat: 23 aug 2008, 20:19
av Konservburk
Det går alldeles utmärk att skicka samma ljud till flera ljudkort. Man använder sig utav ALSA-pluginet multi, men det kräver lite pillande i ~/.asoundrc (ALSAs config-fil) för att det ska fungera som man vill. Finns inte filen från början så är det bara att skapa en ny. Tänk på att filen är dold eftersom filnamnet börjar med en punkt.

Här är ett "enkelt" exempel på hur man gör det du vill, fast med bara två tvåkanaliga ljudkort:

Kod: Markera allt

pcm {
    !default {
        type plug
        slave.pcm {
            type multi
            slaves {
                0 { pcm ljudkortA  channels 2 }
                1 { pcm ljudkortB  channels 2 }
            }
            bindings {
                0 { slave 0  channel 0 }
                1 { slave 0  channel 1 }

                2 { slave 1  channel 0 }
                3 { slave 1  channel 1 }
            }
        }
        ttable {
            0 { 0  1 }
            0 { 2  1 }

            1 { 1  1 }
            1 { 3  1 }
        }
    }
}
Syntaxen är inte helt lätt att förstå sig på. Det blir mycket siffror och man måste hålla ordning på vad som egentligen är vad. Om vi går igenom det här exemplet så kanske det blir lättare:

Först har vi slaves där vi definerar våra ljudkort. I det här fallet ljudkortA med 2 kanaler som får bli slave 0 och ljudkortB, också med 2 kanaler som får bli slave 1:

Kod: Markera allt

0 { pcm ljudkortA  channels 2 }
1 { pcm ljudkortB  channels 2 }
Sedan har vi bindings där vi går in mer i detalj. Här talar vi om att kanal 0 (vänster högtalare) hos slave 0 (ljudkortA) blir binding 0 och att kanal 1 (höger högtalare) blir binding 1:

Kod: Markera allt

0 { slave 0  channel 0 }
1 { slave 0  channel 1 }
Vidare har vi kanal 0 hos slave 1 (ljudkortB) som blir binding 2 och kanal 1 som blir binding 3:

Kod: Markera allt

2 { slave 1  channel 0 }
3 { slave 1  channel 1 }
Tillslut har vi ttable där allt spännande händer. Här talar vi om att vänster ljudkanal (0) ska skickas till både binding 0 och binding 2 med full ljudstyrka (1):

Kod: Markera allt

0 { 0  1 }
0 { 2  1 }
På motsvarande sätt skickar vi höger ljudkanal (1) till både binding 1 och binding 3 med full ljudstyrka:

Kod: Markera allt

1 { 1  1 }
1 { 3  1 }
Om vi t.ex. bara velat skicka halva ljudstyrkan av höger ljudkanal till binding 3 så hade det blivit så här:

Kod: Markera allt

1 { 3  0.5 }

Re: 3 ljudkort

Postat: 24 aug 2008, 13:34
av ap_garden13
Hallå igen!
Tack för svaret! Jag har försökt lösa det nu. I två av rummen så ska jag bara ha två högtalare så det räcker nog att definiera 2 kanaler. I det första rummet så behöver jag 5 så jag skrev ihop det här:

Kod: Markera allt

pcm {
    !default {
        type plug
        slave.pcm {
            type multi
            slaves {
                0 { pcm ljudkortA  channels 5 }
                1 { pcm ljudkortB  channels 2 }
		2 { pcm ljudkortc  channels 2 }
            }
            bindings {
                0 { slave 0  channel 0 }
                1 { slave 0  channel 1 }
		2 { slave 0  channel 2 }
		3 { slave 0  channel 3 }
		4 { slave 0  channel 4 }

                5 { slave 1  channel 0 }
                6 { slave 1  channel 1 }

		7 { slave 2  channel 0 }
                8 { slave 2  channel 1 }
            }
        }
        ttable {
            0 { 0  1 }
            0 { 5  1 }
            0 { 7  1 }

            1 { 1  1 }
            1 { 6  1 }
	    1 { 8  1 }

	    2 { 2  1 }

	    3 { 3  1 }

	    4 { 4  1 }

	    
        }
    }
}
Ser det bra ut är det något jag har glömt eller måste lägga till? Var i filen ska jag lägga in det här om det redan finns massa text? Kortet som ska använda 5.1 använder sig utav SPDif men det spelar väl ingen roll eller?

Mvh
Jonas

Re: 3 ljudkort

Postat: 24 aug 2008, 15:17
av Konservburk
ap_garden13 skrev:Hallå igen!
Tack för svaret! Jag har försökt lösa det nu. I två av rummen så ska jag bara ha två högtalare så det räcker nog att definiera 2 kanaler. I det första rummet så behöver jag 5 så jag skrev ihop det här:
...
Ser det bra ut är det något jag har glömt eller måste lägga till?
Det där ser hyfsat bra ut. Men 5.1-ljud är ju 6 kanaler och inte bara 5, så du vill nog lägga till ytterligare en kanal på det ljudkortet. Sen så måste du även ändra ljudkortA, ljudkortB och ljudkortc till just dina ljudkort.

En annan sak är att lite beroende på vad du har för 6-kanalskort så kan det fungera lite olika. Jag har 2 stycken, där det ena funkar som vanligt med 6 kanaler, medan det andra fungerar som 3 ljudkort med 2 kanaler för varje. Jag måste med andra ord ha tre slaves för bara det ljudkortet.
ap_garden13 skrev:Var i filen ska jag lägga in det här om det redan finns massa text? Kortet som ska använda 5.1 använder sig utav SPDif men det spelar väl ingen roll eller?
Nej, SPDIF borde inte spela någon roll. Exakt var i filen du ska lägga in detta beror ju lite på vad som redan står där. Du skulle kunna posta filen här så kan jag ta mig en titt på den.

Re: 3 ljudkort

Postat: 24 aug 2008, 15:51
av ap_garden13
Ok, ja det låter kanon! Jag ska pilla lite med det på tisdag har inte datorn här just nu så jag jag skickar filen då till dej.

Mvh
Jonas