pw-cat(1)
π pw-cat β ok bestie, we're playing and recording media with PipeWire π
This is the manual page for pw-cat, from the General Commands Manual section, and honestly? It's a whole vibe. It also answers to the names pw-play, pw-record, pw-midiplay, pw-midirecord, pw-midi2play, pw-midi2record and pw-dsdplay, depending on which mode you want it to wake up in. iykyk.
β¨ NAME β¨
pw-cat β Play and record media with PipeWire π§π
π SYNOPSIS π
pw-cat [options] [FILE | -]
pw-play [options] [FILE | -]
pw-record [options] [FILE | -]
pw-midiplay [options] [FILE | -]
pw-midirecord [options] [FILE | -]
pw-midi2play [options] [FILE | -]
pw-midi2record [options] [FILE | -]
pw-dsdplay [options] [FILE | -]
π¦ DESCRIPTION π¦
pw-cat is a simple little tool for playing back or capturing raw or encoded media files on a PipeWire server. And when I say simple, I mean it's giving effortless. It understands all the audio file formats that libsndfile supports, for both PCM capture and playback. And when no container is specified for capturing PCM, it peeks at the filename extension to guess the file format β with the WAV file format as the default. π
It also gets standard MIDI files and MIDI 2.0 clip files, for both playback and recording. But listen, queen, this tool will not render MIDI files. It just makes the MIDI events available to the graph. To actually hear the MIDI you need a MIDI renderer like qsynth, timidity, or a hardware MIDI renderer. Periodt.
DSD playback is supported with the DSF file format. Heads up though: this tool will only work with native DSD capable hardware, and it will produce an error when no such hardware was found. Not negotiable, that's just the rules. π
When the FILE is -, input will be from STDIN. If no format is specified, libsndfile will attempt to parse and stream the format from STDIN. For some formats this is not possible, and libsndfile will give an error. Raw, MIDI and DSD formats are all streamable from STDIN. π«Ά
When the FILE is -, output will be to STDOUT. If no format is specified, libsndfile is instructed to output the .au format, which is streamable and preserves the format, rate and channels. Raw and DSD formats are all streamable to STDOUT. slay.
π OPTIONS π
-h | --helpβ Show help. π₯Ί--versionβ Show version information. β¨-v | --verboseβ Verbose operation. she talks more.-R | --remote=NAMEβ The name of 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 namepw-play,pw-midiplayorpw-midi2play, this is the default. βΆοΈ-r | --recordβ Recording mode. Capture data and write it to the specified file. If the tool is called under the namepw-record,pw-midirecordorpw-midi2record, this is the default. βΊοΈ-m | --midiβ MIDI mode. FILE is a MIDI file. If the tool is called under the namepw-midiplayorpw-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 asqsynth,timidityor a hardware renderer to hear the MIDI. πΉ-c | --midi-clipβ MIDI 2.0 clip mode. FILE is a MIDI 2.0 clip file. If the tool is called under the namepw-midi2playorpw-midi2record, 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 asqsynth,timidityor a hardware renderer to hear the MIDI. πΌ-d | --dsdβ DSD mode. FILE is a DSF file. If the tool is called under the namepw-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. π-s | --sysexβ SysEx mode. FILE is a File that contains a raw SysEx MIDI message. If the tool is called under the namepw-sysex, this is the default. The File is read and sent as a MIDI control message into the graph. π¨--media-type=VALUEβ Set the media type property (defaultAudio/Mididepending 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 (defaultPlayback/Capturedepending 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 (defaultMusic). The media type is used by the session manager to select a suitable target to link to. π―--target=VALUEβ Set a node target (defaultauto). The value can be:auto: Automatically select (Default)0: Don't try to link this node<id>: Theobject.serialor thenode.nameof a target node
--latency=VALUE[units]β Set the node latency (default100ms).- 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
sfor seconds,msfor milliseconds,usfor microseconds,nsfor 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 between0and15are allowed, the default quality is4. π₯-a | --rawβ Raw samples will be read or written. The--rate,--format,--channelsand--channelmapcan be used to specify the raw format. π₯©-M | --force-midiβ Force midi format, one of"midi"or"ump", (defaultump). When reading or writing midi, for one of midi or UMP. πΉ-n | --sample-count=COUNTβ Stop after COUNT samples. π--rate=VALUEβ The sample rate, default48000. π--channels=VALUEβ The number of channels, default2. π--channel-map=VALUEβ The channelmap. Possible values include either a channel layout such asmono,stereo,surround-21,quad,surround-22,surround-40, or a comma separated array of channel names such asFL,FR. See--list-layoutsand--list-channel-namesto get a complete list of possible values. πΊοΈ--list-layoutsβ List all known channel layouts. One of these can be used as the--channel-mapvalue. π--list-channel-namesβ List all known channel names. An array of these can be used as the--channel-mapvalue. π--format=VALUEβ The sample format to use. Some possible values include:u8,s8,s16(default),s24,s32,f32,f64. See--list-formatsto get a complete list of values. ποΈ--list-formatsβ List all known format values. π--container=VALUEβ Specify the container to use when saving. This is usually guessed from the filename extension but can be specified explicitly. When using STDOUT and no container is specified, theAUcontainer will be used. Then using a filename and the container was not specified and it could not be derived from the filename, theWAVcontainer is used. π¦--list-containersβ List all known container values. π--volume=VALUEβ The stream volume, default1.000. Depending on the locale you have configured,","or"."may be used as a decimal separator. Check with thelocalecommand. π
π AUTHORS π
The PipeWire Developers <https://gitlab.freedesktop.org/pipewire/pipewire/issues>; PipeWire is available from <https://pipewire.org> π
πΈ SEE ALSO πΈ
pipewire(1), pw-mon(1), π«Ά
and that's the whole page, bestie!! this one was written by the PipeWire girlies at PipeWire 1.6.11, and it's filed under pw-cat(1). go play something cute. πβ¨ππ¦
π¦ where this page comes from
- fedora 44: pipewire-utils 1.6.11-1.fc44 Β· MIT
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms