HOWTO ALSA sound mixer aka dmix

Uit Gentoo Linux Wiki

Ga naar: navigatie, zoeken

Inhoud

[bewerken] Introductie

Deze howto legt uit hoe ALSA en een van zijn plugins, “dmix” in te stellen. Dmix is enkel noodzakelijk als jouw geluidskaart niet in staat is om meer dan één geluid tegelijk te produceren, bv. een beep voor een nieuwe e-mail tijdens het afspelen van een mp3. Dmix voert softwarematig mixing van geluidskanalen uit door een 'drain' aan de hoofd-CPU toe te voegen. Het is in het algemeen beter voor de hardware (de geluidskaart) om de mixing uit te voeren als die dit kan.

Merk aub op dat dmix vanaf alsa-lib-1.0.9 RC2 automatisch ingesteld wordt voor de geluidskaarten die het nodig hebben. Volg de onderstaande instructie enkel als je ondervindt dat de standaardconfiguratie onvoldoende is.

[bewerken] ALSA instellen

De voorbereiding verschilt naargelang de kernelversie.

[bewerken] Identificeer jouw geluidskaart

De volgende sectie is afkomstig van de officiële Gentoo ALSA-documentatie:

Zoek eerst uit welke geluidskaart je hebt. Een eenvoudige methode is om naar “audio” in de weergave van het lspci-commando te zoeken. Als je lspci niet hebt, moet je pciutils installeren: emerge pciutils.

  # lspci | grep -i audio
  Multimedia audio controller: VIA Technologies, Inc. VT82C686 AC97 Audio Controller (rev 64).

Surf nu naar ALSA Soundcard Matrix en zoek naar jouw geluidskaart. In het hogervermeld voorbeeld ga je naar de “VIA”-fabrikant. Je zal dan een tabel met de gekende chipsets van die fabrikant krijgen. De chipset in het hogervermeld voorbeeld is "via82c686"; de "Details"-link informeert dan dat de driver voor deze geluidskaart via82xx is. Dit is alle informatie die je nodig hebt, de rest van het document heb je niet nodig.

[bewerken] USE-vlaggen aanpassen

Jouw USE-vlaggen moeten ALSA als primaire geluidsserver zien. We voegen 2 USE-vlaggen toe, zodat zowel oude als nieuwe programma's geluid kunnen ondersteunen:


File: /etc/make.conf
...
USE="alsa oss ..."
...

De ALSA-vlag zal nieuwe toepassingen toelaten om de ALSA-geluidsserver rechtstreeks te gebruiken. De OSS-vlag zal 'legacy (vertaling ?)'-ondersteuning inbouwen voor nieuwe toepassingen in het geval je om een of andere reden OSS-emulatie moet gebruiken. Het zal ook ondersteuning inbouwen voor programma's die geen ALSA-optie hebben. Het gebruik van de OSS-vlag is vooral belangrijk voor programma's zoals het Wineproject, waarvan de ALSA-drivers nog niet zo op punt staan.

[bewerken] Kernel 2.4 klaarmaken

Het is met kernel versies 2.4 in het algemeen beter om ALSA mee met de kernel te bouwen dan om het alsa-driver pakket te gebruiken.


Linux Kernel Configuratie: Kernel Configuratie
Loadable module support  --->
    [*] Enable loadable module support
Device Drivers  --->
    Sound  --->
        <M> Sound card Support
            Advanced Linux Sound Architecture  --->
                <M> Advanced Linux Sound Architecture
            Open Sound System  --->
                < > Open Sound System (Deprecated)

Verzeker je ervan om de modules voor zowel OSS modulatie als voor elk van de geluidskaarten in jouw computer te selecteren.

Als dat klaar is compileer en installeer je de kernel.

[bewerken] Kernel 2.6 klaarmaken

[bewerken] Ondersteuning vanuit de kernel bron

ALSA modules kunnen vanuit de kernel bron opgebouwd worden. Dot kan zowel als modules (duidt de selecties aan met M) als in de kernel zelf (duidt de selecties aan met *). Het voorbeeld werkt als module. Selecteer de volgende opties in de kernel configuratie:


Linux Kernel Configuratie: Kernel Configuratie (2.6.15 Voorbeeld)
Loadable module support  --->
    [*] Enable loadable module support
Device Drivers  --->
    Sound  --->
        <M> Sound card Support
            Advanced Linux Sound Architecture  --->
                <M> Advanced Linux Sound Architecture
                <M> Sequencer Support
                <M> OSS Mixer API
                <M> OSS PCM (digital audio) API
                <M> RTC Timer support
                < > Verbose printk
                < > Debug
                Generic Devices  --->
                PCI Devices  --->
                USB Devices  --->
            Open Sound System  --->
                < > Open Sound System (DEPRECATED)

Denk er aan om drivers voor jouw geluidskaart(en) in de PCI or USB Devices secties aan te duiden. Compileer en installeer de kernel zoals uitgelegd in het handbook http://www.gentoo.org/doc/en/handbook of de HOWTO ..., herstart daarna en ga verder.

Waarschuwing: Verifieer of je /boot hebt gekoppeld wanneer je de nieuwe kernel installeert !

Nu kan je eenvoudigweg

#emerge alsa-utils alsa-oss

en dan kan je gaan configureren.

[bewerken] Ondersteuning door het alsa-driver pakket

Deze optie bouwt geluidsondersteuning op in de kernel, maar gebruikt geen specifieke geluids server. We zullen het alsa-driver pakket van portage gebruiken om de opbouw van de geluidskaarten te vervolledigen. Dit laat een beter beheer to voor het updaten van jouw ALSA and ALSA driver versies.


Linux Kernel Configuratie: Kernel Configuratie
Loadable module support  --->
    [*] Enable loadable module support
Device Drivers  --->
    Sound  --->
        <M> Sound card Support
            Advanced Linux Sound Architecture  --->
                < > Advanced Linux Sound Architecture
            Open Sound System  --->
                < > Open Sound System (DEPRECATED)

Compileer en installeer jouw kernel en herstart om verder te gaan. We zullen daarna jouw computer systeem instellen om het alsa-driver pakket te gebruiken.


[bewerken] Alsa-driver installeren

Sla deze sectie over als de ALSA modules rechtstreeks in de kernel hebt geconfigureerd.

Eerst, moeten we de alsa-driver vertellen welke modules voor jouw type geluidskaart moeten opgebouwd worden. Open met jouw favoriete tekstverwerker /etc/make.conf en voeg een nieuwe variabele met naam ALSA_CARDS toe. Benoem in deze variabele de geluidskaartdriver die wenst te gebruiken (die je zou moeten hebben van de 'Identificeer jouw geluidskaart' sectie). Deze drivernamen zijn NIET dezelfde als de modulenamen! Gebruik de modulenaam zonder het voorvoegsel "snd-":

File: /etc/make.conf
...
ALSA_CARDS="via82xx"

Merk op dat je meerdere geluidskaartdrivers in de variabele ALSA_CARDS kan opgeven door ze met een komma te scheiden. Zie http://www.alsa-project.org/alsa-doc/index.php?vendor=All om een lijst van andere ALSA_CARDS te bekomen.

Nu zullen we ALSA en de geselecteerde drivers compileren:

#emerge alsa-lib alsa-driver alsa-oss alsa-utils

Update nu jouw configuratie bestanden:

#etc-update

[bewerken] Configuratie na de installatie

Eerst moet je /etc/modules.d/alsa specifiek vor jouw geluidskaarten en OSS emulatie editeren en configureren.

Hier is het gentoo standaard configuratie bestand:

File: /etc/modules.d/alsa
# Alsa 0.9.X kernel modules' configuration file.
# $Header: /home/cvsroot/gentoo-x86/media-sound/alsa-utils/files/
# alsa-modules.conf-rc,v 1.1 2003/08/05 21:07:55 johnm Exp $


# ALSA portion
alias char-major-116 snd
# OSS/Free portion
alias char-major-14 soundcore

##
## BELANGRIJK:
## Je moet deze sectie aanpassen aan jouw geluidskaart(en)
## en dan het `update-modules' commando uitvoeren.
## Lees het alsa-driver INSTALL bestand in /usr/share/doc voor meer info.
##
##  ALSA portion
alias snd-card-0 snd-cmipci
## alias snd-card-1 snd-ens1371
##  OSS/Free portion
alias sound-slot-0 snd-card-0
## alias sound-slot-1 snd-card-1
##

# OSS/Free portion - card #1
alias sound-service-0-0 snd-mixer-oss
alias sound-service-0-1 snd-seq-oss
alias sound-service-0-3 snd-pcm-oss
alias sound-service-0-8 snd-seq-oss
alias sound-service-0-12 snd-pcm-oss
##  OSS/Free portion - card #2
## alias sound-service-1-0 snd-mixer-oss
## alias sound-service-1-3 snd-pcm-oss
## alias sound-service-1-12 snd-pcm-oss

alias /dev/mixer snd-mixer-oss
alias /dev/dsp snd-pcm-oss
alias /dev/midi snd-seq-oss

# Set this to the correct number of cards.
options snd cards_limit=1


Hier is een bruikbare configuratie voor een geluidskaart volledig met OSS emulatie:


File: /etc/modules.d/alsa (single card)
alias char-major-116 snd
alias char-major-14 soundcore

alias snd-card-0 snd-emu10k1
alias sound-slot-0 snd-card-0

alias sound-service-0-0 snd-mixer-oss
alias sound-service-0-1 snd-seq-oss
alias sound-service-0-3 snd-pcm-oss
alias sound-service-0-8 snd-seq-oss
alias sound-service-0-12 snd-pcm-oss

alias /dev/dsp snd-pcm-oss

options snd cards_limit=1


Hier is een voorbeeld van configuratie van 2 geluidskaarten met OSS emulatie voor elk van de kaarten:


File: /etc/modules.d/alsa (multiple cards)
alias char-major-116 snd
alias char-major-14 soundcore

#Card 1
alias snd-card-0 snd-emu10k1
alias sound-slot-0 snd-card-0

alias sound-service-0-0 snd-mixer-oss
alias sound-service-0-1 snd-seq-oss
alias sound-service-0-3 snd-pcm-oss
alias sound-service-0-8 snd-seq-oss
alias sound-service-0-12 snd-pcm-oss

options snd-emu10k1 index=0

alias /dev/dsp snd-pcm-oss

#Card 2
alias snd-card-1 snd-intel8x0
alias sound-slot-1 snd-card-1

alias sound-service-1-0 snd-mixer-oss
alias sound-service-1-3 snd-pcm-oss
alias sound-service-1-12 snd-pcm-oss

options snd-intel8x0 index=1

alias /dev/dsp1 snd-pcm-oss

options snd cards_limit=2

In de bovenstaande configuratie voor 2 kaarten bepaalt index=0 of index=1 de volgorde waarin de modules geladen worden en zo welke de eerste geluidskaart is. Dit zorgt ervoor dat de geluidskaart van je keuze als standaard gebruikt wordt. Merk op dat de module niet geladen moet worden om de plaats te 'reserveren'. Daarom zal index=0 en index=2 plaats reserveren voor een derde geluidskaart die je ertussen kan plaatsen.

Moest dit om een of andere reden niet werken dan kan je dit nog oplossen met volgorde van het opladen van de modules. Nu zullen de de kernel vertellen welke modules bij het opstarten geladen moeten worden. Vervang de voorbeelden met jouw modules. De naam van de modules moeten het "snd-" voorvoegsel hebben.


File: /etc/modules.autoload.d/kernel-2.6
# /etc/modules.autoload.d/kernel-2.6:  kernel modules te laden wanneer het 
# systeem start.
#
# Merk op dat bestand voor 2.6 kernels is.
#
# Voeg in dit bestand, 1 per regel, de naam van de modules toe 
# die je bij opstart wenst te laden.  Commentaarregels beginnen
# met # en worden overgeslagen. Lees  man modules.autoload
# voor bijkomende details.

# Bijvoorbeeld:
# 3c59x

snd-emu10k1
snd-intel8x0

Merk op dat de volgorde waarin je de geluidskaarten oplijst de volgorde zal zijn die ALSA zal gebruiken om te bepalen welke geluidskaart de eerste en dus standaard zal zijn en welke tweede.

Voer nu modules-update uit om de wijzigingen in zowel /etc/modules.d/alsa als in de vorige entry vast te leggen:

#modules-update -f

De -f optie forceert de uitvoering van de wijzigingen. Sommige versies van Gentoo zullen in plaats hiervan de volledige --force of force (modules-update force) optie vereisen. Pas dit desgevallend aan..

We voegen ALSA aan de standaard runtime toe zodat het bij opstarten mee start:

#rc-update add alsasound boot

Start ALSA nu manueel:

#/etc/init.d/alsasound start

En voer alsamixer uit om het geluid op de kanalen op te zetten en een aanvaardbaar geluidsniveau in te stellen.. Je moet alsamixer met de -c vlag uitvoeren om aan te geven welke geluidskaart wordt ingesteld:

#alsamixer -c 0

or 

#alsamixer -c 1

Hierna moet je jouw instellingen opslaan met:

#/etc/init.d/alsasound save

of

#alsactl store

Dit slaat jouw instellingen op in /etc/asound.state. /etc/init.d/alsasound zal dit bestand gebruiken om de geluidsniveaus bij opstart te bepalen.

[bewerken] Driver controleren

Sla deze sectie over (of beter nog vul ze aan) als je de methode Alsa-driver installeren hebt gevolgd. Controleer, van zodra je in de nieuwe kernel opgestart bent, of je de juiste driver geinstalleerd hebt.Voer volgend commando uit:

cat /proc/asound/cards

De weergave van de commando zou er min of meer zo moeten uitzien (uiteraard met de gegevens van jouw geluidskaart):

 0 [Live           ]: EMU10K1 - SBLive! Value [CT4871]
                      SBLive! Value [CT4871] (rev.8, serial:0x80321102) at 0xa000, irq 5 

