Results 1 to 2 of 2

Thread: snd-hda-intel -- ALSA --5.1 audio

  1. #1
    Join Date
    Feb 2009
    Location
    London Ontario Canada
    Posts
    68

    Default snd-hda-intel -- ALSA --5.1 audio

    Found this configuration and it appears to work very nicely (on-board Hi-def Intel family ICH9 ALC883, known to work with ALC888, may work with ALC889). It also solved many problems I had with the microphone (especially any Windows programs running under wine). The main thing you will notice is a new control in kmix (and others) labeled "2ch-Upmix Master", this control solved many microphone problems. Should work well with Skype and others. You can place this file in your home directory.

    .asoundrc

    # 2008-11-15
    #
    # This .asoundrc will allow the following:
    #
    # - upmix stereo files to 5.1 speakers.
    # - playback real 5.1 sounds, on 5.1 speakers,
    # - allow the playback of both stere(oupmixed) and surround(5.1) sources at the same time.
    # - use the 6th and 7th channel (side speakers) as a separate soundcard, i.e. for headphones
    # (This is called the "alternate" output throughout the file, device names prefixed with 'a')
    # - play mono sources in stereo (like skype & ekiga) on the alterate output
    #
    # Make sure you have "8 Channels" and NOT "6 Channels" selected in alsamixer!
    #
    # Please try the following commands, to make sure everything is working as it should.
    #
    # To test stereo upmix : speaker-test -c2 -Ddefault -twav
    # To test surround(5.1): speaker-test -c6 -Dplug:dmix6 -twav
    # To test alternative output: speaker-test -c2 -Daduplex -twav
    # To test mono upmix: speaker-test -c1 -Dmonoduplex -twav
    #
    #
    # It may not work out of the box for all cards. If it doesnt work for you, read the comments throughout the file.
    # The basis of this file was written by wishie of #alsa, and then modified with info from various sources by
    # squisher.

    #Define the soundcard to use
    pcm.snd_card {
    type hw
    card 0
    device 0
    }

    # 8 channel dmix - output whatever audio, to all 8 speakers
    pcm.dmix8 {
    type dmix
    ipc_key 1024
    ipc_key_add_uid false
    ipc_perm 0660
    slave {
    pcm "snd_card"
    rate 44100
    channels 8
    period_time 0
    period_size 1024
    buffer_time 0
    buffer_size 5120
    }

    # Some cards, like the "nforce" variants require the following to be uncommented. It routes the audio to t he correct speakers.
    bindings {
    0 0
    1 1
    2 4
    3 5
    4 2
    5 3
    6 6
    7 7
    }
    }

    # upmixing - duplicate stereo data to all 6 channels
    pcm.ch51dup {
    type route
    slave.pcm dmix8
    slave.channels 8
    ttable.0.0 1
    ttable.1.1 1
    ttable.0.2 1
    ttable.1.3 1
    ttable.0.4 0.5
    ttable.1.4 0.5
    ttable.0.5 0.5
    ttable.1.5 0.5
    }

    # this creates a six channel soundcard
    # and outputs to the eight channel one
    # i.e. for usage in mplayer I had to define in ~/.mplayer/config:
    # ao=alsa:device=dmix6
    # channels=6
    pcm.dmix6 {
    type route
    slave.pcm dmix8
    slave.channels 8
    ttable.0.0 1
    ttable.1.1 1
    ttable.2.2 1
    ttable.3.3 1
    ttable.4.4 1
    ttable.5.5 1
    }

    # share the microphone, i.e. because virtualbox grabs it by default
    pcm.microphone {
    type dsnoop
    ipc_key 1027
    slave {
    pcm "snd_card"
    }
    }

    # rate conversion, needed i.e. for wine
    pcm.2chplug {
    type plug
    slave.pcm "ch51dup"
    }
    pcm.a2chplug {
    type plug
    slave.pcm "dmix8"
    }

    # routes the channel for the alternative
    # 2 channel output, which becomes the 7th and 8th channel
    # on the real soundcard
    pcm.alt2ch {
    type route
    slave.pcm "a2chplug"
    slave.channels 8
    ttable.0.6 1
    ttable.1.7 1
    }

    # skype and ekiga are only mono, so route left channel to the right channel
    # note: this gets routed to the alternative 2 channels
    pcm.mono_playback {
    type route
    slave.pcm "a2chplug"
    slave.channels 8
    # Send Skype channel 0 to the L and R speakers at full volume
    ttable.0.6 1
    ttable.0.7 1
    }

    # 'full-duplex' device for use with aoss
    pcm.duplex {
    type asym
    playback.pcm "2chplug"
    capture.pcm "microphone"
    }

    pcm.aduplex {
    type asym
    playback.pcm "alt2ch"
    capture.pcm "microphone"
    }

    pcm.monoduplex {
    type asym
    playback.pcm "mono_playback"
    capture.pcm "microphone"
    }

    # for aoss
    pcm.dsp0 "duplex"
    ctl.mixer0 "duplex"

    # softvol manages volume in alsa
    # i.e. wine likes this
    pcm.mainvol {
    type softvol
    slave.pcm "duplex"
    control {
    name "2ch-Upmix Master"
    card 0
    }
    }

    #pcm.!default "mainvol"

    # set the default device according to the environment
    # variable ALSA_DEFAULT_PCM and default to mainvol
    pcm.!default {
    @func refer
    name { @func concat
    strings [ "pcm."
    { @func getenv
    vars [ ALSA_DEFAULT_PCM ]
    default "mainvol"
    }
    ]
    }
    }

    # uncomment the following if you want to be able to control
    # the mixer device through environment variables as well
    #ctl.!default {
    # @func refer
    # name { @func concat
    # strings [ "ctl."
    # { @func getenv
    # vars [ ALSA_DEFAULT_CTL
    # ALSA_DEFAULT_PCM
    # ]
    # default "duplex"
    # }
    # ]
    # }
    #}

  2. #2
    Join Date
    Mar 2008
    Location
    Europe
    Posts
    25,619
    Blog Entries
    29

    Default Re: snd-hda-intel -- ALSA --5.1 audio

    Thanks for sharing your discovery.

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •