Jump to content
From ArchWiki
< Advanced Linux Sound Architecture (Italiano)

This article or section needs to be translated.

Notes: Not updated since 2011 (Discuss in Talk:Advanced Linux Sound Architecture (Italiano)/Configuration examples (Italiano))

Quanto di seguito riportato dovrebbe servire come guida per le configurazioni più avanzate di ALSA. La configurazione viene salvata in `/etc/asound.conf` come indicato nell'articolo principale. Di nessuna delle configurazioni riportate di seguito è garantito il funzionamento.

Nota: Molte delle funzioni mostrate di seguito, sono ottenibili più facilmente utilizzando plugin alsa come upmix, il cui utilizzo è spiegato nell'articolo principale su ALSA.

## Surround 7.1 con upmix da stereo tramite dmix

    ~/.asoundrc

    # 2008-11-15
     #
     # This .asoundrc will allow the following:
     #
     # - upmix stereo files to 7.1 speakers.
     # - playback real 7.1 sounds, on 7.1 speakers,
     # - allow the playback of both stereo (upmixed) and surround(7.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 surround(7.1):      speaker-test -c6 -Dplug:dmix8 -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. Svenstaro modified it for 7.1 output support.

     #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 48000
             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 the 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 8 channels
     pcm.ch71dup {
         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
         ttable.0.6 1
         ttable.1.7 1
     }

     # 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
         ttable.6.6 1
         ttable.7.7 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 "ch71dup"
     }
     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"
     #                     }
     #           ]
     #         }
     #}

## Surround 5.1 con upmix da stereo tramite dmix, inversione canali destro/sinistro, cattiva disposizione degli speaker

Procedimento funzionante nella maggior parte dei casi senza ulteriori modifiche a programmi/files.

    pcm.!default {
        type route
    ## forwards to the mixer pcm defined below
        slave.pcm dmix51
        slave.channels 6

    ## "Native Channels" stereo, swap left/right
        ttable.0.1 1
        ttable.1.0 1
    ## original normal left/right commented out
    #    ttable.0.0 1
    #    ttable.1.1 1

    ## route "native surround" so it still works but weaken signal (+ RL/RF swap)
    ## because my rear speakers are more like random than really behind me
        ttable.2.3 0.7
        ttable.3.2 0.7
        ttable.4.4 0.7
        ttable.5.5 0.7

    ## stereo => quad speaker "upmix" for "rear" speakers + swap L/R
        ttable.0.3 1
        ttable.1.2 1

    ## stereo L+R => join to Center & Subwoofer 50%/50%
        ttable.0.4 0.5
        ttable.1.4 0.5
        ttable.0.5 0.5
        ttable.1.5 0.5
    ## to test: "$ speaker-test -c6 -twav" and: "$ speaker-test -c2 -twav"
    }

    pcm.dmix51 {
    	type dmix
    	ipc_key 1024
    # let multiple users share
    	ipc_key_add_uid false
    # IPC permissions (octal, default 0600)
    # I think changing this fixed something - but I'm not sure what.
    	ipc_perm 0660 #
    	slave {
    ## this is specific to my hda_intel. Often hd:0 is just allready it; To find: $ aplay -L
    		pcm surround51
    # this rate makes my soundcard crackle
    #		rate 44100
    # this rate stops flash in firefox from playing audio, but I don't need that
           rate 48000
           channels 6
    ## Any other values in the 4 lines below seem to make my soundcard crackle, too
           period_time 0
           period_size 1024
           buffer_time 0
           buffer_size 4096
    	}
    }

Category:

- Multimedia (Italiano)

Hidden category:

- Pages or sections flagged with Template:Translateme