Als je geen geluidskaarten ziet dan heb je niet de juiste driver geactiveerd. Ga terug naar stap 1 en probeer opnieuw. Als jouw kaart weergegeven wordt ga dan verder.

Tip: Als jouw geluidskaart niet weergegeven wordt kan het ook zijn dat je niet met de nieuwe kernel opgestart hebt. Voor het commando "uname -v" uit en kijk na of de datum ongeveer overeenkomt met het tijdstip dat je de nieuwe kernel hebt gecompileerd. Als dit niet het geval is dan ben je nog steeds de oude kernel aan het lopen.

[bewerken] Gebruiksrechten instellen

De gebruikers kunnen ze de geluidskaart niet gebruiken zolang ze niet aan de “audio” groep toegevoegd zijn. Elke gebruiker van de geluidskaart moet aan de "audio" groep worden toegevoegd:

#gpasswd -a gebruikersnaam audio

Vervang "gebruikersnaam" door de gebruiker die toegang wenst te verlenen.

En dat is het.

Waarschuwing: Als je ingelogd bent als gebruiker en je hebt jezelf aan de audio groep toegevoegd dan moet je opnieuw inloggen om de wijziging te laten doorgaan.


[bewerken] Geluid aanzetten

Het geluid wordt standaardmatig afgezet. Je hebt alsamixer nodig om het aan te zetten. Alsamixer maakt deel uit van het media-sound/alsa-utils pakket. Emerge het nu :

emerge alsa-utils

Voer nu het alsamixer commando uit : alsamixer. De belangrijkste kanalen zijn Master en PCM. Je moet ze beide aanzetten met "M" en dan op 70% of zo instellen. Daarna tik druk je op "esc" om alsamixer te verlaten.


[bewerken] Testen & Gerbuiken

Nu zou also moeten werken. Dus start nu je favoriete multimedia programma op en probeer het. Mijn favoriet is mplayer, zijn console weergave is zeer uitgebreid en erg goed om te weten of alsa goed werkt. Als jouw multimedia programma niet met alsa ondersteuning gecompileerd werd moet je alsa aan jouw USE vlaggen in /etc/make.conf toevoegen en het commando emerge --newuse --update world gebruiken of ze te hercompileren.


[bewerken] Mixer instellingen opslaan

De geluidskaart zal geen geluid geven bij opstart tenzij je de kaart instelt om jouw mixer instellingen op te slaan. Dit kan je door het "alsasound" init script te gebruiken. Naast andere dingen stelt alsasound ook jouw opgeslagen mixer instellingen in bij opstart en slaat ze op bij afzetten van de computer. Eerst moet je jouw huidige mixer instellingen opslaan met /etc/init.d/alsasound save om daarna toe te voegen aan de standaard of de opstart runlevel zodat het automatisch start (en opgeslagen instellingen instelt) bij opstart:

rc-update add alsasound boot

[bewerken] Opmerkingen

Jouw standaard ALSA configuratie zonder dmix is nu volledig. Merk op dat het niet nodig is om met een dmix configuratie verder te gaan tenzij je er een specifieke reden voor hebt, vooral rekening houdend met KDE en GNOME die beide methodes voor software mixing voorzien. Voor de basis gebruiker is ALSO nu volledig.

[bewerken] Gekende problemen

[bewerken] Kernel 2.6.16

Er is momenteel een probleem met het alsa-driver pakket en de kernel 2.6.16, zij het vanilla, Gentoo, of -ck. Weet dat ALSA upgrading naar ALSA 1.0.11_rc3 of recenter het probleem voor sommigen zal oplossen. Voor anderen kan dit echter modules creëren die niet door de nieuwe kernel kunnen geladen worden. Wees er je van bewust dat je 2.6.16 enkel kan gebruiken met ALSA in de kernel gecompileerd. 2.6.15 is aanbevolen voor iedereen met het alsa-driver pakket tot het probleem is opgelost.

Als je ervoor kiest om geluidskaartondersteuning direct in de kernel te compileren en alsa-geluid op video ontvangst (capture) kaarten wilt hebben dan kunnen er problemen zijn met 2.6.16. (Het werkte bij mij met 2.6.15.) Mijn systeem herkent de TV kaart voor de geluidskaart als een alsa component. Dit maakt dat de TV kaart herkend wordt als de standaard geluidskaart wat leidt tot geen geluid en veel alsa toepassingen die niet werken. Compileren als modules [zoals in het 2.6.15 voorbeeld hierboven] loste het probleem voor mij op.

[bewerken] UDEV 089-r2

Vanaf UDEV 089 (dat baselayout 1.12.0-pre18-r1 of hoger nodig heeft om correct te werken), worden modules in /etc/modules.autoload.d/kernel-2.6 in OMGEKEERDE volgorde geladen. Pas jouw settings dienovereenkomstig aan.

[bewerken] Geen geluid, Mixers aangepast

Als je verandert van ingebouwde ALSA, kernel modules, en de alsa-driver, is het mogelijk dat je /etc/asound.state moet wissen om jouw geluidskaarten geluid te laten produceren. Herstart /etc/init.d/alsasound na het uitvoeren van de verandering en dit zal /etc/asound.state opnieuw aanmaken. Je zal daarna het geluid van de mixers terug moeten aanzetten.

[bewerken] Herkenningen

Redeeman
Redeeman
Redeeman
sametoms - small adjustments
w0rm - some corrections
ep98 - small adjustments
chuck_theobald - some additions
jbdubbs - complete rewrite plus multiple cards support
high - small correction

[bewerken] Installatie testen

  • Installeer alsaplayer:
$ emerge media-sound/alsaplayer
  • Test basic dmix op alsa met:
$ alsaplayer -o alsa -d plug:dmix somesong1.mp3 &
$ alsaplayer -o alsa -d plug:dmix somesong2.mp3 &
$ alsaplayer -o alsa -d plug:dmix somesong3.mp3

Dit zou als een fluitje van een cent moeten gaan als dmix als standaard ingesteld staat. Als het tweede of derde audio signaal stottert dan is het mogelijk dat je een probleem hebt met de buffer capaciteit of de sampling rate, afhankelijk van jouw geluidskaart en zijn specifieke problemen. Lees in dit geval verder om jouw installatie aan te passen.


[bewerken] Intro tot dmix

Het virtueel geluidsmengpaneel is een ALSA plugin die meerdere geluidskanalen aanneemt en in een virtueel kanaal, dat de meeste geluidskaarten aankan, mengt. Elke geluidskaart die geen meerdere geluidskanalen of hardware mixing aankan moet deze plugin gebruiken om het volle voordeel van ALSA en zijn capciteiten te kunnen benutten.

In de meeste gevallen zal zal dmix automatisch geconfigureerd zijn voor ALSA 1.0.9 RC2 en hoger. Er is geen noodzaak om de standaard configuratie voor de basis gebruker aan te passen en het zou transparant op jouw systeem moeten werken.

