From Amarok Wiki


Nedenfor vil du finde et eksempel på en konfigurationsfil, der vil aktivere Dmix på dit system.

      • Bemærk at nedenstående instruktioner kun er nødvendige hvis det indbyggede Dmix plugin, der bliver distribueret med alsa-lib (libasound2 på Debian-baserede systemer) ikke virker! Du kan bruge dette indbyggede, prædefinerede Dmix plugin ved at bruge "plug:dmix" som den virtuelle ALSA device.

Du kan gemme konfigurationsfilen i enten ~/.asoundrc (kun for din egen bruger) eller i /etc/asound.conf (hele systemet). Efter at have rettet i disse filer behøver du blot at genstarte eventuelle ALSA-programmer.

pcm.ossmix {
   type dmix
   ipc_key 1024
   slave {
       pcm "hw:0,0"            # make sure this matches the actual device
       #period_time 0          # not necessary since ALSA 1.0pre
       period_size 1024        # Use a power of 2
       buffer_size 4096        # must be a multiple of period_size
       #rate 44100             # not necessary; let alsa-lib handle this
   }
   bindings {
       0 0
       1 1                     # bind only the first 2 channels
   }
}
pcm.duplex
{
   type asym
   playback.pcm "ossmix"
   capture.pcm "dsnoop"
}
# Everything shall be dmixed, so redefine "default":
# Note that this is _not_ a good idea, since dmix doesn't allow mmap access currently
#pcm.!default {
#   type plug
#   slave.pcm "duplex"
#}
# OSS via aoss should d(mix)stroyed:
pcm.dsp0 {
   type plug
   slave.pcm "duplex"
}
ctl.ossmix {
   type hw
   card 0
}

Du kan teste om Dmix virker ved at køre to eller flere instanser af "alsaplayer" (eller et andet ALSA-baseret program, såsom amaroK) på samme tid:

alsaplayer -o alsa -d plug:ossmix some.mp3

Hvis programmerne hakker når du kører processor-krævende opgaver, såsom kompilering eller OpenGL visualisationer, kan det hjælpe at øge buffer_size i ~/.asoundrc. Den bør altid blivet øget med en faktor af 2, f.eks.:

pcm.ossmix {
   type dmix
   ipc_key 1024
   slave {
       pcm "hw:0,0"
       #period_time 0
       period_size 1024
       buffer_size 16384        # buffer size = 4096 x 2 x 2
       #rate 44100
   }
   bindings {
       0 0
       1 1
   }
}