<?xml version="1.0"?><!--*-nxml-*-->
<!DOCTYPE manpage SYSTEM "xmltoman.dtd">
<?xml-stylesheet type="text/xsl" href="xmltoman.xsl" ?>

<!--
This file is part of PulseAudio.

PulseAudio is free software; you can redistribute it and/or modify it
under the terms of the GNU Lesser General Public License as
published by the Free Software Foundation; either version 2.1 of the
License, or (at your option) any later version.

PulseAudio is distributed in the hope that it will be useful, but WITHOUT
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General
Public License for more details.

You should have received a copy of the GNU Lesser General Public
License along with PulseAudio; if not, see <http://www.gnu.org/licenses/>.
-->

<manpage name="pacat" section="1" desc="Play back or record raw or encoded audio streams on a PulseAudio sound server">

  <synopsis>
    <cmd>paplay [<arg>options</arg>] [<arg>FILE</arg>]</cmd>
    <cmd>parecord [<arg>options</arg>] [<arg>FILE</arg>]</cmd>
    <cmd>pacat [<arg>options</arg>] [<arg>FILE</arg>]</cmd>
    <cmd>parec [<arg>options</arg>] [<arg>FILE</arg>]</cmd>
    <cmd>pamon [<arg>options</arg>] [<arg>FILE</arg>]</cmd>
    <cmd>pacat <opt>--help</opt></cmd>
    <cmd>pacat <opt>--version</opt></cmd>
  </synopsis>

  <description>
    <p><file>pacat</file> is a simple tool for playing back or
    capturing raw or encoded audio files on a PulseAudio sound
    server. It understands all audio file formats supported by
    <file>libsndfile</file>.</p>
  </description>

  <options>

    <option>
      <p><opt>-h | --help</opt></p>

      <optdesc><p>Show help.</p></optdesc>
    </option>

    <option>
      <p><opt>--version</opt></p>

      <optdesc><p>Show version information.</p></optdesc>
    </option>

    <option>
      <p><opt>-r | --record</opt></p>

      <optdesc><p>Capture audio data and write it to the specified file or to STDOUT if none is specified. If the tool is called under the name <file>parec</file> this is the default.</p></optdesc>
    </option>

    <option>
      <p><opt>-p | --playback</opt></p>

      <optdesc><p>Read audio data from the specified file or STDIN if none is specified, and play it back. If the tool is called under the name <file>pacat</file> this is the default.</p></optdesc>
    </option>

    <option>
      <p><opt>-v | --verbose</opt></p>

      <optdesc><p>Enable verbose operation. Dumps the current playback time to STDERR during playback/capturing.</p></optdesc>
    </option>

    <option>
      <p><opt>-s | --server</opt><arg>=SERVER</arg></p>

      <optdesc><p>Choose the server to connect to.</p></optdesc>
    </option>

    <option>
      <p><opt>-d | --device</opt><arg>=SINKORSOURCE</arg></p>

      <optdesc><p>Specify the symbolic name of the sink/source to play/record this stream on/from. The special names @DEFAULT_SINK@, @DEFAULT_SOURCE@ and @DEFAULT_MONITOR@ can be used to specify the default sink, source and monitor respectively.</p></optdesc>
    </option>

    <option>
      <p><opt>--monitor-stream</opt><arg>=INDEX</arg></p>

      <optdesc><p>Record from the sink input with index INDEX.</p></optdesc>
    </option>

    <option>
      <p><opt>-n | --client-name</opt><arg>=NAME</arg></p>

      <optdesc><p>Specify the client name <file>paplay</file> shall pass to the server when connecting.</p></optdesc>
    </option>

    <option>
      <p><opt>--stream-name</opt><arg>=NAME</arg></p>

      <optdesc><p>Specify the stream name <file>paplay</file> shall pass to the server when creating the stream.</p></optdesc>
    </option>

    <option>
      <p><opt>--volume</opt><arg>=VOLUME</arg></p>

      <optdesc><p>Specify the initial playback volume to use. Choose a value between 0 (silent) and 65536 (100% volume).</p></optdesc>
    </option>

    <option>
      <p><opt>--rate</opt><arg>=SAMPLERATE</arg></p>

      <optdesc><p>Capture or play back audio with the specified sample rate. Defaults to 44100 Hz.</p></optdesc>
    </option>

    <option>
      <p><opt>--format</opt><arg>=FORMAT</arg></p>

      <optdesc><p>Capture or play back audio with the specified sample
      format. See
      https://www.freedesktop.org/wiki/Software/PulseAudio/Documentation/User/SupportedAudioFormats/
      for supported values. Defaults to s16ne.</p></optdesc>
    </option>

    <option>
      <p><opt>--channels</opt><arg>=CHANNELS</arg></p>

      <optdesc><p>Capture or play back audio with the specified number
      of channels. If more than two channels are used it is
      recommended to use the <opt>--channel-map</opt> option
      below. Defaults to 2.</p></optdesc>
    </option>

    <option>
      <p><opt>--channel-map</opt><arg>=CHANNELMAP</arg></p>

      <optdesc><p>Explicitly choose a channel map when playing back
      this stream. The argument should be a comma separated list of
      channel names: <opt>front-left</opt>, <opt>front-right</opt>,
      <opt>mono</opt>, <opt>front-center</opt>, <opt>rear-left</opt>,
      <opt>rear-right</opt>, <opt>rear-center</opt>, <opt>lfe</opt>,
      <opt>front-left-of-center</opt>,
      <opt>front-right-of-center</opt>, <opt>side-left</opt>,
      <opt>side-right</opt>, <opt>top-center</opt>,
      <opt>top-front-center</opt>, <opt>top-front-left</opt>,
      <opt>top-front-right</opt>, <opt>top-rear-left</opt>,
      <opt>top-rear-right</opt>, <opt>top-rear-center</opt>, or any of
      the 32 auxiliary channel names <opt>aux0</opt> to
      <opt>aux31</opt>.</p></optdesc>
    </option>

    <option>
      <p><opt>--fix-format</opt></p>
      <optdesc><p>If passed, the sample format of the stream is changed to the native format of the sink the stream is connected to.</p></optdesc>
    </option>

    <option>
      <p><opt>--fix-rate</opt></p>
      <optdesc><p>If passed, the sampling rate of the stream is changed to the native rate of the sink the stream is connected to.</p></optdesc>
    </option>

    <option>
      <p><opt>--fix-channels</opt></p>
      <optdesc><p>If passed, the number of channels and the channel map of the stream is changed to the native number of channels and the native channel map of the sink the stream is connected to.</p></optdesc>
    </option>

    <option>
      <p><opt>--no-remix</opt></p>
      <optdesc><p>Never upmix or downmix channels.</p></optdesc>
    </option>

    <option>
      <p><opt>--no-remap</opt></p>
      <optdesc><p>Never remap channels. Instead of mapping channels by their name this will match them solely by their index/order.</p></optdesc>
    </option>

    <option>
      <p><opt>--latency</opt><arg>=BYTES</arg></p>
      <optdesc><p>Explicitly configure the latency, with a time
      specified in bytes in the selected sample format. If left out
      the server will pick the latency, usually relatively high for
      power saving reasons. Use either this option or
      <opt>--latency-msec</opt>, but not both.</p></optdesc>
    </option>

    <option>
      <p><opt>--latency-msec</opt><arg>=MSEC</arg></p>
      <optdesc><p>Explicitly configure the latency, with a time
      specified in milliseconds. If left out the server will pick the
      latency, usually relatively high for power saving reasons. Use
      either this option or <opt>--latency</opt>, but not
      both.</p></optdesc>
    </option>

    <option>
      <p><opt>--process-time</opt><arg>=BYTES</arg></p>
      <optdesc><p>Explicitly configure the process time, with a time
      specified in bytes in the selected sample format. If left out
      the server will pick the process time. Use either this option or
      <opt>--process-time-msec</opt>, but not both.</p></optdesc>
    </option>

    <option>
      <p><opt>--process-time-msec</opt><arg>=MSEC</arg></p>
      <optdesc><p>Explicitly configure the process time, with a time
      specified in milliseconds. If left out the server will pick the
      process time. Use either this option or <opt>--process-time</opt>,
      but not both.</p></optdesc>
    </option>

    <option>
      <p><opt>--property</opt><arg>=PROPERTY=VALUE</arg></p>
      <optdesc><p>Attach a property to the client and stream. May be
      used multiple times</p></optdesc>
    </option>

    <option>
      <p><opt>--raw</opt></p>
      <optdesc><p>Play/record raw audio data. This is the default if
      this program is invoked as <file>pacat</file>, <file>parec</file> or
      <file>pamon</file>.</p></optdesc>
    </option>

    <option>
      <p><opt>--file-format</opt><arg>[=FFORMAT]</arg></p>
      <optdesc><p>Play/record encoded audio data in the file format
      specified. This is the default if this program is invoked as
      <file>paplay</file> and <file>parecord</file>.</p></optdesc>
    </option>

    <option>
      <p><opt>--list-file-formats</opt></p>
      <optdesc><p>List supported file formats.</p></optdesc>
    </option>

  </options>

  <section name="Limitations">
    <p>Due to a limitation in <file>libsndfile</file>
    <file>paplay</file> currently does not always set the correct channel
    mapping for playback of multichannel (i.e. surround) audio files, even
    if the channel mapping information is available in the audio file.</p>
  </section>

  <section name="Authors">
    <p>The PulseAudio Developers &lt;@PACKAGE_BUGREPORT@&gt;; PulseAudio is available from <url href="@PACKAGE_URL@"/></p>
  </section>

  <section name="See also">
    <p>
      <manref name="pulseaudio" section="1"/>, <manref name="pactl" section="1"/>
    </p>
  </section>

</manpage>