Ingeval een toepassing niet standaardmatig gebruik maakt van dmix of als jouw systeem gebruik maakt van OSS emulatie dan kan enig ingrijpen noodzakelijk zijn.. Deze HOWTO beschrijft de meeste ingrepen om toepassingen met de plugin correct te laten lopen.

[bewerken] dmix Configuratie voor OSS Emulatie

Nu zijn we klaar om ~/.asoundrc te maken om de dmix plugin voor OSS toepassingen te gebruiken en onze dsp apparaten en standaard pcm interfaces te te omkaderen (wrappen).

[bewerken] Test voor OSS Emulatie

Eerst zullen we vaststellen of jouw OSS configuratie correct werkt.:

Creëer ~/.asoundrc en zet er deze informatie in:

File: ~/.asoundrc
# ~/.asoundrc:

pcm.dsp0 {
    type plug
    slave.pcm "hw:0,0"
}
# of:
#  pcm.dsp0 pcm.default
# als "default" niet werd geherdefinieerd

ctl.mixer0 {
    type hw
    card 0
}

Als je mpg321 nog niet hebt geinstalleerd:

# emerge mpg321

Test dan aoss met mpg321 in OSS mode:

# aoss mpg321 enofander.mp3

Dit zou het bestand moeten afspelen, maar geen "dmix".

[bewerken] Eenvoudige configuratie

File: ~/.asoundrc
# ~/.asoundrc

pcm.dsp0 {
    type plug
    slave.pcm "dmix"   # <-- deze lijn werd gewijzigd!
}

# mixer0 kan ongewijzigd blijven, omdat het toch niet gebruikt wordt, denk ik:)
ctl.mixer0 {
    type hw
    card 0
}

# I also had to add/alter the following, making ALSA use dmix by default
pcm.!default {
    type plug
    slave.pcm "dmix"
}

Test deze setup met mpg321 zoals het voorbeeld hierboven. Dit zo ge-dmix-ed OSS afspelen moeten activeren, maar zal niet werken of geluidskaarten zoals M-Audio, Audiophile of andere Delta kaarten, die een welbepaald audioformaat nodig hebben om af te spelen op hw:0 (dat dmix standaardmatig gebruikt). Een correctie hiervoor staat hieronder.

[bewerken] Gevorderde configuratie

Dit vergt het definiëren van dmix parameters. Als de geluidskaart een welbepaalde formaatconversie vereist dan moeten we een aangepast dmix toestel creëren. Laat ons het ossmix noemen.


File: ~/.asoundrc
pcm.ossmix {
    type dmix
    ipc_key 1024          # moet uniek zijn!
    ipc_perm 0660         # geluid voor iedereen (tenminste in jouw groep)
    slave {
        pcm "hw:0,0"      # je kan hier geen "plug" toestel gebruiken.
        period_time 0
        period_size 1024  # moet een macht van 2 zijn
        buffer_size 8192  # dito.
        #format "S32_LE"
        #periods 128      # dito.
        #rate 8000        # met een rate 8000 “zal” je horen,
        #of ossmix gebruikt wordtis used :)
    }
}
# bindings zijn cool. Dit zegt dat enkel de eerste
# twee kanalen door dmix gebruikt moeten worden, wat voldoende is
# voor (de meeste) oss toepassingen en ook multikanaal chios 
# veel sneller doet werken:

bindings {
        0 0   # from 0 => to 0
        1 1   # from 1 => to 1
}

pcm.dsp0 {
    type plug
    slave.pcm "ossmix"     # onze nieuwe PCM hier
}
# mixer0 zoals hierboven
ctl.mixer0 {
    type hw
    card 0
}

Het is belangrijk dat deze "ossmix" PCM werkt met jouw geluidskaart o, ALSA mode. D.w.z. hetvolgende zou geluid moeten geven:

