mirror of
https://github.com/alsa-project/alsa-utils
synced 2024-11-08 22:45:43 +01:00
171 lines
4.1 KiB
Groff
171 lines
4.1 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\-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\-v\fP | \fI\-\-verbose\fP
|
||
|
|
||
|
Verbose mode. Use multiple times to increase verbosity.
|
||
|
|
||
|
|
||
|
.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>.
|