1 # Configuration file syntax
3 # Include a new configuration file
9 # Compound assign (first style)
15 # Compound assign (second style)
16 name.name1 [=] value [,|;]
18 # Array assign (first style)
25 # Array assign (second style)
26 name.0 [=] value0 [,|;]
27 name.1 [=] value1 [,|;]
29 # ******************************************************************************
33 host STR # host where the server is located (if map to local address
34 # server is local, and then it may be started automatically)
35 [socket STR] # PF_LOCAL socket name to listen/connect
36 [port INT] # PF_INET port number to listen/connect
41 [lib STR] # Library file (default libasound.so)
42 [open STR] # Open function (default _snd_pcm_NAME_open)
43 [redirect { # Redirect this PCM to an another
44 [filename STR] # Configuration file specification
45 name STR # PCM name specification
49 # PCM scope type definition
51 [lib STR] # Library file (default libasound.so)
52 [open STR] # Open function (default _snd_pcm_scope_NAME_open)
55 # PCM scope definition
61 # Slave PCM definition
65 pcm { } # PCM definition
67 channels INT # Channels
69 period_time INT # Period time
70 buffer_time INT # Buffer time
74 # Hook arguments definition
76 ... # Arbitrary arguments
81 [lib STR] # Library file (default libasound.so)
82 [install STR] # Install function (default _snd_pcm_hook_NAME_install)
87 type STR # PCM Hook type (see pcm_hook_type)
88 [args STR] # Arguments for install function (see hook_args)
90 [args { }] # Arguments for install function
96 [comment ANY] # Saved comments
101 card INT/STR # Card name or number
102 [device] INT # Device number (default 0)
103 [subdevice] INT # Subdevice number, -1 first available (default -1)
104 mmap_emulation BOOL # enable mmap emulation for ro/wo devices
107 type hooks # PCM with hooks
108 slave STR # Slave name (see pcm_slave)
110 slave { # Slave definition
111 pcm STR # Slave PCM name
113 pcm { } # Slave PCM definition
116 ID STR # Hook name (see pcm_hook)
118 ID { } # Hook definition (see pcm_hook)
121 type plug # Format adjusted PCM
122 slave STR # Slave name (see pcm_slave)
124 slave { # Slave definition
125 pcm STR # Slave PCM name
127 pcm { } # Slave PCM definition
128 [format STR] # Slave format (default nearest) or "unchanged"
129 [channels INT] # Slave channels (default nearest) or "unchanged"
130 [rate INT] # Slave rate (default nearest) or "unchanged"
132 route_policy STR # route policy for automatic ttable generation
133 # STR can be 'default', 'average', 'copy', 'duplicate'
134 # average: result is average of input channels
135 # copy: only first channels are copied to destination
136 # duplicate: duplicate first set of channels
137 # default: copy policy, except for mono capture - sum
138 ttable { # Transfer table (bidimensional compound of
139 # cchannels * schannels numbers)
141 SCHANNEL REAL # route value (0.0 ... 1.0)
146 type copy # Copy conversion PCM
147 slave STR # Slave name (see pcm_slave)
149 slave { # Slave definition
150 pcm STR # Slave PCM name
152 pcm { } # Slave PCM definition
156 type linear # Linear format conversion PCM
157 type adpcm # IMA-ADPCM format conversion PCM
158 type alaw # A-Law format conversion PCM
159 type mulaw # Mu-Law format conversion PCM
160 slave STR # Slave name (see pcm_slave)
162 slave { # Slave definition
163 pcm STR # Slave PCM name
165 pcm { } # Slave PCM definition
166 format STR # Slave format
170 type rate # Rate conversion PCM
171 slave STR # Slave name (see pcm_slave)
173 slave { # Slave definition
174 pcm STR # Slave PCM name
176 pcm { } # Slave PCM definition
177 [format STR] # Slave format (default client format)
178 rate INT # Slave rate
182 type route # Attenuated static route PCM
183 slave STR # Slave name (see pcm_slave)
185 slave { # Slave definition
186 pcm STR # Slave PCM name
188 pcm { } # Slave PCM definition
189 [format STR] # Slave format (default client format)
190 [channels INT] # Slave channels (default client channels)
192 ttable { # Transfer table (bidimensional compound of
193 # cchannels * schannels numbers)
195 SCHANNEL REAL # route value (0.0 ... 1.0)
200 type multi # Linked PCMs (exclusive access to selected channels)
201 slaves { # Slaves definitions
202 ID STR # Slave name for slave N (see pcm_slave)
204 ID { # Slave definition for slave N
205 pcm STR # Slave PCM name
207 pcm { } # Slave PCM definition
208 channels INT # Slave channels
211 bindings { # Bindings table
212 N { # Binding for client channel N
213 slave STR # Slave key
214 channel INT # Slave channel
217 [master INT] # Define the master slave
220 type file # File plugin
221 slave STR # Slave name (see pcm_slave)
223 slave { # Slave definition
224 pcm STR # Slave PCM name
226 pcm { } # Slave PCM definition
230 file INT # File descriptor
231 [format STR] # File format (NYI)
232 [perm INT] # File permission (default 0600)
234 type meter # Meter PCM
235 slave STR # Slave name (see pcm_slave)
237 slave { # Slave definition or name
238 pcm STR # Slave PCM name
240 pcm { } # Slave PCM definition
242 [frequency INT] # Updates per second
244 ID STR # Scope name (see pcm_scope)
246 ID { } # Scope definition (see pcm_scope)
250 type droute # Attenuated dynamic route PCM (NYI)
251 slave STR # Slave name (see pcm_slave)
253 slave { # Slave definition
254 pcm STR # Slave PCM name
256 pcm { } # Slave PCM definition
257 [format STR] # Slave format (default client format)
258 [channels INT] # Slave channels (default client channels)
261 bindings { # Bindings table
263 cchannels { # Client channels
264 C INT # Client channel
266 schannel { # Slave channels
267 S INT # Slave channel
269 control STR # Control name of C * S (or C values: only if C == S)
274 type null # Null endpoint plugin
275 [time INT] # Time related or not (NYI)
278 type shm # Shared memory client PCM
279 server STR # Server name
280 pcm STR # PCM name on server
283 type share # Share PCM
284 slave STR # Slave name (see pcm_slave)
285 bindings { # Bindings table
286 N INT # Slave channel for client channel N
291 slave STR # Slave name (see pcm_slave)
292 bindings { # Bindings table
293 N INT # Slave channel for client channel N
297 type ladspa # LADSPA plugin PCM
298 slave STR # Slave name (see pcm_slave)
299 path STR # Path or paths (delimited with ':')
300 plugins | playback_plugins | capture_plugins {
301 N { # Configuration for LADSPA plugin N
302 id # # LADSPA plugin ID (for example 1043)
303 label STR # LADSPA plugin label (for example 'delay_5s')
304 filename STR # Full filename of .so library with LADPA plugin code
305 policy STR # Policy can be 'none' or 'duplicate'
308 C INT or STR # C - channel, INT - audio port index, STR - audio port name
311 I INT or REAL # I - control port index, INT or REAL - control value
317 type dmix # Direct mixing plugin
318 slave STR # Slave name (see pcm_slave)
319 ipc_key INT # Unique ipc key
320 ipc_perm INT # ipc permissions (default 0600)
321 ipc_gid INT # ipc gid (default -1 = disable)
322 ipc_key_add_uid BOOL # Add current uid to ipc_key
323 bindings { # Bindings table
324 N INT # Slave channel for client channel N
327 type dsnoop # Direct snoop (split one capture stream to more)
328 slave STR # Slave name (see pcm_slave)
329 ipc_key INT # Unique ipc key
330 ipc_perm INT # ipc permissions (default 0600)
331 ipc_gid INT # ipc gid (default -1 = disable)
332 ipc_key_add_uid BOOL # Add current uid to ipc_key
333 bindings { # Bindings table
334 N INT # Slave channel for client channel N
337 type dshare # Share channels from one stream
338 slave STR # Slave name (see pcm_slave)
339 ipc_key INT # Unique ipc key
340 ipc_perm INT # ipc permissions (default 0600)
341 ipc_gid INT # ipc gid (default -1 = disable)
342 ipc_key_add_uid BOOL # Add current uid to ipc_key
343 bindings { # Bindings table
344 N INT # Slave channel for client channel N
348 # CTL type definition
350 [lib STR] # Library file (default libasound.so)
351 [open STR] # Open function (default _snd_ctl_NAME_open)
357 [comment ANY] # Saved comments
361 card STR/INT # Card name or number
364 type shm # Shared memory client CTL
365 server STR # Server name
366 ctl STR # CTL name on server
372 # RAWMIDI type definition
374 [lib STR] # Library file (default libasound.so)
375 [open STR] # Open function (default _snd_rawmidi_NAME_open)
381 [comment ANY] # Saved comments
384 type hw # Kernel RAWMIDI
385 card INT/STR # Card name or number
386 [device] INT # Device number (default 0)
387 [subdevice] INT # Subdevice number, -1 first available (default -1)
392 # SEQ type definition
394 [lib STR] # Library file (default libasound.so)
395 [open STR] # Open function (default _snd_seq_NAME_open)
401 [comment ANY] # Saved comments
410 DEF.NAME1 NAME2 # DEF.NAME1 is an alias for DEF.NAME2
445 slave.pcm plug:trident
454 pcm_scope_type.level {
455 lib /home/abramo/scopes/scope-level.so
458 # an example command is 'aplay -D plug:ladspa <filename>'
459 # otherwise, the ladspa plugin expects FLOAT type which
463 slave.pcm "plughw:0,0";
464 path "/home/perex/src/ladspa_sdk/plugins";
475 # an example command for dmix plugin to force 44100Hz mixing rate:
476 # aplay -D"plug:'dmix:RATE=44100'" <filename>
477 # an example command for dmix plugin to force 44100Hz and hw:1,0 output device
478 # aplay -Dplug:\'dmix:SLAVE=\"hw:1,0\",RATE=44100\' <filename>
479 # an example command for dmix plugin to force 32-bit signed little endian format
480 # aplay -D"plug:'dmix:FORMAT=S32_LE'" <filename>