# alsaplayer -o alsa -d ossmix some.mp3
    • Een ander complex voorbeeld voor nvidia nforce(2) borden (intel8x0) – waar de bovenstaande oplossing niet werkte voor mij deed de volgende het wel. (ontleend van forum.hardware.fr (draa in het Frans).

Dit werkt waarschijnlijk beter op chips omdat de codecs 44k1 weergave niet behoorlijk ondersteunen; ze werken veel betrouwbaarder op 48kHz.


File: ~/.asoundrc (nvidia nforce setup)
pcm.nforce-hw {
        type hw
        card 0
}
pcm.!default {
        type plug
        slave.pcm "nforce"
}
pcm.nforce {
        type dmix
        ipc_key 1234
        ipc_perm 0660
        slave {
                pcm "hw:0,0"
                period_time 0
                period_size 1024
                buffer_size 4096
                #rate 44100
                rate 48000
        }
}
ctl.nforce-hw {
        type hw
        card 0
}

Kijk op Hardware Related Configs verderop in deze tekst voor meer configuraties. **

[bewerken] Herkenningen

Frank Barknecht


[bewerken] Software gerelateerde configuraties

[bewerken] aRts en KDE configureren

[bewerken] aRts benadering

aRts is een kader om modulaire mediatoepassingen te ontwikkelen. De geluidsserver, artsd, laat meerdere toepassingen toe om gezamenlijk geluid en muziek te produceren. aRts is ontworpen voor zijn filter en synthesis capaciteiten naar andere toepassingen die het multimedia communicatie protocol (MCOP) gebruiken. aRts is ook in staat om modular realtime synthesis te doen. Het kan geluid & muziek (realtime midi synthesis) produceren gebruik makend van kleine modules zoals oscillators om golfvormen, allerlei filters, mixers, faders, enz te creëren.

KDE zal aRts vereisen tot 4.0, dat gepland is voor 2006. Het moet geinstalleerd worden zelfs al wordt het enkel gebruikt als een doorvoerlaag (pass-through layer) omwille van toepassingsafhankelijkheden.

Leidt, voor de beste prestaties, aRts om naar jouw dmix toestel. Dit kan gedaan worden door de toestellocatie naar plug:dmix te overschrijven.

[bewerken] ALSA Benadering

Dit is de oplossing bij voorkeur omdat er geen behoefte is aan bijkomende laag eronder.

Kan gebruikt worden bij KDE 3.2.2 en hoger door aRts om te leiden naar jouw ALSA (dmix) toestel. Versies 3.2.1 en lager vereisen OSS emulatie.

[bewerken] ESD (esound) benadering

De Enlightenment sound daemon, alias ESD, alias esound.

Als je geen dergelijke optie hebt in jouw control center, dan zal je het moeten hercompileren met de juiste ./configure opties. En je moet esd uiteraard geinstalleerd hebben staan in jouw systeem (de pakketnaam is vaak esound).

Nu is geluid in KDE gemixt met geluid van alsa gestuurde toepassingen zonder (het bijna steeds niet werkende) artsdsp.

[bewerken] OSS Emulatie benadering

Dit is enkel nodig voor KDE versies 3.2.1 en lageromdat deze ALSA nog niet herkennen. OSS emulatie gebruiken in versies na 3.2.1 zal minderwaardige prestaties geven.

  • Setup OSS Emulatie zoals eerder uitgelegd in dit artikel.
  • In KDE Control Center, kies Open Sound System als jouw standaard geluidsserver. Indien nodig kan je Override Device Location aanvinken en een /dev/dsp toestel overeenkomstig jouw geluidskaart invoegen (enter a /dev/dsp device) .

[bewerken] Herkenningen

Zoltan (Note: en dan nog in het Russisch !)
maHo
jbdubbs - Complete Rewrite

[bewerken] Gnome/eSound configureren

Recente vrijgaves van esound gesupporteerde alsa plug in hardware toestellen, dus als jouw gnome applicaties of sommige binaire applicaties gemakkellijk kunnen werken met esound en je geeft niet om enige vertraging dan kan esound afspelen naar dmix, dat zeer goed werkt.

Verzeker je ervan dat jouw esd alsa gebruikt, en voeg de -d default optie toe aan /etc/esd/esd.conf.

File: /etc/esd/esd.conf
[esd]
auto_spawn=1
spawn_options=-terminate -nobeeps -as 2 -d default
spawn_wait_ms=100

Als je merkt dat esd niet wilt afspelen met het standaard toestel, of als je esd -d default start, het segfaults (geen vertaling van segfaults) , dan wil dit zeggen dat je esound<=0.2.32 hebt, dat verouderde API . Als dit zo is installeer dan een recentere versie of compileer de recentste esound van esound-alsa-pcm-newapi.patch

[bewerken] pulseaudio

Editteer /etc/pulseaudio/defaults.pa, zo dat alle regels met module-alsa-sink ook device=dmix (dmix, of wat ook het mixing toestel in jouw .asoundrc is) bevatten. Example config file:

File: /etc/pulseaudio/defaults.pa
#!/usr/bin/pulseaudio -nF

#
# Dit bestand is onderdeel van pulseaudio.
#
# pulseaudio is vrije software; je kan het herverdelen en of aanpassen
# onder de voorwaarden van de GNU Lesser General Public License zoals 
# gepubliceerd door de Free Software Foundation; of versie 2 van de 
# License, of (naar jouw keuze) elke recentere versie.
#
# pulseaudio wordt verdeeld in de hoop dat het nuttig zal zijn, maar
# ZONDER ENIGE GARANTIE; zonder zelfs indirecte garantie van
# MERCHANTABILITY of FITNESS FOR A PARTICULAR PURPOSE. Zie de GNU
# General Public License voor meer details.
#
# Je zou een copy van de GNU Lesser General Public License
# samen met pulseaudio moeten hebben; indien dit niet zo is schrijf dan
# naar de Free Software Foundation,
# Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.


# Load audio drivers statically

#load-module module-alsa-sink sink device=dmix
#load-module module-alsa-source device=plughw:1,0
#load-module module-oss device="/dev/dsp" sink_name=output source_name=input
#load-module module-oss-mmap device="/dev/dsp" sink_name=output source_name=input
load-module module-null-sink
#load-module module-pipe-sink

# Laadt audio drivers automatisch bij gebruik

# ALSA
add-autoload-sink output module-alsa-sink sink_name=output device=dmix
add-autoload-source input module-alsa-source source_name=input

# OSS
add-autoload-sink output module-oss device="/dev/dsp" sink_name=output source_name=input
add-autoload-source input module-oss device="/dev/dsp" source_name=input sink_name=output

#add-autoload-sink output module-oss-mmap device="/dev/dsp" sink_name=output source_name=input
#add-autoload-source input module-oss-mmap device="/dev/dsp" sink_name=output source_name=input

# Laadt verschillende protocols
load-module module-esound-protocol-unix
#load-module module-esound-protocol-tcp
load-module module-native-protocol-unix
#load-module module-simple-protocol-tcp
#load-module module-cli-protocol-unix

# Laadt de CLI module
load-module module-cli

# Maakt siommige toestellen tot standaard
set-default-sink output
set-default-source input

.nofail

# Laadt iets naar de sample cache
load-sample x11-bell /usr/share/sounds/generic.wav
#load-sample-dir-lazy /usr/share/sounds/*.wav

# Laadt de X11 bel module
load-module module-x11-bell sample=x11-bell sink=output

# Publiceert connectie data in het X11 root venster
load-module module-x11-publish

#load-module module-pipe-source
#load-module module-pipe-sink 

[bewerken] MPlayer

Als je alsa opzet op het moment van compilatie (te doen met USE variabelen) dan kan je /etc/mplayer.conf editteren in de regel waar je ao=oss ziet naar:

File: /etc/mplayer.conf
ao=alsa:device=dmix

of mplayer eenvoudigweg starten zolas hier:

# mplayer -ao alsa movie.avi

?je zou dit commando eerst moeten uitvoeren

# mplayer -ao help

je een weergave zien van alle audio parameters, dit zal correcter zijn als je de -ao parameter toewijst.

Notitie: De syntax om alsa met mplayer te gebruiken is veranderd in de nieuwere versies van mplayer. Voor de 1.0_pre4 reeks zal je "alsa1x:default" moeten gebruiken in plaats van "alsa9:default". Vanaf 1.0_pre5 zal je eenvoudigweg "alsa:device=dmix" moeten gebruiken.

Notitie: In mplayer is het mogelijk om audio sample rates te converteren gebruik makende van de -srate vlag. Of je kan jouw mplayer config bestand (/etc/mplayer.conf, or ~/.mplayer/config) editteren en de regel srate=X (X zijnde de sample rate gedefinieerd in .asoundrc) toevoegen.
Notitie: De RealMedia codecs verdeeld voor mplayer schijnen dmix niet te graag te willen. Symptomen zijn stotterend of vastlopend geluid of video. De eneige remedie die ik ken is alles wat hetzelfde audio toestel gebruikt stoppen..

De period_size en buffer_size in ~/.asoundrc moet ingesteld worden naar

File: ~/.asoundrc

...

pcm.dmixer  {
    type dmix
    ipc_key 1024
    slave {
        pcm "hw:0,0"
        period_time 0
        period_size 1024  <===== here
        buffer_size 8192  <===== and here
        periods 128
        rate 44100
    }
    bindings {
        0 0
        1 1
    }
}

...

Dit is zijn wat magische getallen om mplayer behoorlijk te laten werken.

[bewerken] Herkenningen

Redeeman
00420
00420
Zoltan (Note: Russian language forum.)

[bewerken] XMMS

Options->Preferences

  • Selecteer Alsa Plugin
  • Configureer
    1. Audio Device: "dmixer" (zoals hoger vermeld conf voorbeeld) dat hetzelfde is als "ossmix". Als dmixer niet werkt met jouw versie van de xmms ALSA output plugin, probeer dan plug:dmixer als the weergavetoestel te specifiëren.
    2. Gebruik software volume regeling (ik wil muziek niet luider hebben om het gAIM geluids niet hoger te hebben!)
    3. mixer toestel en mixer kaart zijn bij mij weggecommentarieerd
    4. Advanced Setting (deze instellingen kunnen eigen zijn aan een specifieke geluidskaart)
      • buffer time: 750ms
      • period time: 75ms
      • uncheck mmap mode

[bewerken] GAIM

Tools->Preferences->Sounds->Sound Command =
aplay -D plug:dmix %s

If it doesn't work, try: aplay %s

[bewerken] Firefox, Mozilla, RealPlayer, Skype & Co

Om zijn plugins (vooral libflashplayer.so) dmix' via aoss te laten gebruiken':

  • Verplaats de originele firefox symlink
# rm /usr/bin/firefox
# ln -s /usr/libexec/mozilla-launcher /usr/libexec/firefox
  • Creëer een nieuw uitvoerbaar script:
File: /usr/bin/firefox
#!/bin/sh

# Deze regel moet onderhouden worden anders zal Thunderbird 
# ( en sommige andere toepassingen) geen links opstarten 
# wanneer ze gestart worden
export MOZILLA_LAUNCHER=firefox

# niet juist:
#aoss /usr/libexec/firefox $*
#
# juist:
aoss /usr/libexec/firefox "$@"

  • Volgens mijn ervaring met Firefox 1.5.x (uit bron gecompileerd, niet het binaire pakket) heb je niet nodig wat hierboven staat en is het enkel voldoende om de laatste regel van /usr/bin/firefox aan te passen - voeg aoss in na exec
# exec aoss /usr/libexec/mozilla-launcher "$@"
  • Als variante op alles wat hierboven staat kan je eenvoudigweg /usr/libexec/mozilla-launcher aanpassen om te zorgen voor mozilla, firefox, en seamonkey allemaal tegelijk. Op ongeveer regel 400
File: /usr/libexec/mozilla-launcher
  else
    #"$mozbin" "$@" &           #oude regel
    aoss "$mozbin" "$@" &       #nieuwe regel met dmix
  fi

Het is mogelijk om op een gelijkaardige wijze “dmix” in te stellen voor andere “oss” toepassingen zoals:

  • gflashplayer
  • realplayer
  • skype (nota: het werkt echter niet volledig. Zie here)
  • mozilla (suite)

NOTA: Skype 1.3 gebruikt ALSA van origine, je hebt dmix niet meer nodig tenzij je enkele zeer specifieke eisen hebt.

Aldus kan je bij wijze van spreken verschillende tabs met flash hebben allemaal tesamen geluid producerend en een inkomende oproep of systeemsignalen horen.


Bijvoorbeeld:

# rm /usr/bin/skype
# touch /usr/bin/skype
# chmod +x /usr/bin/skype

en zijn inhoud:

File: /usr/bin/skype
#!/bin/sh
aoss /opt/skype/skype "$@"

Beter zelfs – als je dit verstandig doet, dan is er geen noodzaak om een of ander menu of voorkeuren (zoals "standaard browser") aan te passen.

[bewerken] LICQ

Stel het gebruik van aplay in in de voorkeuren.

[bewerken] SDL

Stel de omgeving in met:

File: /etc/env.d/99sdl
SDL_AUDIODRIVER=alsa
AUDIODEV=default

AANDACHT: AUDIODEV instellen kan een niet-werkende Mozilla opleveren! :-/

[bewerken] GStreamer

Emerge gnome-media, voer daarna volgend commando uit gstreamer-properties en stel jouw Audio-Sink in. Weergave is Custom. Pipeline is alsasink -device=dmix (of device=ossmixer, als het dit is wat je in jouw asoundrc gebruikt hebt, of eenvoudigweg -device=dmix als je het niet aangepast hebt)

(Hint: rhythmbox gebruikt gstreamer)

[bewerken] MPD

Verander mixer_device van standaard naar dmix in /etc/mpd.conf.

mixer_type              "alsa"
mixer_device            "dmix"
mixer_control           "PCM"

Wijzig daarna ao_driver_options van dev=hw:0,0 naar dev=dmixer in /etc/mpd.conf.

ao_driver_options       "dev=dmixer"
#or
ao_driver_options       "dev=plug:dmix"

Nota: Ik moest dit gebruiken:

ao_driver_options       "dev=pcm.ossmix"

Dit omdat ik "alternate method" gebruik (geplaatst in /etc/asound.conf echter).

Als je nog steeds problemen hebt om het correct te doen werken probeer dan de instelling mpd als gebruiker uit te voeren door user te wijzigen in /etc/mpd.conf.

[bewerken] Xine Engine

Voeg deze regel toe in jouw xine config bestand:

File: ~/.xine/config

audio.driver:alsa

Verzeker je ervan om alle andere "audio.driver:" regels weg te commentariëren of te wissen. Voer als variante, als je xine-ui hebt, xine uit, klik rechter muisknop in het hoofdvenster en selecteer Settings->Setup->audio

Stel "audio driver to use" in op alsa.

[bewerken] amaroK

Enkel noodzakelijk als arts niet behoorlijk werkt met dmix. Er zijn twee mogelijke oplossingen. Beiden vereisen de wijziging van de motor (engine) van amarok.

Settings->Configure amaroK...->Engine

1. oplossing: xine engine:
Stel "Sound System" in naar"Xine Engine".
Configureer xine om alsa te gebruiker zoals uitgelegd hierboven.

2. oplossing: gstreamer engine:
Stel "Sound System" in naar "GStreamer Engine"
Stel "Output Plugin" in naar "alsasink"
klik op device en voer "dmix" in als dmix daarvoor al in jouw .asoundrc hebt gedefinieerd.


[bewerken] Hardware Configuraties - ~.asoundrc Files

Kijk eerst op http://www.alsa-project.org/alsa-doc en kies jouw geluidskaart. Kaart specifieke script zijn te vinden op The Alsa Project.

Voor lokale instellingen pas je ~/.asoundrc aan, voor globale instellingen ga je naar /etc/asound.conf


[bewerken] echt eenvoudige ~/.asoundrc voor intel8x0 audio toestellen dat gewoon werkt (over meerdere kanalen af te spelen)

File: ~/.asoundrc
pcm.intel8x0 {
        type hw
    card 0
}

ctl.intel8x0 {
        type hw
        card 0
}

[bewerken] intel8x0 geluidskaart geintegreerd op nforce2 moederborden

File: ~/.asoundrc
# Stel standaard geluidskaart in
# Nuttig zodat alle instellingen kunnen gewijzigd worden naar een andere kaart
# pcm.snd_card {
     type hw
     card 0
     device 0
}

