Sie sind nicht angemeldet.

Lieber Besucher, herzlich willkommen bei: GentooForum.de. Falls dies Ihr erster Besuch auf dieser Seite ist, lesen Sie sich bitte die Hilfe durch. Dort wird Ihnen die Bedienung dieser Seite näher erläutert. Darüber hinaus sollten Sie sich registrieren, um alle Funktionen dieser Seite nutzen zu können. Benutzen Sie das Registrierungsformular, um sich zu registrieren oder informieren Sie sich ausführlich über den Registrierungsvorgang. Falls Sie sich bereits zu einem früheren Zeitpunkt registriert haben, können Sie sich hier anmelden.

1

27.11.2009, 04:39

asound.conf-fu meister gesucht ;) - kanäle duplizieren / klonen

moin zusammen,

vorab ein bisschen hintergrund informationen:
ich betreibe im wohnzimmer einen htpc auf gentoo basis. als mediacenter software kommt xbmc zum einsatz. nun ist es so, dass der htpc gleichzeitig an zwei verstärkern angeschlossen ist. einen benutze ich zum musik hören (reinrassiger stereo amp) den anderen für mehrkanal heimkino. die ketten sehen dadurch folgendermassen aus:

digitale kette:

Zitat

htpc -> HDMI -> receiver -> HDMI -> lcd


analoge kette:

Zitat

htpc -> TOSLINK -> dac -> CINCH -> stereo amp


innerhalb von xbmc habe ich die möglichkeit das audiointerface folgendermassen zu konfigurieren:
1. digital oder analog -> digital gesetzt
2. audio output device (abhängig von auswahl in punkt 1. entweder digital toslink/koax oder analog klinke) -> toslink gesetzt
3. passthrough output device (dts, ac3) -> hdmi gesetzt

soweit so gut. spiele ich einen film mit ac3 oder dts ton ab, wird das signal an den receiver übergeben der die decodierung übernimmt. spiele ich musik oder einen film ab, der nicht in ac3 oder dts ton vorliegt, wird das signal über toslink ausgegeben. hier stehe ich nun vor dem ersten problem, denn natürlich möchte ich auch nicht dts/ac3 videos über meinen receiver laufen lassen.
eine lösung wäre permanent das audiosignal, egal in welcher form es vorliegt, zu klonen um es auf beiden ausgangskanälen simultan auszugeben. ist das möglich? ich habe mich schon durch diverse asoud.conf variation geprügelt, aber so richtig schlau werde ich daraus nicht. irgendwie ist das eine wissenschaft für sich.

nun geht es weiter:
die gui von xbmc stellt audiosamples für die navigation zur verfügung. diese liegen in 44,1khz vor. da aber hdmi nur 48khz bzw 88,2khz ausgibt werden über hdmi diese samples nicht wiedergegeben. eine lösung dazu habe ich gefunden, die aber nur zur hälfte funktioniert. zwar habe ich nun per hdmi die navisounds, aber dafür nicht mehr über toslink:

Quellcode

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
pcm.!default {
    type plug
    slave.pcm "dmixer"
}
pcm.dsp0 {
    type plug
    slave.pcm "dmixer"
}
pcm.dmixer {
    type dmix
    ipc_key 1024
    slave {
        pcm "hw:0,3"
        #period_time 0
        period_size 1024
        buffer_size 8192
        #periods 128
        rate 44100
     }
     bindings {
        0 0
        1 1
     }
}
ctl.mixer0 {
    type hw
    card 0
}


was ich nun gerne haben möchte ist zusammengefasst:
- navigationssound auf allen ausgabekanälen
- simultane ausgabe von audio auf allen ausgabekanälen, egal welches format vorliegt

hat das schonmal jmd. gebaut, bzw. hat jmd ahnung von dem aufbau einer geeigneten asound.conf?

gruß,
xout

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »hal2050« (30.11.2009, 04:10)


2

27.11.2009, 14:44

also du willst Upmix und Downmix gleichzeitig auf allen Kanälen ausgeben können !?


Also stereo signale in z.b. 48000hz ausgeben und auf 5.1 hochrechnen und dann an den receiver senden.

oder

5.1 Signale in Stereo Downmixen und auf dem Analog verstärker ausgeben, so richtig?
Intel core 2 duo E6600
XFX Geforce 7950 gt
4096 MB DDR2
Intel DP35DP

3

27.11.2009, 15:13

ok, dachte mir schon, dass dieses szenario etwas verwirrend wirken könnte. :)

