# $Id: .asoundrc,v 1.3 2012/03/08 19:19:31 raman Exp raman $
# defining DMix explicitly appears to work better
# on  Thinkpads
# {{{ default device is a mixer

#Note hw:1,0 on this laptop 
pcm.dmixer  {
    type dmix
    ipc_key 1024
    slave {
        pcm "hw:1,0"
        format s16_LE
        period_time 0
        ## period_size 1024
        #buffer_size 4096
        rate 44100
    }
    bindings {
        0 0
        1 1
    }
}

pcm.!default {
        type asym
        playback.pcm "plug:dmixer"
        capture.pcm "sysdefault:CARD=PCH"
}

# }}}
# {{{bs2b:

# See /usr/share/doc/bs2b-ladspa/asound.conf.example for inspiration 

pcm.crossfeed {
  type plug
  slave.pcm {
  type ladspa
  slave.pcm "plug:dmixer" # Set this line to match your configuration
  path "/usr/lib/ladspa/"
  plugins [{
    label bs2b
    input {
      controls [ 725 4.5 ] # The defaults are 725Hz crossover frequency and 4.5dB rolloff
    }
  }]
  }
}

# }}}
# {{{tap_reverb:

pcm.tap_reverb {
  type plug
  slave.pcm {
  type ladspa
  slave.pcm "plug:dmixer" # Set this line to match your configuration
  path "/usr/lib/ladspa/"
  plugins [{
    label tap_reverb
    input {
      controls [1200 0 -15 1 1 1 1 4] # Ambiance  (thick) HD
    }
  }]
  }
}

# }}}
# {{{crossfeed_reverb 
#tap_reverb -> bs2b
pcm.reverb_crossfeed {
  type plug
  slave.pcm {
  type ladspa
  slave.pcm "plug:dmixer"
  path "/usr/lib/ladspa/"
  plugins [
      {label tap_reverb #ambiance thick (hd)
       input {controls [1200 0 -14 1 1 1 1 4]}
      }
      {label bs2b
       input {controls [ 725 4.5 ]}
  }]
  }
}

# }}}
# {{{TTS Mono: 

#  The Route plugin routes audio among channels using a TTable .
#TTable is a transfer table.
        # Matrix of Source->Destination values
        # Unspecified entries default to 0.
        # Format: Source.Destination = Value

pcm.tts_mono_right { 
    type plug 
    slave.pcm { 
        type route 
        slave.pcm "dmixer"
        ttable {
            0.0 =  0.03 
            0.1 = 1
            1.0 =  0.03 
            1.1 = 1
        }
    } 
} 


pcm.tts_mono_left { 
    type plug 
    slave.pcm { 
        type route 
        slave.pcm "dmixer"
        ttable {
            0.0 =  1
            0.1 = 0.03
            1.0 =  1
            1.1 = 0.03 
        }
    } 
}


pcm.tts_mono_mid_left { 
    type plug 
    slave.pcm { 
        type route 
        slave.pcm "dmixer"
        ttable {
            0.0 =  0.66
            0.1 = 0.33
            1.0 =  0.66
            1.1 = 0.33
        }
    } 
}

pcm.tts_mono_mid_right { 
    type plug 
    slave.pcm { 
        type route 
        slave.pcm "dmixer"
        ttable {
            0.0 =  0.33
            0.1 = 0.66
            1.0 =  0.33
            1.1 = 0.66
        }
    } 
}

# }}}

# {{{end of file

# local variables:
# mode: sh
# folded-file: t
# end:

# }}}