# Laat mixen van meerdere weergave kanalen toe naar dit toestel
pcm.output {
     type dmix
     ipc_key 1024
     ipc_perm 0660 # Geluid voor iedereen in jouw groep!
     slave.pcm "snd_card"

     slave {
          # Deze regels repareren vertragingsproblemen.
          # buffer_size moet ingesteld worden voor jouw audio chipset.
          period_time 0
          period_size 1024
          buffer_size 8192
     }

     bindings {
          0 0
          1 1
     }
}

# Laat lezen van de het standaard toestel toe.
# Ook bekend als record of capture.
pcm.input {
     type dsnoop
     ipc_key 2048
     slave.pcm "snd_card"

## Mogelijke artsd full duplex reparatie:
#     slave {
#          period_time 0
#          period_size 1024
#          buffer_size 8192
#     }

     bindings {
          0 0
          1 1
     }
}

# Dit is wat we and ons standaard toestel willen
# een volledig duplex (lezen/schrijven) audio toestel.
pcm.duplex {
     type asym
     playback.pcm "output"
     capture.pcm "input"
}

###################
# CONVERSIE PLUG #
###################
# Het standaard pcm toestel instellen laat toe om de conversie 
# snelheid in een moeite in te stellen.
# duplex mode laat elke alsa gestuurde toepassing lezen/schrijven
# voor de dmix plug (Repareert een probleem met wine).
pcm.!default {
     type plug
     slave.pcm "duplex"
}

