mirror of
https://github.com/alsa-project/alsa-utils
synced 2024-12-22 11:06:32 +01:00
138e53aabb
If snd-aloop device is on playback side, the required sync mode is PLAYSHIFT. That means Loopback ctl elem "PCM Rate Shift 100000" of the corresponding capture side of the Loopback pipe must be controlled (by a reciprocal). ASCII name of the playback rate shift ctl elem is specified with newly added option -x/--prateshift, e.g.: -P hw:Loopback,0 -S playshift \ -x iface=PCM,name='PCM Rate Shift 100000',device=1 Signed-off-by: Pavel Hofman <pavel.hofman@ivitera.com> Signed-off-by: Jaroslav Kysela <perex@perex.cz>
213 lines
5.2 KiB
Groff
213 lines
5.2 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\-x <ctl_ascii_name>\fP | \fI\-\-prateshift=<ctl_ascii_name>\fP
|
|
|
|
Specify ctl ascii name for playshift sync mode (see the Examples section).
|
|
|
|
.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\-r <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
|
|
.nf
|
|
\fBalsaloop \-C hw:0,0 \-P hw:1,0 \-t 50000\fR
|
|
|
|
\fBalsaloop \-C hw:soundcard,0 \-P hw:Loopback,0 \-t 50000 \-S playshift \\
|
|
\-x iface=PCM,name='PCM Rate Shift 100000',device=1\fR
|
|
.ne
|
|
.SH BUGS
|
|
None known.
|
|
.SH AUTHOR
|
|
\fBalsaloop\fP is by Jaroslav Kysela <perex@perex.cz>.
|
|
This document is by Jaroslav Kysela <perex@perex.cz>.
|