mirror of
https://github.com/alsa-project/alsa-utils
synced 2024-12-23 00:26:30 +01:00
513a9c7ad1
- added -W/--wake option to reduce poll time - another try to fix the avail_min parameter for playback - fixed initial silence fill Signed-off-by: Jaroslav Kysela <perex@perex.cz>
206 lines
4.8 KiB
Groff
206 lines
4.8 KiB
Groff
.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>.
|