Files
seta75D 2e8a93c394 Init
2021-10-11 18:20:23 -03:00

111 lines
4.5 KiB
Plaintext

README: 1.1 92/07/30
This directory contains the sources for the following audio demo applications
(manual pages for them are located in section 6: Games and Demos):
soundtool:
This is a prototype audio record/playback tool.
It demonstrates many of the features of the audio programming
interface. Since it is an XView application, it is written
to obey the constraints of the XView Notifier and to issue
only asynchronous i/o requests. Because it also attempts to
keep an oscilloscope display synchronized during play and record,
it is far more complex than most audio applications need to be.
However, it is a good demonstration of the real-time audio
capabilities of the SPARCstation.
Audio file headers, containing a magic number and encoding
information, have been introduced in this release. Audio data
recorded by directly reading /dev/audio will not contain
the proper audio file headers. Soundtool will issue a warning
when such files are loaded; the store operation will rewrite
the file with an audio file header. Alternatively, the
raw2audio program, described below, may be used to convert
files to the proper format.
gaintool:
This is a prototype audio control panel. The audio driver
enforces exclusive access to /dev/audio, in order to prevent
the arbitrary interleaving of multiple data streams. However,
the /dev/audioctl pseudo-device allows multiple processes to
query and, in some cases, alter the state of the audio device.
In particular, the following fields may be modified:
record gain
playback gain
sidetone gain (controls the feedback from the mic to the output)
output port (speaker vs. headphone jack)
pause/resume (may be set only if /dev/audio is currently open)
The audio control panel illustrates the ability to control various
aspects of the audio configuration outside of particular audio
applications. For instance, since play volume may be controlled
from the panel, it is not necessary for all audio applications to
provide an output volume control themselves.
The audio driver sends a SIGPOLL signal to processes that request
notification of audio state changes. In this way, soundtool
may be notified when gaintool alters the volume, and vice versa.
Gaintool also has a status panel (activated by pressing the
PROPS <L3> key or by pressing the MENU mouse button over the
gaintool panel) that displays complete status information for
the audio device. Normally, this information is updated only
when gaintool receives a SIGPOLL signal. Therefore, the
'samples' and 'active' indicators are not generally reliable.
However, if 'Continuous' is selected at the bottom of the panel,
the status is updated continuously.
play:
This is a simple command-oriented program to play audio files.
It does not require that the window system be running, although
parameters changed by the gaintool panel will affect its behavior.
record:
This is a simple command-oriented program to record audio files.
It does not require that the window system be running, although
parameters changed by the gaintool panel will affect its behavior.
raw2audio:
This program reads raw audio data and rewrites it with an
audio file header. It is intended to aid in converting raw
audio files, such as those imported from other systems,
to the SunOS audio file format. The -o option allows
you to convert the format of audio files that contain other
types of audio header information.
As a special bonus, the shell script 'cuckoo.clock' is included for fun.
The command 'crontab -e' may be used to add the following line to your crontab:
0,30 * * * * /usr/demo/SOUND/cuckoo.clock >/dev/null 2>&1
Some sample sound files are located in the 'sounds' subdirectory.
sample.au contains guidelines in setting the recording gain level.
The other files include sample sound effects and telephone touchtones
and control tones.
A preliminary audio programming interface library, libaudio.a, is also
provided. Manual pages for the functions in libaudio.a may be found
in the 'man3' directory. Header files for libaudio.a are in the 'multimedia'
directory.
Executing 'make install' in this directory (requires super-user access)
will install the following files:
Files Installed directory
-------------------- -----------------------------
libaudio.a /usr/lib
llib-llibaudio.ln /usr/lib/lint
multimedia/* /usr/include/multimedia/*
man3/* /usr/share/man/man3/*
play /usr/bin
record /usr/bin
raw2audio /usr/bin
soundtool /usr/bin
gaintool /usr/bin