# Deze is blijkbaar fout (breekt bij mij mplayer bij het openen)
#ctl.!default {
#     type plug
#     slave.pcm "snd_card"
#}

########
# AOSS #
########
# OSS dsp0 device (OSS vereist enkel weergave ondersteuning, duplex zal sommige dingen breken)
pcm.dsp0 {
     type plug
     slave.pcm "output"
}

# OSS controle voor dsp0 (noodzakelijk ?...dit is mogelijks niet nuttig)
ctl.dsp0 {
     type plug
     slave.pcm "snd_card"
}

####
#### Ik heb van November 2005 af met de volgende pakketten :
#### >=mozilla-firefox-1.0.7-r2, netscape-flash-7.0.25,
#### alsa-oss-1.0.8-r1 and alsa-oss-1.0.10_rc3
####
#### crashes ervaren met firefox tijdens flash rendering .
#### Ik gebruikte "aoss firefox" om de browser op te starten.
#### De onderstaande ctl.mixer0 wegcommentariëren en de 
#### bovenstaande ctl.dsp0 gebruiken laat toe om met firefox 
#### flash te renderen zonder crashen (en inderdaad aoss mixen 
#### werkt)
#### aoss Skype werkt daarentegen niet goed mixer0 in bepaalde
#### configuraties.
####
# OSS controle voor dsp0 (standaard oude OSS is mixer0) 
#ctl.mixer0 {
#     type plug
#     slave.pcm "snd_card"
#}

[bewerken] Herkenningen

allex87
intel8x0

[bewerken] via82cxxx onboard/ICE1712 chip

Als config niet (goed) werkt meteen Audiophile kaart (ICE1712 chip) of een VIA VT82xx (snd-via82xx). De fout is:

$ alsaplayer -d ossmix
error on set_format SND_PCM_FORMAT_S16_LE
Unavailable hw params:
ACCESS:  RW_INTERLEAVED
FORMAT:  S32_LE
SUBFORMAT:  ALL
SAMPLE_BITS: ALL
FRAME_BITS: ALL
CHANNELS: 2
RATE: 48000
PERIOD_TIME: (21333 21334)
PERIOD_SIZE: 1024
PERIOD_BYTES: ALL
PERIODS: (6 7)
BUFFER_TIME: (136520 136521)
BUFFER_SIZE: 6553        <<<<====kijk hier!!
BUFFER_BYTES: ALL
TICK_TIME: ALL

Jaroslav Kysela kende de reden niet: De maxumum max buffer capcaiteit van de Delta kaart is "6553" zoals vermeld hierboven. Dus moeten we de buffer capaciteit specifiëren in onze definitie, dat is: a) een macht van 2 b) kleiner dan 6553. Hier is de gecorrigeerde OSS-dmix .asoundrc voor een ICE1712 en VT82xx kaart:

File: ~/.asoundrc
# ~/.asoundrc

# our ICE1712 dmix:
pcm.ossmix {
    type dmix
    ipc_key 1024
    slave {
        pcm "hw:0,0"
        period_time 0
        period_size 1024
        buffer_size 4096        # buffer capaciteit < 6653, maar macht van 2
        rate 44100              # we willen enkel Cds afspelen
    }

    bindings {
        0 0
                1 1
        }
}

# Alles zal ge-dmixt worden, dus herdefinieer "default":
pcm.!default {
    type plug
    slave.pcm "ossmix"
}

# OSS via aoss should d(mix)stroyed:
pcm.dsp0 {
    type plug
    slave.pcm "ossmix"
}

ctl.mixer0 {
    type hw
    card 0
}

[bewerken] Herkenningen

http://alsa.opensrc.org/index.php?page=DmixPlugin

[bewerken] cmedia 8738 en Analog Devices AD1980

File: /etc/modules.d/alsa

...
alias snd-card-0 snd-cmipci
...

File: ~/.asoundrc
pcm.dmixer {
    type dmix
    ipc_key 1024
    ipc_key_add_uid false
    ipc_perm 0666		# mixing voor alle gebruikers
                 		# gebruik 0660 voor gebruikers enkel in jouw groep

    slave {
        pcm "hw:0,0"
        period_time 0
        period_size 1024
        buffer_size 8192
   rate 44100
    }
    bindings {
        0 0
        1 1
    }
}

pcm.dsp0 {
    type plug
    slave.pcm "dmixer"
}

pcm.!default {
        type plug
        slave.pcm "dmixer"
}

pcm.default {
   type plug
   slave.pcm "dmixer"
}

ctl.mixer0 {
    type hw
    card 0
}

[bewerken] Herkenningen

Redeeman

[bewerken] VIA Envy24HT (ice1724) chip

Nota: Als je S/PDIF weergave wenst te gebruiken, verander dan de hardware regel naar 0,1 (pcm "hw:0,1") en device naar 1 (device 1). Als je dit niet doet zal je de analoge weergaves gebruiken.

File: ~/.asoundrc
pcm.!default {
   type plug
   slave.pcm "dmixer"
}

pcm.dmixer  {
   type dmix
   ipc_key 1024
   slave {
      pcm "hw:0,0"
      format S32_LE
      period_time 0
      period_size 1024

# verhoogde buffer_size omdat 1024 in mijn systeem een slechte
# geluidsweergave gaf (voor totem media player en mplayer)
      buffer_size 8192

      rate 44100
   }
   bindings {
      0 0
      1 1
   }
}

ctl.dmixer {
   type hw
   card 0
   device 0
} 

Another Configuration.

Deze configuratie heeft volgende opties:

  • 1- upmixed stereo tot 5.1 geluid (stereo copy).
  • 2- Optische output (Toslink).
  • 3- normale analoge luidspreker setup (fx gebruikt wanneer multikanaalsgeluiden worden afgespeeld op analoge outputs, dan wil je de upmix niet gebruiken ;) ) -merk op : enkel analoog multikanaalsl!.

Het verschil van deze (zie onder) tov die hierboven, in de methode dat je ze inschakelt, wordt bereikt door de “profile name” (profiles; "default","spdif" & "analog")in jouw audio/film player manueel in te geven.


