X-Git-Url: https://git.rrq.au/?a=blobdiff_plain;f=alsa-dispatcher.8.adoc;h=3261edbb2fda003ac1b7595e7fd4c2ec5ca09dbb;hb=28d8dc0a78136231b05e56eb4daf7771d21d37d0;hp=34f8e4b5d61147fa8c828967ab916d216cba50c3;hpb=34d6d8fc8cc6ecbc225d404aab3608a8be87d345;p=rrq%2Fnewlisp%2Falsa-dispatcher.git diff --git a/alsa-dispatcher.8.adoc b/alsa-dispatcher.8.adoc index 34f8e4b..3261edb 100644 --- a/alsa-dispatcher.8.adoc +++ b/alsa-dispatcher.8.adoc @@ -4,41 +4,40 @@ == NAME -alsa-dispatcher - ALSA playback priority dispatcher for occasionally -connected playback endpoints. +alsa-dispatcher - ALSA priority dispatcher for occasional playback +endpoints. == SYNOPSIS -*alsa-dispatcher.lsp* +*alsa-dispatcher* == DESCRIPTION -*alsa-dispatcher.lsp* is an ALSA utility that handles dispatch of -audio playback via a priority list of possible endpoints. The dispatch -logic works through the list trying to open each ALSA PCM device in -order until one succeeds, and thereafter *alsa-dispatcher.lsp* simply +*alsa-dispatcher* is an ALSA utility that handles dispatch of audio +playback via a priority list of possible endpoints. The dispatch logic +works through the list trying to open each ALSA PCM device in order +until one succeeds, and thereafter *alsa-dispatcher* simply channels the playback audio stream from its standard input to the successfully opened PCM playback device. -The program is a _newlisp_ script of manageable size which links up -with _libasound.so_ for ALSA API actions. - -The setup for using *alsa-dispatcher.lsp* includes two configuration +The setup for using *alsa-dispatcher* includes two configuration aspects: 1. The ALSA configuration needs to be augmented with a _pcm_ block - that directs playback to *alsa-dispatcher.lsp* and capture from, say, + that directs playback to *alsa-dispatcher* and capture from, say, _plughw_ (i.e., the primary sound card). - 2. The priority list of possible endpoints for *alsa-dispatcher.lsp* + 2. The priority list of possible endpoints for *alsa-dispatcher* is a text file named _$HOME/.alsa-dispatcher_. === ALSA configuration (e.g. $HOME/.asoundrc) The ALSA configuration collection needs to include a declaration for *alsa-dispatcher* as an ALSA PCM by means of a short declaration in -the user's _$HOME/.asoundrc_ file or system-wide in -_/etc/asoundrc.conf_ The following is an example _$HOME/.asoundrc_. +the user's _$HOME/.asoundrc_ file or system-wide (e.g +_/etc/asoundrc.conf_ or _/etc/alsa/conf.d/51-alsa-dispatcher.conf_) + +The following is an example _$HOME/.asoundrc_. ---- pcm.!default dispatch @@ -49,7 +48,7 @@ pcm.dispatch { pcm { type plug slave { - pcm "file:|exec /usr/bin/alsa-dispatcher.lsp" + pcm "file:|exec /usr/bin/alsa-dispatcher" format S16_LE; channels 2; rate 48000; } } @@ -62,19 +61,19 @@ The first line in the example asserts that "dispatch" is the default PCM. I.e. that playback directed to "default" should be passed on to "dispatch". -The lines below that declares the "dispatch" PCM to have its playback -stream directed to the command _/usr/local/bin/alsa-dispatcher.lsp_ -via a pipe (that is where *alsa-dispatcher.lsp* is for this example), -and the "dispatch" PCM capture stream is sourced from _plughw_ (i.e. -the default sound card). +The rest of the example declares the "dispatch" PCM to be an "asym" +that has the playback stream directed via a pipe to the command +_/usr/bin/alsa-dispatcher_ (which is where *alsa-dispatcher* is +installed in this example), and further it has the capture stream +sourced from _plughw_ (i.e. the default sound card). Note that the playback PCM explicitly declares the stream -characteristica (format, channels and rate) used up by -*alsa-dispatcher.lsp*. +characteristics (format, channels and rate) as used by +*alsa-dispatcher*. === About $HOME/.alsa-dispatcher -The endpoints are enumerated for *alsa-dispatcher.lsp* in a text file +The endpoints are enumerated for *alsa-dispatcher* in a text file _$HOME/.alsa-dispatcher_ with one line for each PCM device. The line contains PCM name and optionally setting variations for that device, in the form of _key=value_. Currently only _latency_ may be varied. @@ -92,23 +91,26 @@ The example _$HOME/.alsa-dispatcher_ nominates _bt_ as the first ALSA PCM to try, then the _usb_ device and the _plughw_ as the third and last option. It's an imagined setup with a bluetooth device _bt_ that should have priority when in use, next a USB sound card _usb_ as -secondary option when in use, and thirdly the default sound card +secondary option when in use, and third the default sound card _plughw_. -Thus, *alsa-dispatcher.lsp* will try to direct playback to _bt_ first. -If that is not in use *alsa-dispatcher.lsp* tries to direct playback -to _usb_ and if the is not in use either, then *alsa-dispatcher.lsp* -directs playback to _plughw_ (i.e. the default sound card). +Thus, *alsa-dispatcher* will try to direct playback to _bt_ first. If +that is not in use *alsa-dispatcher* tries to direct playback to _usb_ +and if the is not in use either, then *alsa-dispatcher* directs +playback to _plughw_ (i.e. the default sound card). == NOTES -*alsa-dispatcher.lsp* keeps playback channeling to a selected endpoint -as long as that is available. If the endpoint goes away, or the -*alsa-dispatcher.lsp* program is killed, that channeling is -interrupted. Then the original sound source (eg a browser) may -establish a new playback sink, which would caue a new -*alsa-dispatcher.lsp* to run through the priority list again to pick -the first option available in the then current audio context. +*alsa-dispatcher* keeps channeling playback to a selected endpoint as +long as that remains available. If the endpoint goes away (or the +*alsa-dispatcher* program is killed) that channeling is interrupted. +The original sound source (eg a browser) may then establish a new +playback sink, which would cause a new *alsa-dispatcher* to run +through the priority list again to pick the first option available in +the then current audio context. + +The program is an embedded _newlisp_ script of manageable size that +links up with _libasound.so_ for ALSA API actions. == SEE ALSO