| .TH ALSALOOP 1 "5 Aug 2010" |
| .SH NAME |
| alsaloop \- command-line PCM loopback |
| .SH SYNOPSIS |
| \fBalsaloop\fP [\fI\-option\fP] [\fIcmd\fP] |
| .SH DESCRIPTION |
| |
| \fBalsaloop\fP allows create a PCM loopback between a PCM capture device |
| and a PCM playback device. |
| |
| \fBalsaloop\fP supports multiple soundcards, adaptive clock synchronization, |
| adaptive rate resampling using the samplerate library (if available in |
| the system). Also, mixer controls can be redirected from one card to |
| another (for example Master and PCM). |
| |
| .SH OPTIONS |
| |
| .TP |
| \fI\-h\fP | \fI\-\-help\fP |
| |
| Prints the help information. |
| |
| .TP |
| \fI\-g <file>\fP | \fI\-\-config=<file>\fP |
| |
| Use given configuration file. The syntax of this file is simple: one line |
| contains the command line options for one job. The '#' means comment and |
| rest of line is ignored. Example: |
| |
| # First line - comment, second line - first job |
| -C hw:1,0 -P hw:0,0 -t 50000 -T 1 |
| # Third line - comment, fourth line - second job |
| -C hw:1,1 -P hw:0,1 -t 40000 -T 2 |
| |
| .TP |
| \fI\-d\fP | \fI\-\-daemonize\fP |
| |
| Daemonize the main process and use syslog for messages. |
| |
| .TP |
| \fI\-P <device>\fP | \fI\-\-pdevice=<device>\fP |
| |
| Use given playback device. |
| |
| .TP |
| \fI\-C <device>\fP | \fI\-\-cdevice=<device>\fP |
| |
| Use given capture device. |
| |
| .TP |
| \fI\-X <device>\fP | \fI\-\-pctl=<device>\fP |
| |
| Use given CTL device for playback. |
| |
| .TP |
| \fI\-Y <device>\fP | \fI\-\-cctl=<device>\fP |
| |
| Use given CTL device for capture. |
| |
| .TP |
| \fI\-l <latency>\fP | \fI\-\-latency=<frames>\fP |
| |
| Requested latency in frames. |
| |
| .TP |
| \fI\-t <usec>\fP | \fI\-\-tlatency=<usec>\fP |
| |
| Requested latency in usec (1/1000000sec). |
| |
| .TP |
| \fI\-f <format>\fP | \fI\-\-format=<format>\fP |
| |
| Format specification (usually S16_LE S32_LE). Use -h to list all formats. |
| Default format is S16_LE. |
| |
| .TP |
| \fI\-c <channels>\fP | \fI\-\-channels=<channels>\fP |
| |
| Channel count specification. Default value is 2. |
| |
| .TP |
| \fI\-c <rate>\fP | \fI\-\-rate=<rate>\fP |
| |
| Rate specification. Default value is 48000 (Hz). |
| |
| .TP |
| \fI\-n\fP | \fI\-\-resample\fP |
| |
| Allow rate resampling using alsa-lib. |
| |
| .TP |
| \fI\-A <converter>\fP | \fI\-\-samplerate=<converter>\fP |
| |
| Use libsamplerate and choose a converter: |
| |
| 0 or sincbest - best quality |
| 1 or sincmedium - medium quality |
| 2 or sincfastest - lowest quality |
| 3 or zerohold - hold zero samples |
| 4 or linear - worst quality - linear resampling |
| 5 or auto - choose best method |
| |
| .TP |
| \fI\-B <size>\fP | \fI\-\-buffer=<size>\fP |
| |
| Buffer size in frames. |
| |
| .TP |
| \fI\-E <size>\fP | \fI\-\-period=<size>\fP |
| |
| Period size in frames. |
| |
| .TP |
| \fI\-s <secs>\fP | \fI\-\-seconds=<secs>\fP |
| |
| Duration of loop in seconds. |
| |
| .TP |
| \fI\-b\fP | \fI\-\-nblock\fP |
| |
| Non-block mode (very early process wakeup). Eats more CPU. |
| |
| .TP |
| \fI\-S <mode>\fP | \fI\-\-sync=<mode>\fP |
| |
| Sync mode specification for capture to playback stream: |
| 0 or none - do not touch the stream |
| 1 or simple - add or remove samples to keep |
| both streams synchronized |
| 2 or captshift - use driver for the capture device |
| (if supported) to compensate |
| the rate shift |
| 3 or playshift - use driver for the playback device |
| (if supported) to compensate |
| the rate shift |
| 4 or samplerate - use samplerate library to do rate resampling |
| 5 or auto - automatically selects the best method |
| in this order: captshift, playshift, |
| samplerate, simple |
| |
| .TP |
| \fI\-T <num>\fP | \fI\-\-thread=<num>\fP |
| |
| Thread number (-1 means create a unique thread). All jobs with same |
| thread numbers are run within one thread. |
| |
| .TP |
| \fI\-m <mixid>\fP | \fI\-\-mixer=<midid>\fP |
| |
| Redirect mixer control from the playback card to the capture card. Format of |
| \fImixid\fP is SRCID(PLAYBACK)[@DSTID(PLAYBACK)]: |
| |
| "name='Master Playback Switch'@name='Another Switch'" |
| "name='PCM Playback Volume'" |
| |
| Known attributes: |
| |
| name - control ID name |
| index - control ID index |
| device - control ID device |
| subdevice - control ID subdevice |
| iface - control ID interface |
| numid - control ID numid |
| |
| .TP |
| \fI\-O <ossmixid>\fP | \fI\-\-ossmixer=<midid>\fP |
| |
| Redirect mixer control from the OSS Mixer emulation layer (capture card) |
| to the ALSA layer (capture card). Format of \fIossmixid\fP is |
| ALSAID[,INDEX]@OSSID: |
| |
| "Master@VOLUME" |
| "PCM,1@ALTPCM" |
| |
| Known OSS attributes: |
| |
| VOLUME, BASS, TREBLE, SYNTH, PCM, SPEAKER, LINE, MIC, CD, IMIX, ALTPCM, |
| RECLEV, IGAIN, OGAIN, LINE1, LINE2, LINE3, DIGITAL1, DIGITAL2, DIGITAL3, |
| PHONEIN, PHONEOUT, VIDEO, RADIO, MONITOR |
| |
| .TP |
| \fI\-v\fP | \fI\-\-verbose\fP |
| |
| Verbose mode. Use multiple times to increase verbosity. |
| |
| |
| .TP |
| \fI\-U\fP | \fI\-\-xrun\fP |
| |
| Verbose xrun profiling. |
| |
| .TP |
| \fI\-W <timeout>\fP | \fI\-\-wake=<timeout>\fP |
| |
| Set process wake timeout. |
| |
| .SH EXAMPLES |
| |
| .TP |
| \fBalsaloop \-C hw:0,0 \-P hw:1,0 \-t 50000\fR |
| |
| .SH BUGS |
| None known. |
| .SH AUTHOR |
| \fBalsaloop\fP is by Jaroslav Kysela <perex@perex.cz>. |
| This document is by Jaroslav Kysela <perex@perex.cz>. |