sf2(4)

sf2, SoundFont, SoundFont2 - SoundFont Compatible Audio File Format

As shipped in IRIX 6.5.5. Unchanged since IRIX 6.5.

NAME
     sf2, SoundFont, SoundFont2 - SoundFont Compatible Audio File Format

SYNOPSIS
     #include <dmedia/audiofile.h>

DESCRIPTION
     The Audio File Library currently supports 13 of the commonly found audio
     file formats, i.e., is able to recognize, read, and write sample data and
     header information to and from files in these formats.  It is important
     not to confuse sample or audio data formats with file formats.  The
     former refers to the bit-wise organization of the sound samples in the
     file, i.e., whether the format is 8-bit integer or 16-bit unsigned, etc.
     Audio file format refers to the structure of the audio file header, the
     chunk of on-disk data which preceeds the samples and which provides
     information about the file to the audio program.  A single audio file
     format may support a large variety of sample formats.

     The SoundFont Compatible File Format (sf2) was developed by  E-mu
     Systems, Inc., for use on PC's. It consists of a complex RIFF header
     containing large amounts of information about the sound samples, plus an
     imbedded, contiguous block of binary data representing the sound samples.

DATA FORMAT SPECIFICATIONS
     Sample Formats:
          Two's complement integer only.

     Sample Widths:
          16 bit only.

     Byte Orders:
          Always littleendian.

     Channel Counts:
          1 channel only.

     Compression Formats:
          None.

FILE FORMAT SPECIFICATIONS
     SF2 file headers contain vast amounts of information.  The Audio File
     Library parses a small portion of this information for use as an
     instrument chunk.

     Instrument Configurations:
          SoundFont2 headers contain a multi-level architecture of Presets,
          Instruments, and Instrument Zones (a sample plus its articulation
          data).  This "Instrument" is not the same level of structure as the
          AF inst chunk;  an Instrument can contain any number of Instrument
          Zones, each of which is the approximate equivalent to an AF inst.
          Each audio sample may be used any number of times in different
          Instrument Zones.
          Currently a maximum of 1 allowed for writing, though any number may
          be found in a file opened for reading.  A single loop per inst is
          allowed.

          The Audio File Library parses each Instrument Zone as a separate
          inst chunk -- which often results in literally thousands of insts!
          Each one references a set of instrument parameters (see below) which
          provides a partial description of the MIDI articulation for that
          Instrument Zone.  In order to allow this possibly-vast number of
          insts to be grouped, an integer parameter for the parent Instrument
          or Preset is provided.

     Instparams associated with this inst:

          Standard Params:

          AF_INST_MIDI_BASENOTE
          AF_INST_NUMCENTS_DETUNE
          AF_INST_MIDI_LONOTE
          AF_INST_MIDI_HINOTE
          AF_INST_MIDI_LOVELOCITY
          AF_INST_MIDI_HIVELOCITY
          AF_INST_NUMDBS_GAIN

          SoundFont - specific Params:

          AF_INST_SAMP_STARTFRAME   Starting frame offset for sample

          AF_INST_SAMP_ENDFRAME     Ending frame for sample

          AF_INST_SAMP_MODE         Sample loop mode.  One of three values:
          -    AF_INST_LOOP_OFF         Loop not used ("one shot")
          -    AF_INST_LOOP_CONTINUOUS  Sample loops through release
          -    AF_INST_LOOP_SUSTAIN     Sample loops for sustain only ("sampled release")

          AF_INST_SAMP_RATE         Sample rate of sample referenced by inst

          AF_INST_TRACKID           Track ID for inst

          AF_INST_NAME              Name of sample referenced by inst

          AF_INST_PRESET_NAME       Name of preset containing the inst

          AF_INST_PRESETID          ID of preset containing the inst

          Currently, all the SoundFont - specific params are read-only See
          afSetInstParamLong(3dm) for more information about parameters.

     Markers:
          Unlike AIFF(3dm) and WAVE(3dm) files, there is no direct association
          between markers and loops.  However, for backwards compatibility, an
          application may choose to specify loop start and end points via the
          traditional AIFF-style method using mark id's (afSetLoopStart(3dm),
          etc.) or via the newer afSetLoopStartFrame(3dm) and related
          routines.  In both cases, only the loop information will be written
          out to the header because this format does not support markers.
          Using the first-listed method, two markers are allowed, one for the
          start location and one for the end point of the loop.

     When a file is opened for reading, the AF will generate a synthetic  pair
     of markers for each loop found in the file.  This is done to allow
     currently-existing applications to extract loop points via the old
     afGetLoopStart(3dm) mechanism.  It is important to remember that these
     markers are not actually present in the header or file.

     Miscellaneous Chunks:

               AF_MISC_COPY              copyright string

               AF_MISC_AUTH              author string

               AF_MISC_NAME              name string

               AF_MISC_COMMENT           text comment string

               AF_MISC_ICRD              creation date string

               AF_MISC_ISFT              software name string


SEE ALSO
     afInitFileFormat(3dm), afGetFileFormat(3dm), afIntro(3dm),
     afGetInstIDs(3dm), afGetInstParams(3dm)