1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
|
pw-cat
######
-----------------------------------
Play and record media with PipeWire
-----------------------------------
:Manual section: 1
:Manual group: General Commands Manual
SYNOPSIS
========
| **pw-cat** [*options*] [*FILE* \| -]
| **pw-play** [*options*] [*FILE* \| -]
| **pw-record** [*options*] [*FILE* \| -]
| **pw-midiplay** [*options*] [*FILE* \| -]
| **pw-midirecord** [*options*] [*FILE* \| -]
| **pw-dsdplay** [*options*] [*FILE* \| -]
DESCRIPTION
===========
**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.
OPTIONS
=======
-h | --help
Show help.
--version
Show version information.
-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.
AUTHORS
=======
The PipeWire Developers <@PACKAGE_BUGREPORT@>; PipeWire is available from @PACKAGE_URL@
SEE ALSO
========
``PipeWire(1)``,
``pw-mon(1)``,
|