asoundrc help wanted

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Greetings,

I want to make a universal multi mapping. So far I have the following 4 
channel version based on 
http://www.alsa-project.org/alsa-doc/doc-php/asoundrc.php#jackplug

But it has some shortcomings I'd like to fix, don't know how

Q1: is there any way I can inherit all the @args [ CARD DEV SUBDEV ] etc from 
a common definition somewhere.

Q2: can I get the actual assigned subdevice index for slaves.a, and use it to 
calculate the subdev for slaves.b
Because using "ttable4:1,0,0" works but "ttable4:1" doesnt because of the 
calculation of the 2nd subdevice index:
 subdevice { @func iadd integers [ $SUBDEV 1 ] }

Q3: I'd like to parameterise the number of channels, so I can make 3,4,5,6,7, 
or 8 channel. Can I do this rather than repeat the whole thing 6 times with 
differing channel counts?  ?Another way to ask this may be "Can I use looping 
constructs in asoundrc?"

for n in 0 to 5:
   ttable.$n.$n 1



pcm.ttable4 {
	@args [ CARD DEV SUBDEV ]
	@args.CARD {
		type string
		default {
			@func getenv
			vars [
				ALSA_PCM_CARD
				ALSA_CARD
			]
			default {
				@func refer
				name defaults.pcm.card
			}
		}
	}
	@args.DEV {
		type integer
		default {
			@func igetenv
			vars [
				ALSA_PCM_DEVICE
			]
			default {
				@func refer
				name defaults.pcm.device
			}
		}
	}
	@args.SUBDEV {
		type integer
		default 0
	}
	type route;
	hint {
		show {
			@func refer
			name defaults.namehint.basic
		}
		description "4 channel multi route"
	}
	slave.pcm {
		type multi;
		slaves.a.pcm {
			type hw
			card $CARD
			device $DEV
			subdevice $SUBDEV
			#mmap_emulation true
		}
		slaves.a.channels 2;
		slaves.b.pcm {
			type hw
			card $CARD
			device $DEV
			subdevice { @func iadd integers [ $SUBDEV 1 ] }
			#mmap_emulation true
		}
		slaves.b.channels 2;
		bindings.0.slave a;
		bindings.0.channel 0;
		bindings.1.slave a;
		bindings.1.channel 1;
		bindings.2.slave b;
		bindings.2.channel 0;
		bindings.3.slave b;
		bindings.3.channel 1;
	}
	ttable.0.0 1;
	ttable.1.1 1;
	ttable.2.2 1;
	ttable.3.3 1;
}


thanks

--
Eliot

-------------------------------------------------------------------------
This SF.net email is sponsored by: Splunk Inc.
Still grepping through log files to find problems?  Stop.
Now Search log events and configuration files using AJAX and a browser.
Download your FREE copy of Splunk now >>  http://get.splunk.com/
_______________________________________________
Alsa-user mailing list
Alsa-user@xxxxxxxxxxxxxxxxxxxxx
https://lists.sourceforge.net/lists/listinfo/alsa-user

[Index of Archives]     [ALSA Devel]     [Linux Audio Users]     [Fedora Users]     [Fedora Desktop]     [Fedora SELinux]     [Big List of Linux Books]     [Yosemite News]     [Yosemite Photos]     [KDE Users]     [Fedora Tools]

  Powered by Linux