pw-cat - Play and record media with PipeWire
pw-cat [options] [FILE | -]
pw-play [options] [FILE | -]
pw-record [options] [FILE | -]
pw-midiplay [options] [FILE | -]
pw-midirecord [options] [FILE | -]
pw-dsdplay [options] [FILE | -]
pw-cat is a simple tool for playing back or capturing raw
or encoded media files on a PipeWire server. It understands all audio file
formats supported by libsndfile for PCM capture and playback.
It understands standard MIDI files for playback and recording.
This tool will not render MIDI files, it will simply make the MIDI events
available to the graph. You need a MIDI renderer such as qsynth, timidity or
a hardware MIDI rendered to hear the MIDI.
DSD playback is supported with the DSF file format. This tool will
only work with native DSD capable hardware and will produce an error when no
such hardware was found.
When the FILE is - input and output will be from STDIN and
STDOUT respectively.
- -v | --verbose
- Verbose operation.
- -R | --remote=NAME
- The name the remote instance to connect to. If left unspecified, a
connection is made to the default PipeWire instance.
- -p | --playback
- Playback mode. Read data from the specified file, and play it back. If the
tool is called under the name pw-play or pw-midiplay this is
the default.
- -r | --record
- Recording mode. Capture data and write it to the specified file. If the
tool is called under the name pw-record or pw-midirecord
this is the default.
- -m | --midi
- MIDI mode. FILE is a MIDI file. If the tool is called under the
name pw-midiplay or pw-midirecord this is the default. Note
that this program will not render the MIDI events into audible
samples, it will simply provide the MIDI events in the graph. You need a
separate MIDI renderer such as qsynth, timidity or a hardware renderer to
hear the MIDI.
- -d | --dsd
- DSD mode. FILE is a DSF file. If the tool is called under the name
pw-dsdplay this is the default. Note that this program will
not render the DSD audio. You need a DSD capable device to play DSD
content or this program will exit with an error.
- --media-type=VALUE
- Set the media type property (default Audio/Midi depending on mode). The
media type is used by the session manager to select a suitable target to
link to.
- --media-category=VALUE
- Set the media category property (default Playback/Capture depending on
mode). The media type is used by the session manager to select a suitable
target to link to.
- --media-role=VALUE
- Set the media role property (default Music). The media type is used by the
session manager to select a suitable target to link to.
- --target=VALUE
- Set a node target (default auto). The value can be:
- auto
- Automatically select (Default)
- 0
- Don't try to link this node
- <id>
- The object.serial or the node.name of a target node
- --latency=VALUE[units]
- Set the node latency (default 100ms)
The latency determines the minimum amount of time it takes for
a sample to travel from application to device (playback) and from device
to application (capture).
The latency determines the size of the buffers that the
application will be able to fill. Lower latency means smaller buffers
but higher overhead. Higher latency means larger buffers and lower
overhead.
Units can be s for seconds, ms for milliseconds,
us for microseconds, ns for nanoseconds. If no units are
given, the latency value is samples with the samplerate of the file.
- -P |
--properties=VALUE
- Set extra stream properties as a JSON object.
- -q | --quality=VALUE
- Resampler quality. When the samplerate of the source or destination file
does not match the samplerate of the server, the data will be resampled.
Higher quality uses more CPU. Values between 0 and 15 are allowed, the
default quality is 4.
- --rate=VALUE
- The sample rate, default 48000.
- --channels=VALUE
- The number of channels, default 2.
- --channel-map=VALUE
- The channelmap. Possible values include: mono, stereo,
surround-21, quad, surround-22, surround-40,
surround-31, surround-41, surround-50,
surround-51, surround-51r, surround-70,
surround-71 or a comma separated list of channel names: FL,
FR, FC, LFE, SL, SR, FLC,
FRC, RC, RL, RR, TC, TFL,
TFC, TFR, TRL, TRC, TRR, RLC,
RRC, FLW, FRW, LFE2, FLH, FCH,
FRH, TFLC, TFRC, TSL, TSR, LLFR,
RLFE, BC, BLC, BRC
- --format=VALUE
- The sample format to use. One of: u8, s8, s16
(default), s24, s32, f32, f64.
- --volume=VALUE
- The stream volume, default 1.000. Depending on the locale you have
configured, "," or "." may be used as a decimal
separator. Check with locale command.
The PipeWire Developers
<https://gitlab.freedesktop.org/pipewire/pipewire/issues>;
PipeWire is available from https://pipewire.org