Package Summary  Overview Summary

class:Synthesizer [NONE]

  • All Superinterfaces:
    AutoCloseable, MidiDevice


    public interface Synthesizer
    extends MidiDevice
    
    A Synthesizer generates sound. This usually happens when one of the Synthesizer's MidiChannel objects receives a noteOn message, either directly or via the Synthesizer object. Many Synthesizers support Receivers, through which MIDI events can be delivered to the Synthesizer. In such cases, the Synthesizer typically responds by sending a corresponding message to the appropriate MidiChannel, or by processing the event itself if the event isn't one of the MIDI channel messages.

    The Synthesizer interface includes methods for loading and unloading instruments from soundbanks. An instrument is a specification for synthesizing a certain type of sound, whether that sound emulates a traditional instrument or is some kind of sound effect or other imaginary sound. A soundbank is a collection of instruments, organized by bank and program number (via the instrument's Patch object). Different Synthesizer classes might implement different sound-synthesis techniques, meaning that some instruments and not others might be compatible with a given synthesizer. Also, synthesizers may have a limited amount of memory for instruments, meaning that not every soundbank and instrument can be used by every synthesizer, even if the synthesis technique is compatible. To see whether the instruments from a certain soundbank can be played by a given synthesizer, invoke the isSoundbankSupported method of Synthesizer.

    "Loading" an instrument means that that instrument becomes available for synthesizing notes. The instrument is loaded into the bank and program location specified by its Patch object. Loading does not necessarily mean that subsequently played notes will immediately have the sound of this newly loaded instrument. For the instrument to play notes, one of the synthesizer's MidiChannel objects must receive (or have received) a program-change message that causes that particular instrument's bank and program number to be selected.

    See Also:
    MidiSystem.getSynthesizer(), Soundbank, Instrument, MidiChannel.programChange(int, int) , Receiver, Transmitter, MidiDevice

method:getMaxPolyphony() [NONE]

  • getMaxPolyphony

    int getMaxPolyphony​()
    Obtains the maximum number of notes that this synthesizer can sound simultaneously.
    Returns:
    the maximum number of simultaneous notes
    See Also:
    getVoiceStatus()

method:getLatency() [NONE]

  • getLatency

    long getLatency​()
    Obtains the processing latency incurred by this synthesizer, expressed in microseconds. This latency measures the worst-case delay between the time a MIDI message is delivered to the synthesizer and the time that the synthesizer actually produces the corresponding result.

    Although the latency is expressed in microseconds, a synthesizer's actual measured delay may vary over a wider range than this resolution suggests. For example, a synthesizer might have a worst-case delay of a few milliseconds or more.

    Returns:
    the worst-case delay, in microseconds

method:getChannels() [NONE]

  • getChannels

    MidiChannel[] getChannels​()
    Obtains the set of MIDI channels controlled by this synthesizer. Each non-null element in the returned array is a MidiChannel that receives the MIDI messages sent on that channel number.

    The MIDI 1.0 specification provides for 16 channels, so this method returns an array of at least 16 elements. However, if this synthesizer doesn't make use of all 16 channels, some of the elements of the array might be null, so you should check each element before using it.

    Returns:
    an array of the MidiChannel objects managed by this Synthesizer. Some of the array elements may be null.

method:getVoiceStatus() [NONE]

  • getVoiceStatus

    VoiceStatus[] getVoiceStatus​()
    Obtains the current status of the voices produced by this synthesizer. If this class of Synthesizer does not provide voice information, the returned array will always be of length 0. Otherwise, its length is always equal to the total number of voices, as returned by getMaxPolyphony(). (See the VoiceStatus class description for an explanation of synthesizer voices.)
    Returns:
    an array of VoiceStatus objects that supply information about the corresponding synthesizer voices
    See Also:
    getMaxPolyphony(), VoiceStatus

method:isSoundbankSupported(javax.sound.midi.Soundbank) [NONE]

method:loadInstrument(javax.sound.midi.Instrument) [NONE]

method:unloadInstrument(javax.sound.midi.Instrument) [NONE]

method:remapInstrument(javax.sound.midi.Instrument, javax.sound.midi.Instrument) [NONE]

method:getDefaultSoundbank() [NONE]

  • getDefaultSoundbank

    Soundbank getDefaultSoundbank​()
    Obtains the default soundbank for the synthesizer, if one exists. (Some synthesizers provide a default or built-in soundbank.) If a synthesizer doesn't have a default soundbank, instruments must be loaded explicitly from an external soundbank.
    Returns:
    default soundbank, or null if one does not exist
    See Also:
    isSoundbankSupported(javax.sound.midi.Soundbank)

method:getAvailableInstruments() [NONE]

  • getAvailableInstruments

    Instrument[] getAvailableInstruments​()
    Obtains a list of instruments that come with the synthesizer. These instruments might be built into the synthesizer, or they might be part of a default soundbank provided with the synthesizer, etc.

    Note that you don't use this method to find out which instruments are currently loaded onto the synthesizer; for that purpose, you use getLoadedInstruments(). Nor does the method indicate all the instruments that can be loaded onto the synthesizer; it only indicates the subset that come with the synthesizer. To learn whether another instrument can be loaded, you can invoke isSoundbankSupported(), and if the instrument's Soundbank is supported, you can try loading the instrument.

    Returns:
    list of available instruments. If the synthesizer has no instruments coming with it, an array of length 0 is returned.
    See Also:
    getLoadedInstruments(), isSoundbankSupported(Soundbank), loadInstrument(javax.sound.midi.Instrument)

method:getLoadedInstruments() [NONE]

method:loadAllInstruments(javax.sound.midi.Soundbank) [NONE]

method:unloadAllInstruments(javax.sound.midi.Soundbank) [NONE]

method:loadInstruments(javax.sound.midi.Soundbank, javax.sound.midi.Patch[]) [NONE]

method:unloadInstruments(javax.sound.midi.Soundbank, javax.sound.midi.Patch[]) [NONE]