asoundrc (1536B)
1 pcm.!default { 2 type asym 3 playback.pcm { 4 type plug 5 slave.pcm pcm.softvol 6 } 7 capture.pcm { 8 type plug 9 slave.pcm pcm.dsnooper 10 } 11 } 12 13 pcm.dup { 14 type plug 15 slave.pcm pcm.mdev 16 route_policy "duplicate" 17 } 18 19 pcm.output { 20 type dmix 21 ipc_key 1024 22 slave { 23 pcm "hw:0,0" 24 buffer_size 8192 25 format S16_LE 26 period_size 1024 27 period_time 0 28 rate 48000 29 } 30 } 31 32 pcm.loop { 33 type dmix 34 ipc_key 1025 35 slave { 36 pcm "hw:Loopback,0,0" 37 buffer_size 8192 38 format S16_LE 39 period_size 1024 40 period_time 0 41 rate 48000 42 } 43 } 44 45 pcm.loopgain{ 46 type softvol 47 slave.pcm pcm.loop 48 control.name "LoopGain" 49 min_dB -3.0 50 max_dB 30.0 51 } 52 53 pcm.mdev { 54 type multi 55 slaves.a.pcm pcm.output 56 slaves.a.channels 2 57 slaves.b.pcm pcm.loopgain 58 slaves.b.channels 2 59 bindings.0.slave a 60 bindings.0.channel 0 61 bindings.1.slave a 62 bindings.1.channel 1 63 bindings.2.slave b 64 bindings.2.channel 0 65 bindings.3.slave b 66 bindings.3.channel 1 67 } 68 69 # alias actual mic card to mic 70 pcm.mic { 71 type hw 72 card Snowball 73 } 74 75 pcm.dsnooper { 76 type dsnoop 77 ipc_key 1488 78 slave { 79 pcm "mic" 80 channels 2 81 rate 48000 82 period_size 1024 83 buffer_size 4096 84 period_time 0 85 } 86 } 87 88 # give mic output a volume control 89 pcm.micvol { 90 type softvol 91 slave.pcm pcm.dup 92 control.name "MicVol" 93 } 94 ctl.MicVol { 95 type hw 96 card Snowball 97 } 98 99 # software volume 100 pcm.softvol { 101 type softvol 102 slave.pcm pcm.dup 103 control.name "SoftVol" 104 } 105 106 # mpd volume control 107 pcm.mpd { 108 type softvol 109 slave.pcm pcm.dup 110 control.name "MPD" 111 } 112 113 # mpv volume control 114 pcm.mpv { 115 type softvol 116 slave.pcm pcm.dup 117 control.name "MPV" 118 }