pacat(1)

πŸ“¦
version 17.0 Β· 3 versions
, in alpine 3.24, centos-stream 10, debian bookworm, debian trixie, fedora 43, fedora 44, nixos 26.05, nixpkgs unstable, opensuse-leap 16.0, ubuntu jammy, ubuntu noble, ubuntu questing, ubuntu resolute, ubuntu stonking

✨ pacat(1) ✨ β€” bestie's guide to the PulseAudio play/record girlies πŸŽ€

okay so real talk: this is the manual page for pacat, from the General Commands Manual section of the man pages, and it's lowkey one of the most useful little tools in the whole PulseAudio cinematic universe. sit down, grab a strawberry πŸ“, we're doing this.


🌸 NAME 🌸

pacat β€” play back or record raw or encoded audio streams on a PulseAudio sound server. that's the whole vibe. she plays. she records. she does not gatekeep. πŸ‘‘


πŸ¦‹ SYNOPSIS πŸ¦‹

paplay [options] [FILE]

parecord [options] [FILE]

pacat [options] [FILE]

parec [options] [FILE]

pamon [options] [FILE]

pacat --help

pacat --version

so basically she answers to five different names β€” paplay, parecord, pacat, parec, pamon β€” like a girl with a main account and four alts, and which one you call her by actually changes her whole personality (more on that in a sec πŸ’…). plus the classic --help and --version for when you just need to know who she is.


πŸ’– DESCRIPTION πŸ’–

pacat is a simple tool for playing back or capturing raw or encoded audio files on a PulseAudio sound server. simple!! she said simple!! and she understands all audio file formats supported by libsndfile, which is genuinely so iconic of her. 🌈


✨ OPTIONS ✨

every single one, no skips, no cuts, full album. 🎧

  • -h | --help β€” show help. bestie needs help sometimes, it's fine, it's giving growth.
  • --version β€” show version information. identity check! who am i? πŸͺž
  • -r | --record β€” 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 parec, this is the default. so parec is literally just pacat --record with a name change and a dream. 😌
  • -p | --playback β€” 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 pacat, this is the default. main character behaviour, honestly.
  • -v | --verbose β€” enable verbose operation. dumps the current playback time to STDERR during playback/capturing. she's narrating her own life. we love a narrator. πŸ—£οΈ
  • -s | --server=SERVER β€” choose the server to connect to. pick your location, queen.
  • -d | --device=SINKORSOURCE β€” specify the symbolic name of the sink/source to play/record this stream on/from. The special names , and can be used to specify the default sink, source and monitor respectively. (yes, the names are literally blank in the original text, bestie β€” i'm not inventing them, that's just what the page says, and i refuse to make stuff up about your audio. πŸ™ˆ)
  • --monitor-stream=INDEX β€” record from the sink input with index INDEX. eavesdropping but make it legal. πŸ‘€
  • -n | --client-name=NAME β€” specify the client name paplay shall pass to the server when connecting. name tag! hi my name is ✨
  • --stream-name=NAME β€” specify the stream name paplay shall pass to the server when creating the stream.
  • --volume=VOLUME β€” specify the initial playback volume to use. choose a value between 0 (silent) and 65536 (100% volume). numbers, periodt.
  • --rate=SAMPLERATE β€” capture or play back audio with the specified sample rate. defaults to 44100 Hz.
  • --format=FORMAT β€” 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.
  • --channels=CHANNELS β€” capture or play back audio with the specified number of channels. if more than two channels are used it is recommended to use the --channel-map option below. defaults to 2.
  • --channel-map=CHANNELMAP β€” explicitly choose a channel map when playing back this stream. the argument should be a comma separated list of channel names: front-left, front-right, mono, front-center, rear-left, rear-right, rear-center, lfe, front-left-of-center, front-right-of-center, side-left, side-right, top-center, top-front-center, top-front-left, top-front-right, top-rear-left, top-rear-right, top-rear-center, or any of the 32 auxiliary channel names aux0 to aux31. that's the whole guest list, everyone's invited. πŸ’Œ
  • --fix-format β€” if passed, the sample format of the stream is changed to the native format of the sink the stream is connected to. she's adapting. she's flexible. she's that girl.
  • --fix-rate β€” if passed, the sampling rate of the stream is changed to the native rate of the sink the stream is connected to.
  • --fix-channels β€” 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.
  • --no-remix β€” never upmix or downmix channels. boundaries!! 🚧
  • --no-remap β€” never remap channels. instead of mapping channels by their name this will match them solely by their index/order. so like, no name recognition, just vibes and position.
  • --latency=BYTES β€” 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 --latency-msec, but not both. pick a lane, bestie.
  • --latency-msec=MSEC β€” 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 --latency, but not both. same rule, different unit.
  • --process-time=BYTES β€” 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 --process-time-msec, but not both.
  • --process-time-msec=MSEC β€” 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 --process-time, but not both.
  • --property=PROPERTY=VALUE β€” attach a property to the client and stream. may be used multiple times. stack them like friendship bracelets. 🫢
  • --raw β€” play/record raw audio data. this is the default if this program is invoked as pacat, parec or pamon.
  • --file-format[=FFORMAT] β€” play/record encoded audio data in the file format specified. this is the default if this program is invoked as paplay and parecord.
  • --list-file-formats β€” list supported file formats. the menu, if you will. πŸ“œ
tiny reminder bestie: --latency/--latency-msec and --process-time/--process-time-msec are either/or situations. do NOT pass both of a pair, the page says so explicitly, and i will not be the one to explain to the server why you did that. πŸ’€

πŸ’€ LIMITATIONS πŸ’€

due to a limitation in libsndfile, paplay 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. it's not her fault!! it's libsndfile's fault!! but fr fr, know this going in. 😭


🌟 AUTHORS 🌟

the PulseAudio Developers <pulseaudio-discuss (at) lists (dot) freedesktop (dot) org>; PulseAudio is available from http://pulseaudio.org/ β€” give them their flowers, they built all of this. πŸ’


πŸ‘‘ SEE ALSO πŸ‘‘

go read those next, bestie, iykyk. πŸ¦‹


and that's the whole page, no cap, every flag and every warning intact β€” this one's from the Manuals collection, User section, pacat(1), and if you made it all the way down here then honestly? slay. go play something. πŸ’…βœ¨πŸŽ€

πŸ“¦ where this page comes from