226 lines
9.1 KiB
HTML
226 lines
9.1 KiB
HTML
|
|
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
|
|
<HTML><HEAD><TITLE>Man page of ALSALOOP</TITLE>
|
|
</HEAD><BODY>
|
|
<H1>ALSALOOP</H1>
|
|
Section: User Commands (1)<BR>Updated: 5 Aug 2010<BR><A HREF="#index">Index</A>
|
|
<A HREF="/cgi-bin/man/man2html">Return to Main Contents</A><HR>
|
|
|
|
<A NAME="lbAB"> </A>
|
|
<H2>NAME</H2>
|
|
|
|
alsaloop - command-line PCM loopback
|
|
<A NAME="lbAC"> </A>
|
|
<H2>SYNOPSIS</H2>
|
|
|
|
<B>alsaloop</B> [<I>-option</I>] [<I>cmd</I>]
|
|
<A NAME="lbAD"> </A>
|
|
<H2>DESCRIPTION</H2>
|
|
|
|
<P>
|
|
<B>alsaloop</B> allows create a PCM loopback between a PCM capture device
|
|
and a PCM playback device.
|
|
<P>
|
|
<B>alsaloop</B> 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).
|
|
<P>
|
|
<A NAME="lbAE"> </A>
|
|
<H2>OPTIONS</H2>
|
|
|
|
<P>
|
|
<DL COMPACT>
|
|
<DT id="1"><I>-h</I> | <I>--help</I><DD>
|
|
<P>
|
|
Prints the help information.
|
|
<P>
|
|
<DT id="2"><I>-g <file></I> | <I>--config=<file></I><DD>
|
|
<P>
|
|
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:
|
|
<P>
|
|
<BR> # First line - comment, second line - first job
|
|
<BR> -C hw:1,0 -P hw:0,0 -t 50000 -T 1
|
|
<BR> # Third line - comment, fourth line - second job
|
|
<BR> -C hw:1,1 -P hw:0,1 -t 40000 -T 2
|
|
<P>
|
|
<DT id="3"><I>-d</I> | <I>--daemonize</I><DD>
|
|
<P>
|
|
Daemonize the main process and use syslog for messages.
|
|
<P>
|
|
<DT id="4"><I>-P <device></I> | <I>--pdevice=<device></I><DD>
|
|
<P>
|
|
Use given playback device.
|
|
<P>
|
|
<DT id="5"><I>-C <device></I> | <I>--cdevice=<device></I><DD>
|
|
<P>
|
|
Use given capture device.
|
|
<P>
|
|
<DT id="6"><I>-X <device></I> | <I>--pctl=<device></I><DD>
|
|
<P>
|
|
Use given CTL device for playback.
|
|
<P>
|
|
<DT id="7"><I>-Y <device></I> | <I>--cctl=<device></I><DD>
|
|
<P>
|
|
Use given CTL device for capture.
|
|
<P>
|
|
<DT id="8"><I>-l <latency></I> | <I>--latency=<frames></I><DD>
|
|
<P>
|
|
Requested latency in frames.
|
|
<P>
|
|
<DT id="9"><I>-t <usec></I> | <I>--tlatency=<usec></I><DD>
|
|
<P>
|
|
Requested latency in usec (1/1000000sec).
|
|
<P>
|
|
<DT id="10"><I>-f <format></I> | <I>--format=<format></I><DD>
|
|
<P>
|
|
Format specification (usually S16_LE S32_LE). Use -h to list all formats.
|
|
Default format is S16_LE.
|
|
<P>
|
|
<DT id="11"><I>-c <channels></I> | <I>--channels=<channels></I><DD>
|
|
<P>
|
|
Channel count specification. Default value is 2.
|
|
<P>
|
|
<DT id="12"><I>-c <rate></I> | <I>--rate=<rate></I><DD>
|
|
<P>
|
|
Rate specification. Default value is 48000 (Hz).
|
|
<P>
|
|
<DT id="13"><I>-n</I> | <I>--resample</I><DD>
|
|
<P>
|
|
Allow rate resampling using alsa-lib.
|
|
<P>
|
|
<DT id="14"><I>-A <converter></I> | <I>--samplerate=<converter></I><DD>
|
|
<P>
|
|
Use libsamplerate and choose a converter:
|
|
<P>
|
|
<BR> 0 or sincbest - best quality
|
|
<BR> 1 or sincmedium - medium quality
|
|
<BR> 2 or sincfastest - lowest quality
|
|
<BR> 3 or zerohold - hold zero samples
|
|
<BR> 4 or linear - worst quality - linear resampling
|
|
<BR> 5 or auto - choose best method
|
|
<P>
|
|
<DT id="15"><I>-B <size></I> | <I>--buffer=<size></I><DD>
|
|
<P>
|
|
Buffer size in frames.
|
|
<P>
|
|
<DT id="16"><I>-E <size></I> | <I>--period=<size></I><DD>
|
|
<P>
|
|
Period size in frames.
|
|
<P>
|
|
<DT id="17"><I>-s <secs></I> | <I>--seconds=<secs></I><DD>
|
|
<P>
|
|
Duration of loop in seconds.
|
|
<P>
|
|
<DT id="18"><I>-b</I> | <I>--nblock</I><DD>
|
|
<P>
|
|
Non-block mode (very early process wakeup). Eats more CPU.
|
|
<P>
|
|
<DT id="19"><I>-S <mode></I> | <I>--sync=<mode></I><DD>
|
|
<P>
|
|
Sync mode specification for capture to playback stream:
|
|
<BR> 0 or none - do not touch the stream
|
|
<BR> 1 or simple - add or remove samples to keep
|
|
<BR> both streams synchronized
|
|
<BR> 2 or captshift - use driver for the capture device
|
|
<BR> (if supported) to compensate
|
|
<BR> the rate shift
|
|
<BR> 3 or playshift - use driver for the playback device
|
|
<BR> (if supported) to compensate
|
|
<BR> the rate shift
|
|
<BR> 4 or samplerate - use samplerate library to do rate resampling
|
|
<BR> 5 or auto - automatically selects the best method
|
|
<BR> in this order: captshift, playshift,
|
|
<BR> samplerate, simple
|
|
<P>
|
|
<DT id="20"><I>-T <num></I> | <I>--thread=<num></I><DD>
|
|
<P>
|
|
Thread number (-1 means create a unique thread). All jobs with same
|
|
thread numbers are run within one thread.
|
|
<P>
|
|
<DT id="21"><I>-m <mixid></I> | <I>--mixer=<midid></I><DD>
|
|
<P>
|
|
Redirect mixer control from the playback card to the capture card. Format of
|
|
<I>mixid</I> is SRCID(PLAYBACK)[@DSTID(PLAYBACK)]:
|
|
<P>
|
|
<BR> "name='Master Playback Switch'@name='Another Switch'"
|
|
<BR> "name='PCM Playback Volume'"
|
|
<P>
|
|
Known attributes:
|
|
<P>
|
|
<BR> name - control ID name
|
|
<BR> index - control ID index
|
|
<BR> device - control ID device
|
|
<BR> subdevice - control ID subdevice
|
|
<BR> iface - control ID interface
|
|
<BR> numid - control ID numid
|
|
<P>
|
|
<DT id="22"><I>-O <ossmixid></I> | <I>--ossmixer=<midid></I><DD>
|
|
<P>
|
|
Redirect mixer control from the OSS Mixer emulation layer (capture card)
|
|
to the ALSA layer (capture card). Format of <I>ossmixid</I> is
|
|
ALSAID[,INDEX]@OSSID:
|
|
<P>
|
|
<BR> "<A HREF="mailto:Master@VOLUME">Master@VOLUME</A>"
|
|
<BR> "PCM,1@ALTPCM"
|
|
<P>
|
|
Known OSS attributes:
|
|
<P>
|
|
<BR> VOLUME, BASS, TREBLE, SYNTH, PCM, SPEAKER, LINE, MIC, CD, IMIX, ALTPCM,
|
|
<BR> RECLEV, IGAIN, OGAIN, LINE1, LINE2, LINE3, DIGITAL1, DIGITAL2, DIGITAL3,
|
|
<BR> PHONEIN, PHONEOUT, VIDEO, RADIO, MONITOR
|
|
<P>
|
|
<DT id="23"><I>-v</I> | <I>--verbose</I><DD>
|
|
<P>
|
|
Verbose mode. Use multiple times to increase verbosity.
|
|
<P>
|
|
<P>
|
|
<DT id="24"><I>-U</I> | <I>--xrun</I><DD>
|
|
<P>
|
|
Verbose xrun profiling.
|
|
<P>
|
|
<DT id="25"><I>-W <timeout></I> | <I>--wake=<timeout></I><DD>
|
|
<P>
|
|
Set process wake timeout.
|
|
<P>
|
|
</DL>
|
|
<A NAME="lbAF"> </A>
|
|
<H2>EXAMPLES</H2>
|
|
|
|
<P>
|
|
<DL COMPACT>
|
|
<DT id="26"><B>alsaloop -C hw:0,0 -P hw:1,0 -t 50000</B><DD>
|
|
<P>
|
|
</DL>
|
|
<A NAME="lbAG"> </A>
|
|
<H2>BUGS</H2>
|
|
|
|
None known.
|
|
<A NAME="lbAH"> </A>
|
|
<H2>AUTHOR</H2>
|
|
|
|
<B>alsaloop</B> is by Jaroslav Kysela <<A HREF="mailto:perex@perex.cz">perex@perex.cz</A>>.
|
|
This document is by Jaroslav Kysela <<A HREF="mailto:perex@perex.cz">perex@perex.cz</A>>.
|
|
<P>
|
|
|
|
<HR>
|
|
<A NAME="index"> </A><H2>Index</H2>
|
|
<DL>
|
|
<DT id="27"><A HREF="#lbAB">NAME</A><DD>
|
|
<DT id="28"><A HREF="#lbAC">SYNOPSIS</A><DD>
|
|
<DT id="29"><A HREF="#lbAD">DESCRIPTION</A><DD>
|
|
<DT id="30"><A HREF="#lbAE">OPTIONS</A><DD>
|
|
<DT id="31"><A HREF="#lbAF">EXAMPLES</A><DD>
|
|
<DT id="32"><A HREF="#lbAG">BUGS</A><DD>
|
|
<DT id="33"><A HREF="#lbAH">AUTHOR</A><DD>
|
|
</DL>
|
|
<HR>
|
|
This document was created by
|
|
<A HREF="/cgi-bin/man/man2html">man2html</A>,
|
|
using the manual pages.<BR>
|
|
Time: 00:05:06 GMT, March 31, 2021
|
|
</BODY>
|
|
</HTML>
|