hdmi:
5.1 sound soll wie bisher per passthrough über hdmi ausgegeben werden. hier sollen die navisounds auf 48khz hochgerechnet werden. ebenso soll per hdmi aber
die möglichkeit bestehen den sound von zweikanal videos, die nicht ac3 kodiert sind, auszugeben.

toslink:
hier benötige ich im prinzip nur zweikanalton für musik. natürlich wird durch ein duplizieren eine unterscheidung unmöglich, das ist aber auch nicht schlimm wenn wirklich jedes audiosignal über alle kanäle ausgegeben wird (eher vorteilhaft). sollte das signal 5.1 sein, habe ich die möglichkeit innerhalb von xbmc einen downmix auf zweikanalton ausführen zu lassen. zusätzlich benötige ich die navisounds in 41,1khz.

4

27.11.2009, 15:25

also eh so wie ich gesagt habe:


hdmi upmix auf 5.1 und 48 bzw 96khz


und bei toslink:


downmix .. alles auf Stereo 44,1khz
Intel core 2 duo E6600
XFX Geforce 7950 gt
4096 MB DDR2
Intel DP35DP

6

27.11.2009, 16:13

gute erklärung dafüer habe ich hier gefunden:


asoundrc ubuntuusers.de
Intel core 2 duo E6600
XFX Geforce 7950 gt
4096 MB DDR2
Intel DP35DP

7

30.11.2009, 04:10

hey schade,

danke für die url, das war schon irgendwie aufschlussreich, aber ich habe es nicht geschafft mich in die alsa logik reinzufinden. aber dennoch habe ich meinen meister gefunden, nachdem ich die richtigen suchbegriffe in google geklopft habe: lösung im vdrportal.de

folgende asound.conf macht genau was ich will, wobei ich mir noch nicht ganz schlüssig über den aufbau bin, v.a. was dieser 4.0 table da anstellt:

Quellcode

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
cat /etc/asound.conf 
pcm.!default {
        type plug
        slave {
                pcm "both_digital"
        }
}

pcm.both_digital {
        type route
        slave {
                pcm multi
                channels 4
        }
        ttable.0.0 1.0
        ttable.1.1 1.0
        ttable.0.2 1.0
        ttable.1.3 1.0
}

# Toslink digital_1 output
pcm.digital_1 {
        type hw
        card 0
        device 1
        channels 2
}

# HDMI digital_2 output
pcm.digital_2 {
        type hw
        card 0
        device 3
        channels 2
}

pcm.multi {
        type multi
        slaves.a {
                pcm "digital_1"
                channels 2
        }

        slaves.b {
                pcm "digital_2"
                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
}


mit dieser config bekomme ich nun folgendes ergebnis, mit nachstehenden einstellungen in xbmc:

xbmc einstellungen:
- audio output: digital
- dolby digital capable receiver: yes
- dts capable receiver: yes
- audio output: default
- passthrough output device: hdmi
- downmix multichannel audio to stereo: yes (wahrscheinlich nicht notwendig, da ja ac3/dts sowieso weitergereicht wird)

ergebnis:
- gleichzeitige ausgabe von stereoquellen, egal ob video oder audio über toslink und hdmi
- passthrough von ac3/dts an externen avr. in diesem fall bleibt toslink stumm, das ist aber völlig in ordnung und sinngemäß auch logisch
- navigationssounds auf allen kanälen
- die config liesse sich noch zusätzlich auf eine simultane ausgabe per analog out erweitern

nachteile:
- bisher keine

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »hal2050« (30.11.2009, 04:19)


8

30.11.2009, 14:46

gratulation!


ich habe mich auch schon desöffteren mit der asoundrc geärgert .. und noch nicht den ultimativen durchblick erhalten .. ;) .. aber da es so gut wie jeden betrifft findet man die lösung zu jedem problem , sofern man das problem in worte fassen kann ...
Intel core 2 duo E6600
XFX Geforce 7950 gt
4096 MB DDR2
Intel DP35DP

9

30.11.2009, 15:04

gratulation!
++

Falls noch von Interesse, auf der Alsa-Homepage gibt es auch ein wenig grundsätzliche Doku hierzu:
http://www.alsa-project.org/main/index.php/Asoundrc

10

04.12.2009, 08:41

moin josef.95,

danke für den link, den habe ich allerdings schon in meinen bookmarks. ;)
ich denke um durch das thema wirklich durchzusteigen, müsste ich mir mal einen samstag zeit nehmen.

grüße,
hal2050