This utility is a simple JACK client that connects to one or more JACK ports as specified on the command-line, converts the audio data read from those port(s) to signed 16-bit PCM samples and writes it to standard output. Any samples outside the normal range -1.0/+1.0 are clipped to the minimum/maximum values representable by a signed 16-bit number.
When more than one port is specified, the samples from the ports are interleaved in the output. A ringbuffer is used internally to buffer the real-time JACK callback from the sample conversion and output code; the size of this ringbuffer may be specified on the command-line. If the -x option is specifed, the most and least significant bytes in each 16-bit output sample are swapped from the native host order.
jack2pcm is Free Software, released under the GNU GPL. It is written in C and designed to run on Linux only at present (uses nanosleep() and getopt()). The only dependency is JACK itself.
jack2pcm [-n <name>] [-b <size>] [-xqh] <port1> [<port2>] -n <name> name for this JACK client (default jack2pcm-PID) -b <size> set ringbuffer to this size in bytes per port (k or M suffix accepted; default 1M) -x swap byte order <port1> & <port2> autoconnect JACK client to these port(s) -q Don't display progress information -h display this usage message and exit
At present jack2pcm is available in the form of source code only: