dotfiles

dotfiles.git
git clone git://git.lenczewski.org/dotfiles.git
Log | Files | Refs

asoundrc (1805B)


      1 defaults.ctl.!card Unity
      2 
      3 pcm.!default {
      4 	type plug
      5 	slave.pcm {
      6 		type asym
      7 		playback.pcm "audio-out"
      8 		capture.pcm {
      9 			@func getenv
     10 			vars [ CAPTURE_DEV ]
     11 			default "loopback-in"
     12 		}
     13 	}
     14 }
     15 
     16 pcm.audio-out {
     17 	type route
     18 
     19 	slave.pcm {
     20 		type multi
     21 
     22 		slaves.a { pcm "desktop-out"; channels 2; }
     23 		slaves.b { pcm "loopback-out"; channels 2; }
     24 
     25 		bindings.0 { slave a; channel 0; }
     26 		bindings.1 { slave a; channel 1; }
     27 		bindings.2 { slave b; channel 0; }
     28 		bindings.3 { slave b; channel 1; }
     29 	}
     30 
     31 	ttable.0.0 1
     32 	ttable.1.1 1
     33 	ttable.0.2 1
     34 	ttable.1.3 1
     35 }
     36 
     37 pcm.desktop-out {
     38 	type dmix
     39 
     40 	ipc_key 1024
     41 	ipc_key_add_uid true
     42 
     43 	slave {
     44 		pcm "hw:Unity,0"
     45 		rate 48000
     46 		period_time 0
     47 		period_size 1024
     48 		buffer_size 4096
     49 	}
     50 }
     51 
     52 pcm.loopback-out {
     53 	type dmix
     54 
     55 	ipc_key 1024
     56 	ipc_key_add_uid true
     57 
     58 	slave {
     59 		pcm "hw:Loopback,0,0"
     60 		rate 48000
     61 		period_time 0
     62 		period_size 1024
     63 		buffer_size 4096
     64 	}
     65 }
     66 
     67 pcm.loopback-in {
     68 	type dsnoop
     69 
     70 	ipc_key 1025
     71 	ipc_key_add_uid true
     72 
     73 	slave {
     74 		pcm "hw:Loopback,1,0"
     75 		rate 48000
     76 		channels 1
     77 		period_time 0
     78 		period_size 1024
     79 		buffer_size 4096
     80 	}
     81 }
     82 
     83 # TODO: mix microphone-in with loopback-in?
     84 pcm.microphone-in {
     85 	type dsnoop
     86 
     87 	ipc_key 1026
     88 	ipc_key_add_uid true
     89 
     90 	slave {
     91 		pcm "hw:Device_1,0"
     92 		rate 48000
     93 		channels 2
     94 		period_time 0
     95 		period_size 1024
     96 		buffer_size 4096
     97 	}
     98 }
     99 
    100 #https://noisybox.net/blog/2016/01/alsa_recording_of_device_output
    101 #https://www.alsa-project.org/alsa-doc/alsa-lib/pcm_plugins.html
    102 #https://wiki.archlinux.org/title/Advanced_Linux_Sound_Architecture
    103 #https://unix.stackexchange.com/questions/629348/what-exactly-is-the-default-pcm-alsa-device
    104 #https://stackoverflow.com/questions/43939191/alsa-how-to-duplicate-a-stream-on-2-outputs-and-save-system-configs
    105 #https://bootlin.com/blog/audio-multi-channel-routing-and-mixing-using-alsalib/