AUDIO(1) AUDIO(1)
NAME
mp3dec, mp3enc, oggdec, oggenc, flacdec, sundec, wavdec,
pcmconv, mixfs - decode and encode audio files
SYNOPSIS
audio/mp3dec [ -s seconds ] [ -d ]
audio/oggdec [ -s seconds ]
audio/flacdec [ -s seconds ]
audio/wavdec
audio/sundec
audio/oggenc
audio/mp3enc [ -hprv ] [ -b bitrate ] [ -B bitrate ] [ -m
mode ] [ -q q ] [ -s sfreq ] [ -V q ] [ long or silly
options ]
audio/pcmconv [ -i fmt ] [ -o fmt ] [ -l length ]
audio/mixfs [ -D ] [ -s srvname ] [ -m mtpt ]
DESCRIPTION
These programs decode and encode various audio formats from
and to 16-bit stereo PCM (little endian). The decoders read
the compressed audio data from standard input and produce
PCM on standard output at a sampling frequency of 44.1KHz.
Mp3dec decodes MPEG audio (layer 1, 2 and 3). The -d option
enables debug output to standard error. Oggdec, flacdec,
sunwdec and wavdec are like mp3dec but decode OGG Vorbis,
FLAC lossless audio, Sun audio and RIFF wave.
Decoding options
-s seconds seek to a specific position in seconds before
decoding.
The encoders read PCM on standard input and produce com-
pressed audio on standard output.
Oggenc and mp3enc produce OGG Vorbis and MP3 audio. For
mp3enc, the MP3 file will use `constant bit-rate' (CBR)
encoding by default, but that can be changed via --abr
(average bitrate desired, ABR) or -v (variable bitrate,
VBR).
Oggenc accepts raw PCM in the same byte order as /dev/audio
(little-endian), t mp3enc -r expects big-endian.
Encoding options
-b set minimum allowed bitrate in Kb/s for VBR, default
Page 1 Plan 9 (printed 11/16/25)
AUDIO(1) AUDIO(1)
32Kb/s. For CBR, set the exact bitrate in Kb/s, which
defaults to 128Kb/s.
-B set maximum allowed bitrate in Kb/s for VBR, default
256Kb/s.
-h same as `-q 2'.
-m mode may be (s)tereo, (j)oint, (f)orce or (m)ono
(default j). force forces mid/side stereo on all
frames.
-p add CRC error protection (adds an additional 16 bits
per frame to the stream). This seems to break play-
back.
-q sets output quality to q (see -V).
-r input is raw pcm
-s set sampling frequency of input file (in KHz) to sfreq,
default is 44.1.
-v use variable bitrate (VBR) encoding
-V set quality setting for VBR to q. Default q is 4; 0
produces highest-quality and largest files, and 9 pro-
duces lowest-quality and smallest files.
Long options
--abr bitrate sets average bitrate desired in Kb/s,
instead of setting quality, and generates
ABR encoding.
--resample sfreq set sampling frequency of output file (in
KHz) to sfreq, default is input sfreq.
--mp3input input is an MP3 file
Silly options
-f same as `-q 7'. Such a deal.
-o mark as non-original (i.e. do not set the original
bit)
-c mark as copyright
-k disable sfb=21 cutoff
-e emp de-emphasis n/5/c (default n)
-d allow channels to have different blocktypes
-t disable Xing VBR informational tag
-a autoconvert from stereo to mono file for mono
encoding
-x force byte-swapping of input (see dd(1) instead)
-S don't print progress report, VBR histograms
--athonly only use the ATH for masking
--nohist disable VBR histogram display
--voice experimental voice mode
Pcmconv is a helper program used to convert various PCM sam-
ple formats. The -i and -o options specify the input and
output format fmt of the conversion. Fmt is a concatenated
string of the following parts:
s# sample format is little-endian signed integer where #
Page 2 Plan 9 (printed 11/16/25)
AUDIO(1) AUDIO(1)
specifies the number of bits
u# unsigned little-endian integer format
S# singed big-endian integer format
U# unsigned big-endian integer format
f# floating point format where # has to be 32 or 64 for
single- or double-precision
a8 8-bit a-law format
µ8 8-bit µ-law format
c# specifies the number of channels
r# gives the samplerate in Hz
The program reads samples from standard input converting the
data and writes the result to standard output until it
reached end of file or, if -l was given, a number of length
bytes have been consumed from input.
Mixfs is a fileserver serving a single audio file which
allows simultaneous playback of audio streams. When run, it
binds over /dev/audio and mixes the audio samples that are
written to it. A service name srvname can be given with the
-s option which gets posted to /srv. By default, mixfs
mounts itself on /mnt/mix and then binds /mnt/mix/audio over
/dev. A alternative mountpoint mtpt can be specified with
the -m option. The -D option causes 9p debug messages to be
written to file-descriptor 2.
EXAMPLE
Play back an `.mp3'
audio/mp3dec <foo.mp3 >/dev/audio
Encode a `.wav' file as highest-quality MP3.
audio/mp3enc -q 0 -b 320 <foo.wav >foo.mp3
Create a fixed 128Kb/s MP3 file from a `.wav' file.
audio/mp3enc -h <foo.wav >foo.mp3
Streaming from stereo 44.1KHz raw PCM data, encoding mono at
16KHz (you may not need dd):
dd -conv swab | audio/mp3enc -a -r -m m --resample 16 -b 24
Page 3 Plan 9 (printed 11/16/25)
AUDIO(1) AUDIO(1)
SOURCE
/sys/src/cmd/audio
SEE ALSO
play(1), juke(7), playlistfs(7)
http://www.underbit.com/products/mad/
http://xiph.org/doc/
http://flac.sourceforge.net/documentation.html
HISTORY
Pcmconv first appeared in 9front (December, 2012). Mixfs
first appeared in 9front (December, 2013).
Page 4 Plan 9 (printed 11/16/25)