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)
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_key_add_uid BOOL # Add current uid to ipc_key
322
bindings { # Bindings table
323
N INT # Slave channel for client channel N
326
type dsnoop # Direct snoop (split one capture stream to more)
327
slave STR # Slave name (see pcm_slave)
328
ipc_key INT # Unique ipc key
329
ipc_perm INT # ipc permissions (default 0600)
330
ipc_key_add_uid BOOL # Add current uid to ipc_key
331
bindings { # Bindings table
332
N INT # Slave channel for client channel N
335
type dshare # Share channels from one stream
336
slave STR # Slave name (see pcm_slave)
337
ipc_key INT # Unique ipc key
338
ipc_perm INT # ipc permissions (default 0600)
339
ipc_key_add_uid BOOL # Add current uid to ipc_key
340
bindings { # Bindings table
341
N INT # Slave channel for client channel N
345
# CTL type definition
347
[lib STR] # Library file (default libasound.so)
348
[open STR] # Open function (default _snd_ctl_NAME_open)
354
[comment ANY] # Saved comments
358
card STR/INT # Card name or number
361
type shm # Shared memory client CTL
362
server STR # Server name
363
ctl STR # CTL name on server
369
# RAWMIDI type definition
371
[lib STR] # Library file (default libasound.so)
372
[open STR] # Open function (default _snd_rawmidi_NAME_open)
378
[comment ANY] # Saved comments
381
type hw # Kernel RAWMIDI
382
card INT/STR # Card name or number
383
[device] INT # Device number (default 0)
384
[subdevice] INT # Subdevice number, -1 first available (default -1)
389
# SEQ type definition
391
[lib STR] # Library file (default libasound.so)
392
[open STR] # Open function (default _snd_seq_NAME_open)
398
[comment ANY] # Saved comments
407
DEF.NAME1 NAME2 # DEF.NAME1 is an alias for DEF.NAME2
442
slave.pcm plug:trident
451
pcm_scope_type.level {
452
lib /home/abramo/scopes/liblevel.so
455
# an example command is 'aplay -D plug:ladspa <filename>'
456
# otherwise, the ladspa plugin expects FLOAT type which
460
slave.pcm "plughw:0,0";
461
path "/home/perex/src/ladspa_sdk/plugins";
472
# an example command for dmix plugin to force 44100Hz mixing rate:
473
# aplay -D"plug:'dmix:RATE=44100'" <filename>
474
# an example command for dmix plugin to force 44100Hz and hw:1,0 output device
475
# aplay -Dplug:\'dmix:SLAVE=\"hw:1,0\",RATE=44100\' <filename>
476
# an example command for dmix plugin to force 32-bit signed little endian format
477
# aplay -D"plug:'dmix:FORMAT=S32_LE'" <filename>