SoundbankResourcepublic abstract class SoundbankResource extends Object A SoundbankResource represents any audio resource stored
in a {@link Soundbank} . Common soundbank resources include:
- Instruments. An instrument may be specified in a variety of
ways. However, all soundbanks have some mechanism for defining
instruments. In doing so, they may reference other resources
stored in the soundbank. Each instrument has a
Patch
which specifies the MIDI program and bank by which it may be
referenced in MIDI messages. Instrument information may be
stored in {@link Instrument} objects.
- Audio samples. A sample typically is a sampled audio waveform
which contains a short sound recording whose duration is a fraction of
a second, or at most a few seconds. These audio samples may be
used by a
{@link Synthesizer} to synthesize sound in response to MIDI
commands, or extracted for use by an application.
(The terminology reflects musicians' use of the word "sample" to refer
collectively to a series of contiguous audio samples or frames, rather than
to a single, instantaneous sample.)
The data class for an audio sample will be an object
that encapsulates the audio sample data itself and information
about how to interpret it (the format of the audio data), such
as an {@link javax.sound.sampled.AudioInputStream} .
- Embedded sequences. A sound bank may contain built-in
song data stored in a data object such as a
{@link Sequence} .
Synthesizers that use wavetable synthesis or related
techniques play back the audio in a sample when
synthesizing notes, often when emulating the real-world instrument that
was originally recorded. However, there is not necessarily a one-to-one
correspondence between the Instruments and samples
in a Soundbank . A single Instrument can use
multiple SoundbankResources (typically for notes of dissimilar pitch or
brightness). Also, more than one Instrument can use the same
sample. |
Fields Summary |
---|
private final Soundbank | soundBankThe sound bank that contains the SoundbankResources | private final String | nameThe name of the SoundbankResource | private final Class | dataClassThe class used to represent the sample's data. |
Constructors Summary |
---|
protected SoundbankResource(Soundbank soundBank, String name, Class dataClass)Constructs a new SoundbankResource from the given sound bank
and wavetable index. (Setting the SoundbankResource's name,
sampled audio data, and instruments is a subclass responsibility.)
this.soundBank = soundBank;
this.name = name;
this.dataClass = dataClass;
|
Methods Summary |
---|
public abstract java.lang.Object | getData()Obtains the sampled audio that is stored in this SoundbankResource .
The type of object returned depends on the implementation of the
concrete class, and may be queried using getDataClass .
| public java.lang.Class | getDataClass()Obtains the class used by this sample to represent its data.
The object returned by getData will be of this
class. If this SoundbankResource object does not support
direct access to its data, returns null .
return dataClass;
| public java.lang.String | getName()Obtains the name of the resource. This should generally be a string
descriptive of the resource.
return name;
| public javax.sound.midi.Soundbank | getSoundbank()Obtains the sound bank that contains this SoundbankResource .
return soundBank;
|
|