Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- # Configuration file syntax
- # Include a new configuration file
- <filename>
- # Simple assign
- name [=] value [,|;]
- # Compound assign (first style)
- name [=] {
- name1 [=] value [,|;]
- ...
- }
- # Compound assign (second style)
- name.name1 [=] value [,|;]
- # Array assign (first style)
- name [
- value0 [,|;]
- value1 [,|;]
- ...
- ]
- # Array assign (second style)
- name.0 [=] value0 [,|;]
- name.1 [=] value1 [,|;]
- # ******************************************************************************
- # Server definition
- server.NAME {
- host STR # host where the server is located (if map to local address
- # server is local, and then it may be started automatically)
- [socket STR] # PF_LOCAL socket name to listen/connect
- [port INT] # PF_INET port number to listen/connect
- }
- # PCM type definition
- pcm_type.NAME {
- [lib STR] # Library file (default libasound.so)
- [open STR] # Open function (default _snd_pcm_NAME_open)
- [redirect { # Redirect this PCM to an another
- [filename STR] # Configuration file specification
- name STR # PCM name specification
- }]
- }
- # PCM scope type definition
- pcm_scope_type.NAME {
- [lib STR] # Library file (default libasound.so)
- [open STR] # Open function (default _snd_pcm_scope_NAME_open)
- }
- # PCM scope definition
- pcm_scope.NAME {
- type STR # Scope type
- ...
- }
- # Slave PCM definition
- pcm_slave.NAME {
- pcm STR # PCM name
- # or
- pcm { } # PCM definition
- format STR # Format
- channels INT # Channels
- rate INT # Rate
- period_time INT # Period time
- buffer_time INT # Buffer time
- etc.
- }
- # Hook arguments definition
- hook_args.NAME {
- ... # Arbitrary arguments
- }
- # PCM hook type
- pcm_hook_type.NAME {
- [lib STR] # Library file (default libasound.so)
- [install STR] # Install function (default _snd_pcm_hook_NAME_install)
- }
- # PCM hook definition
- pcm_hook.NAME {
- type STR # PCM Hook type (see pcm_hook_type)
- [args STR] # Arguments for install function (see hook_args)
- # or
- [args { }] # Arguments for install function
- }
- # PCM definition
- pcm.NAME {
- type STR # Type
- [comment ANY] # Saved comments
- # PCM types:
- type hw # Kernel PCM
- card INT/STR # Card name or number
- [device] INT # Device number (default 0)
- [subdevice] INT # Subdevice number, -1 first available (default -1)
- mmap_emulation BOOL # enable mmap emulation for ro/wo devices
- type hooks # PCM with hooks
- slave STR # Slave name (see pcm_slave)
- # or
- slave { # Slave definition
- pcm STR # Slave PCM name
- # or
- pcm { } # Slave PCM definition
- }
- hooks {
- ID STR # Hook name (see pcm_hook)
- # or
- ID { } # Hook definition (see pcm_hook)
- }
- type plug # Format adjusted PCM
- slave STR # Slave name (see pcm_slave)
- # or
- slave { # Slave definition
- pcm STR # Slave PCM name
- # or
- pcm { } # Slave PCM definition
- [format STR] # Slave format (default nearest) or "unchanged"
- [channels INT] # Slave channels (default nearest) or "unchanged"
- [rate INT] # Slave rate (default nearest) or "unchanged"
- }
- route_policy STR # route policy for automatic ttable generation
- # STR can be 'default', 'average', 'copy', 'duplicate'
- # average: result is average of input channels
- # copy: only first channels are copied to destination
- # duplicate: duplicate first set of channels
- # default: copy policy, except for mono capture - sum
- ttable { # Transfer table (bidimensional compound of
- # cchannels * schannels numbers)
- CCHANNEL {
- SCHANNEL REAL # route value (0.0 ... 1.0)
- }
- }
- type copy # Copy conversion PCM
- slave STR # Slave name (see pcm_slave)
- # or
- slave { # Slave definition
- pcm STR # Slave PCM name
- # or
- pcm { } # Slave PCM definition
- }
- type linear # Linear format conversion PCM
- type adpcm # IMA-ADPCM format conversion PCM
- type alaw # A-Law format conversion PCM
- type mulaw # Mu-Law format conversion PCM
- slave STR # Slave name (see pcm_slave)
- # or
- slave { # Slave definition
- pcm STR # Slave PCM name
- # or
- pcm { } # Slave PCM definition
- format STR # Slave format
- }
- type rate # Rate conversion PCM
- slave STR # Slave name (see pcm_slave)
- # or
- slave { # Slave definition
- pcm STR # Slave PCM name
- # or
- pcm { } # Slave PCM definition
- [format STR] # Slave format (default client format)
- rate INT # Slave rate
- }
- type route # Attenuated static route PCM
- slave STR # Slave name (see pcm_slave)
- # or
- slave { # Slave definition
- pcm STR # Slave PCM name
- # or
- pcm { } # Slave PCM definition
- [format STR] # Slave format (default client format)
- [channels INT] # Slave channels (default client channels)
- }
- ttable { # Transfer table (bidimensional compound of
- # cchannels * schannels numbers)
- CCHANNEL {
- SCHANNEL REAL # route value (0.0 ... 1.0)
- }
- }
- type multi # Linked PCMs (exclusive access to selected channels)
- slaves { # Slaves definitions
- ID STR # Slave name for slave N (see pcm_slave)
- # or
- ID { # Slave definition for slave N
- pcm STR # Slave PCM name
- # or
- pcm { } # Slave PCM definition
- channels INT # Slave channels
- }
- }
- bindings { # Bindings table
- N { # Binding for client channel N
- slave STR # Slave key
- channel INT # Slave channel
- }
- }
- [master INT] # Define the master slave
- type file # File plugin
- slave STR # Slave name (see pcm_slave)
- # or
- slave { # Slave definition
- pcm STR # Slave PCM name
- # or
- pcm { } # Slave PCM definition
- }
- file STR # File name
- # or
- file INT # File descriptor
- [format STR] # File format (NYI)
- [perm INT] # File permission (default 0600)
- type meter # Meter PCM
- slave STR # Slave name (see pcm_slave)
- # or
- slave { # Slave definition or name
- pcm STR # Slave PCM name
- # or
- pcm { } # Slave PCM definition
- }
- [frequency INT] # Updates per second
- scopes { # Scopes
- ID STR # Scope name (see pcm_scope)
- # or
- ID { } # Scope definition (see pcm_scope)
- }
- type droute # Attenuated dynamic route PCM (NYI)
- slave STR # Slave name (see pcm_slave)
- # or
- slave { # Slave definition
- pcm STR # Slave PCM name
- # or
- pcm { } # Slave PCM definition
- [format STR] # Slave format (default client format)
- [channels INT] # Slave channels (default client channels)
- }
- ctl STR # Ctl name
- bindings { # Bindings table
- ID { # Binding entry
- cchannels { # Client channels
- C INT # Client channel
- }
- schannel { # Slave channels
- S INT # Slave channel
- }
- control STR # Control name of C * S (or C values: only if C == S)
- }
- }
- type null # Null endpoint plugin
- [time INT] # Time related or not (NYI)
- type shm # Shared memory client PCM
- server STR # Server name
- pcm STR # PCM name on server
- type share # Share PCM
- slave STR # Slave name (see pcm_slave)
- bindings { # Bindings table
- N INT # Slave channel for client channel N
- }
- type mix # Mix PCM
- slave STR # Slave name (see pcm_slave)
- bindings { # Bindings table
- N INT # Slave channel for client channel N
- }
- type ladspa # LADSPA plugin PCM
- slave STR # Slave name (see pcm_slave)
- path STR # Path or paths (delimited with ':')
- plugins | playback_plugins | capture_plugins {
- N { # Configuration for LADSPA plugin N
- id # # LADSPA plugin ID (for example 1043)
- label STR # LADSPA plugin label (for example 'delay_5s')
- filename STR # Full filename of .so library with LADPA plugin code
- policy STR # Policy can be 'none' or 'duplicate'
- input | output {
- bindings {
- C INT or STR # C - channel, INT - audio port index, STR - audio port name
- }
- controls {
- I INT or REAL # I - control port index, INT or REAL - control value
- }
- }
- }
- }
- type dmix # Direct mixing plugin
- slave STR # Slave name (see pcm_slave)
- ipc_key INT # Unique ipc key
- ipc_perm INT # ipc permissions (default 0600)
- ipc_gid INT # ipc gid (default -1 = disable)
- ipc_key_add_uid BOOL # Add current uid to ipc_key
- bindings { # Bindings table
- N INT # Slave channel for client channel N
- }
- type dsnoop # Direct snoop (split one capture stream to more)
- slave STR # Slave name (see pcm_slave)
- ipc_key INT # Unique ipc key
- ipc_perm INT # ipc permissions (default 0600)
- ipc_gid INT # ipc gid (default -1 = disable)
- ipc_key_add_uid BOOL # Add current uid to ipc_key
- bindings { # Bindings table
- N INT # Slave channel for client channel N
- }
- type dshare # Share channels from one stream
- slave STR # Slave name (see pcm_slave)
- ipc_key INT # Unique ipc key
- ipc_perm INT # ipc permissions (default 0600)
- ipc_gid INT # ipc gid (default -1 = disable)
- ipc_key_add_uid BOOL # Add current uid to ipc_key
- bindings { # Bindings table
- N INT # Slave channel for client channel N
- }
- }
- # CTL type definition
- ctl_type.NAME {
- [lib STR] # Library file (default libasound.so)
- [open STR] # Open function (default _snd_ctl_NAME_open)
- }
- # CTL definition
- ctl.NAME {
- type STR # Type
- [comment ANY] # Saved comments
- # CTL types
- type hw
- card STR/INT # Card name or number
- type shm # Shared memory client CTL
- server STR # Server name
- ctl STR # CTL name on server
- }
- # RAWMIDI type definition
- rawmidi_type.NAME {
- [lib STR] # Library file (default libasound.so)
- [open STR] # Open function (default _snd_rawmidi_NAME_open)
- }
- # RAWMIDI definition
- rawmidi.NAME {
- type STR # Type
- [comment ANY] # Saved comments
- # RAWMIDI types:
- type hw # Kernel RAWMIDI
- card INT/STR # Card name or number
- [device] INT # Device number (default 0)
- [subdevice] INT # Subdevice number, -1 first available (default -1)
- }
- # SEQ type definition
- seq_type.NAME {
- [lib STR] # Library file (default libasound.so)
- [open STR] # Open function (default _snd_seq_NAME_open)
- }
- # SEQ definition
- seq.NAME {
- type STR # Type
- [comment ANY] # Saved comments
- # SEQ types:
- type hw # Kernel SEQ
- }
- # Aliases
- DEF.NAME1 NAME2 # DEF.NAME1 is an alias for DEF.NAME2
- Some examples:
- pcm.trident {
- type hw
- card 0
- device 0
- }
- pcm.ice1712 {
- type hw
- card 1
- device 0
- }
- pcm.ice1712_spdif {
- type plug
- ttable.0.8 1
- ttable.1.9 1
- slave.pcm ice1712
- }
- pcm_slave.rs {
- pcm trident
- rate 44100
- }
- pcm.r {
- type rate
- slave rs
- }
- pcm.m {
- type meter
- slave.pcm plug:trident
- frequency 50
- scopes [
- {
- type level
- }
- ]
- }
- pcm_scope_type.level {
- lib /home/abramo/scopes/scope-level.so
- }
- # an example command is 'aplay -D plug:ladspa <filename>'
- # otherwise, the ladspa plugin expects FLOAT type which
- # is very rare
- pcm.ladspa {
- type ladspa
- slave.pcm "plughw:0,0";
- path "/home/perex/src/ladspa_sdk/plugins";
- plugins [
- {
- label delay_5s
- input {
- controls [ 0.8 0.2 ]
- }
- }
- ]
- }
- # an example command for dmix plugin to force 44100Hz mixing rate:
- # aplay -D"plug:'dmix:RATE=44100'" <filename>
- # an example command for dmix plugin to force 44100Hz and hw:1,0 output device
- # aplay -Dplug:\'dmix:SLAVE=\"hw:1,0\",RATE=44100\' <filename>
- # an example command for dmix plugin to force 32-bit signed little endian format
- # aplay -D"plug:'dmix:FORMAT=S32_LE'" <filename>
Advertisement
Add Comment
Please, Sign In to add comment