A fully qualified waveform file name has the syntax:
[path]basename[.wav][$segment][#channel]
where only the basename of the file is required, but the name can
optionally contain an extension (.wav by default), a segment name up
to 6 characters in length indicating a waveform region that is
defined within the file (see edw (1) on how segments are defined), and
a channel number ranging from 0 to N-1 where N is the number of
channels of data represented in each record of the waveform file.
This syntax applies to all of the programs which have been written at ASEL to read or write either ASEL or RIFF format files. In the following examples, the play program is used for illustration. The play program is a simple application program which accepts a waveform filename on the command line and sends the waveform data to whatever hardware audio device is present. So the command
play sentence
would play the entire contents of a file called
sentence.wav. However, if the play program was invoked with
the command
play sentence$word1
only the region of sentence.wav labeled word1
would be played.
Similarly, if sentence.wav happened to contain stereo data,
the play program (which only plays mono signals) would still
work, but would play only the first (left by convention) channel. This
could be indicated explicitly by the command
play sentence#0
which causes only channel 0 to be read. Alternatively, the right
channel could be played with the command
play sentence#1
Channel and segment information can be specified at the same time as in
play sentence$word1#1
which would play only channel 1 of word1 in sentence.
One important note of caution. On some systems, notably Unix systems, the characters $ and or # may have special meaning to the command line interpreter or shell program. On such systems it is necessary to 'escape' the $ and # characters so that they are not interpreted by the system. For instance, on Unix systems, the $ character must always be escaped to allow it to pass through to the play program itself. Thus, on Unix one must enter the commands above as, for example,
play sentence\$word1#1
where the '\' character indicates that the $ is not to
be interpreted as a special character by the shell.
Special escape characters are not necessary for MS-DOS and Windows versions of this software.
Finally, it bears repeating that the segment and channel specification works with RIFF files like the standard .wav files in Windows, but uses some extensions to the RIFF standard that were developed at ASEL. These extensions comply with the RIFF standard so that segment information added to a RIFF file should not 'spoil' the file for any other software, but only software developed at ASEL is able to take advantage of the extensions to RIFF. A library of I/O and utility functions which supports ASEL and this extended RIFF format is available. The library supports C and Fortran compilers on several Unix platforms and on MS-DOS platforms (using Microsoft C and Fortran 77). See the Waveform I/O Library description for more details.