MAN.9FRONT.ORG RTFM


     AUDIO(1)                                                 AUDIO(1)

     NAME
          mp3dec, mp3enc, oggdec, oggenc, flacdec, flacenc, 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 [ -s seconds ]
          audio/sundec

          audio/oggenc
          audio/mp3enc [ -hprv ] [ -b bitrate ] [ -B bitrate ] [ -m
          mode ] [ -q q ] [ -s sfreq ] [ -V q ] [ long or silly
          options ]
          audio/flacenc [ -b bitspersample ] [ -c channels ] [ -l
          compresslevel ] [ -s sfreq ] [ -P padding ] [ -T field=value
          ]

          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.

          Flacenc, oggenc and mp3enc produce FLAC, 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).

          Flacenc and oggenc accept raw PCM in the same byte order as
          /dev/audio (little-endian), while mp3enc -r expects big-

     AUDIO(1)                                                 AUDIO(1)

          endian.

        Encoding options
          -b   set minimum allowed bitrate in Kb/s for VBR, default
               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

     AUDIO(1)                                                 AUDIO(1)

          output format fmt of the conversion.  Fmt is a concatenated
          string of the following parts:

          s#   sample format is little-endian signed integer where #
               specifies the number of bits

          u#   unsigned little-endian integer format

          S#   signed 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

     AUDIO(1)                                                 AUDIO(1)

          16KHz (you may not need dd):

               dd -conv swab | audio/mp3enc -a -r -m m --resample 16 -b 24

     SOURCE
          /sys/src/cmd/audio

     SEE ALSO
          play(1), zuke(1)
          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).  Flacenc first
          appeared in 9front (January, 2021).