File: ~/.asoundrc
#########################################################
#Dit is een standaard instelling (zie: "!default")
#Dit profiel, het standaard  geladene, upmixt stereo geluid tot 5.1.

pcm.!default {
        type plug
        slave.pcm "surround51"
        slave.channels 6
        route_policy duplicate
}
########################################################
#Dit is het normale spdif output profiel (optical, toslink).

pcm.!spdif {
    type plug
    slave.pcm "hw:0,1"
}

#######################################################
#Dit is wat je de "fabrieksinstelling" zou kunnen noemen, maw, het speelt enkel de huidige kanalen af, dus als je fx wilt om een 5.1 film te bekijken op een analoge output dan is dit de optie die je wenst. 


pcm.analog {
    type plug
    slave analog_slave;
}

pcm_slave.analog_slave {
        pcm surround51;
        format S32_LE;
}

[bewerken] Herkenningen

01mf02, Alrua, and ALSA-project.org Guide

individual customizations of ".asoundrc"


[bewerken] Troubleshooting

[bewerken] Alsa geluidsopname

Sorry dit is onvolledig. Ik heb veel veel veel manieren om geluid op te nemen geprobeerd met een microfoon (ik wil skype gebruiken). Na alle mogelijke configuraties van mijn geluidskaart te proberen en een slapeloze nacht ben ik er eindelijk in geslaagd na het lezen van de krec handleiding. Zij geven de sleutel: start het geluidssysteem in full duplex mode. Hopelijk helpt het iemand verder.

[bewerken] Alsa + dmix + microfoon

  • V: Ik kan enkele geluiden tegelertijd weergeven maar ik kan geen geluid opnemen met arecord:
$ arecord -f cd -d 3 -t wav -N test.wav
ALSA lib pcm_dmix.c:759:(snd_pcm_dmix_open) De dmix plugin ondersteunt enkel afspelen
arecord: main:502: audio open error: Invalid argument

Maar wanneer ik mijn ~/.asoundrc verwijder kan ik opnemen.
Hoe kan ik dit repareren ?

  • A: Gebruik dsnoop, scan de paginavvoor een ~/.asoundrc er bij.

[bewerken] XMMS in KDE

  • V. KDE geluid en media players werken, maar XMMS zegt device is busy.
  • A. Dit wil zeggen dat arts output niet omgeleid is naar dmix, zie arts sectie.

[bewerken] Amarok+gstreamer+alsasink in KDE

Amarok is momenteel de beste muziekspelerop de planeet, lichtjaren voor op iTunes (dat in windows gebruikt wordt). Amarok werkt het best als je een gstreamer motor in de backend gebruikt. Gstreamer en alsa hebben in het verleden jammer genoeg problemen getoond. het is in elk geval aan te raden om gstreamer te gebruiken om zijn ondersteuning voor diverse bestandsformaten. Om ze in te stellen:

$ emerge gstreamer gst-plugins gst-plugins-alsa gst-plugins-mad
$ USE="gstreamer" emerge amarok

Als je geen geluid verkrijgt met gstreamer, probeer dan een oplossing te vinden via de gentoo forums. http://forums.gentoo.org/search.php?search_terms=all&show_results=topics&search_keywords=gst-plugins-alsa&mode=results

De gstreamer versie 0.8.8 en 0.8.9 hebben enkele afspeelproblemen getoond voor gebruikers van op AC97 gebaseerde geluidskaarten zoals nforce2 en VIA VT8233/A/8235/8237. Als je onderbroken of krakend geluid hoort bij het afspelen van een bestand met alsalink en dit bestand speelt wel goed af met osslink dan moet je enkele bijkomende parameters aan alsalink toevoegen.

Test eerst of je een enkel geluidssporr goed kan afspelen.

$ gst-launch-0.8 filesrc location=/path/to/file.mp3 ! mad ! alsasink

Als dit een onderbroken/krakend geluidIf geeft probeer dan :

$ gst-launch-0.8 filesrc location=/path/to/file.mp3 ! mad ! alsasink
period-size=1024 buffer-size=4096

Dit zou een mp3 bestand normaal moeten afspelen. Voeg dez parameters aan de amarok gstreamer motor instellingen toe. Nota: De device sectie van de motor zou moeten ingesteld staan naar het dmixtoestel (Dit lost veel porblemen op!). Als amaroK the device is busy rapporteert, voeg dan "device=dmix" direct aan de parameter toe.

Sommige mensen kunnen een onderbroken geluid horen wanneer amarok van een lied naar een ander overgaat. Experimenteer dan met de true en false instellingen van twee bijkomende parameters mmap en autorecover. Voor mij werkten volgende instellingen goed.

$ gst-launch-0.8 filesrc location=/path/to/file.mp3 ! mad ! alsasink
period-size=1024 buffer-size=4096 mmap=false autorecover=false

[bewerken] Fouten bij het invoegen van modules

Als je de alsa-driver in het verleden gebruikte en je veranderde naar in de kernel ingebouwde drivers en bekomt volgende fouten bij tijdens het uitvoeren van het alsasound initscript:

*   Loading: snd-pcm-oss ...
 WARNING: Error inserting snd_mixer_oss (/lib/modules/2.6.12-gentoo-r6/kernel/sound/core/oss/snd-mixer-oss.ko): Unknown symbol in module, or unknown parameter (see dmesg)
 FATAL: Error inserting snd_pcm_oss (/lib/modules/2.6.12-gentoo-r6/kernel/sound/core/oss/snd-pcm-oss.ko): Unknown symbol in module, or unknown parameter (see dmesg)                                                                       [ !! ]
*   Loading: snd-mixer-oss ...
 FATAL: Error inserting snd_mixer_oss (/lib/modules/2.6.12-gentoo-r6/kernel/sound/core/oss/snd-mixer-oss.ko): Unknown symbol in module, or unknown parameter (see dmesg)

Dan kan je best nog modules over hebben van de alsa-driver. Als je alsa-driver unmerged dan worden de modules niet verwijderd. Als je dan naar in de kernel gebouwde drivers overgaat en voert "modprobe" uit dan krijg je een hybride van alsa-driver en in de kernel ingebouwde modules, wat gewoon niet werkt..

De oplossing is rm -rf /lib/modules/KERNELVER/alsa-driver nadat je alsa-driver unmerged.

Een ander goed idee is om te controleren of dat je na het compileren van de nieuwe kernel je die ook geïnstalleerd hebt. Indien ja, laadt grub/lilo die in ? Heb je er aan gedacht om /boot te koppelen tijdens het installeren van de kernel ?

[bewerken] Een andere oplossing

Je kan ook proberen de kanalen "Headphone Jack Sense" en "Line Jack Sense" aan te zetten volgens deze post

[bewerken] Feedback

Bemerkingen of complimenten? Gelieve de Overleg sectie te gebruiken.

Afkomstig van de Nederlandstalige Gentoo Wiki, het vrije Gentoo handboek. "http://nl.gentoo-wiki.com/HOWTO_ALSA_sound_mixer_aka_dmix"