NAME
audio_intro, libaudio.a - audio library functions
SYNOPSIS
#include <multimedia/libaudio.h>
DESCRIPTION
libaudio.a provides a preliminary interface to many of the
common operations necessary to access and manipulate audio
files and devices. By embodying the specifics of file for-
mats and device ioctl commands in library routines, programs
may be insulated, in part, from future changes to the inter-
face and data storage formats.
File Header
Audio files contain a header that has a magic number (iden-
tifying the file as an audio file) and fields that describe
the encoding format used to store the audio data. Immedi-
ately following the header is a variable-length information
field in which, for instance, ASCII annotation may be
stored.
The format of the audio file header is compatible with a
subset of the NeXT sound file header. Sun has adopted
NeXT's sound file header ideas to facilitate the transparent
sharing of audio files in a networked environment. (The
NeXT Nested and Indirect sound file types are not currently
supported.)
In order that audio files may be successfully shared amongst
multiple machine architectures, the header and data fields
are written using big-endian byte-ordering. Though this
means that byte-swapping may be necessary to read and write
some data encodings on little-endian machines such as the
Sun386i, this overhead is largely overwhelmed by all other
signal manipulation operations. The benefits of transparent
file access far outweigh the costs.
Routines to support the reading and writing of audio file
headers are documented in the audio_filehdr(3) manual page.
These routines convert between the file header format used
for file interchange and the in-core audio header format
used by most audio applications.
Audio Header
Audio data is described by an Audio_hdr structure that is
similar, but not identical, to the audio file header. The
audio header structure is described in the audio_hdr(3)
manual page. The audio_misc(3) manual page describes rou-
tines that perform some simple transformations based on the
contents of the audio header structure.
Audio Device Control
The audio(4) manual page describes the direct interface to
the audio i/o device (/dev/audio) and the audio control
pseudo-device (/dev/audioctl). For the most part, however,
programs may use the routines documented in the
audio_device(3) manual page to access and control the dev-
ice.
Audio Data Conversions
The SPARCstation audio device operates on data that has been
encoded in u-law format, a quasi-logarithmic compression.
Since most signal-processing algorithms perform arithmetic
on linearly encoded data, it is convenient to be able to
convert to and from a linear PCM representation. The
audio_ulaw2linear(3) manual page describes macros that will
perform these transformations.
SEE ALSO
audio_convert(3), audio_filehdr(3), audio_hdr(3),
audio_misc(3), audio_ulaw2linear(3), audio(4)
NOTES
NeXT is a trademark of NeXT, Inc.
FUTURE DIRECTIONS
Although access to audio file headers are partly concealed
in the file header routines, the data formats themselves are
not properly hidden. Routines to demultiplex interleaved
audio channels, and to transparently convert between data
encodings, should be provided.
Access to many of the audio device status and control fields
has been concealed in the audio device routines. As audio
server technology emerges, these interfaces may remain
stable while the underlying implementation changes. How-
ever, access to the data streams of the audio device should
be similarly concealed.
WARNINGS
The manual pages, header files, and object library associ-
ated with /usr/demo/SOUND/libaudio.a are furnished on an as
is basis as a preliminary interface to several useful audio
data-processing capabilities. A future release of the
operating system may redefine the syntax or semantics of
some of the functions described herein.
|
Закладки на сайте Проследить за страницей |
Created 1996-2025 by Maxim Chirkov Добавить, Поддержать, Вебмастеру |