AFILE *AFopenWrite (const char Fname[], int Fformat, long
    int Nchan, double Sfreq, FILE *fpinfo)

Open an audio file for writing

This routine opens an audio file for writing.  This routine
sets up the audio file parameters to write data of the given
format to the audio file.  After writing data to the file,
the routine AFclose should be called to update the file
header information and close the file.

     By default, information consisting of the date, the
user and the program creating the file is written to the
audio file header or trailer.  The routine AFsetHInfo can be
called before calling this routine to specify additional
information to be written to the file.

     This routine can write AU audio files, AIFF‐C files,
WAVE files, and headerless audio files.

AU audio file:
    8‐bit mu‐law, 8‐bit A‐law, 8/16/24/32‐bit integer, and
    32/64‐bit IEEE floating‐point data formats are
WAVE file:
    8‐bit mu‐law, 8‐bit A‐law, offset‐binary 8‐bit integer,
    16/24/32‐bit integer, and 32/64‐bit IEEE floating‐point,
    data formats are supported.
AIFF sound file:
    8/16/24/32‐bit integer data formats are supported.
AIFF‐C sound file:
    8‐bit mu‐law, 8‐bit A‐law, 8/16/24/32‐bit integer, and
    32/64‐bit IEEE floating‐point data formats are
Headerless file:
    8‐bit mu‐law, 8‐bit A‐law, offset‐binary 8‐bit integer,
    8/16/24/32‐bit integer, 32/64‐bit floating‐point, and
    text data formats are supported.  A text format file has
    the data in character form, one value to a line.

     For the fixed point file data representations, input
values in the following ranges will be converted without
   data format       allowed values
  8‐bit mu‐law   ‐ [ ‐32636, +32636 ]
  8‐bit A‐law    ‐ [ ‐32768, +32768 ]
  8‐bit integer  ‐ [ ‐16384, ‐16383 ]
  16‐bit integer ‐ [ ‐32768, +32767 ]
  24‐bit integer ‐ [ ‐32768, +32768 )
  32‐bit integer ‐ [ ‐32768, +32768 )
For AU and WAVE files containing floating‐point data, values
are scaled by 1/32768 before being written to the file.  For


data values between [‐32768, +32768], the file data will lie
in the range [‐1, +1].  For headerless files with any data
format, the values are scaled by unity.

<‐  AFILE *AFopenWrite
    Audio file pointer for the audio file
 ‐> const char Fname[]
    Character string specifying the file name.  The file
    name "‐" means standard output.
 ‐> int Fformat
    Audio file format code, evaluated as the sum of a data
    format code and a file type,
      Fformat = Dformat + 256 * Ftype
    Dformat: data format
      FD_MULAW8  = 1,  mu‐law 8‐bit data
      FD_ALAW8   = 2,  A‐law 8‐bit data
      FD_UINT8   = 3,  offset‐binary 8‐bit integer data
      FD_INT8    = 4,  two’s‐complement 8‐bit integer data
      FD_INT16   = 5,  two’s‐complement 16‐bit integer data
      FD_INT24   = 6,  two’s‐complement 24‐bit integer data
      FD_INT32   = 7,  two’s‐complement 32‐bit integer data
      FD_FLOAT32 = 8,  32‐bit floating‐point data
      FD_FLOAT64 = 9,  64‐bit floating‐point data
      FD_TEXT    = 10,  text data
    Ftype: output file type
      FTW_AU        = 1,      AU audio file
      FTW_WAVE      = 2,      WAVE file (auto extensible format)
      FTW_WAVE_NOEX = 2 + 16, WAVE file (no extensible format)
      FTW_AIFF_C    = 3,      AIFF‐C sound file
      FTW_NH_EB     = 4 +  0, Headerless file (big‐endian byte order)
      FTW_NH_EL     = 4 + 16, Headerless file (little‐endian byte order)
      FTW_NH_NATIVE = 4 + 32, Headerless file (native byte order)
      FTW_NH_SWAP   = 4 + 48, Headerless file (byte‐swapped byte order)
      FTW_AIFF      = 5,      AIFF sound file
 ‐> long int Nchan
    Number of channels
 ‐> double Sfreq
    Sampling frequency
 ‐> FILE *fpinfo
    File pointer for printing audio file information.  If
    fpinfo is not NULL, information about the audio file is
    printed on the stream selected by fpinfo.

P. Kabal / Revision 1.74  2003/01/30

AFclose, AFwriteData, AFsetHinfo, libtsp