javax.sound.midi

## Class Instrument

- java.lang.Object
- - javax.sound.midi.SoundbankResource
  - - javax.sound.midi.Instrument

-     public abstract class Instrument
      extends SoundbankResource

  An instrument is a sound-synthesis algorithm with certain parameter settings, usually designed to emulate a specific real-world musical instrument or to achieve a specific sort of sound effect. Instruments are typically stored in collections called soundbanks. Before the instrument can be used to play notes, it must first be loaded onto a synthesizer, and then it must be selected for use on one or more channels, via a program-change command. MIDI notes that are subsequently received on those channels will be played using the sound of the selected instrument.
  See Also:
    `Soundbank`, `Soundbank.getInstruments()`, `Patch`, `Synthesizer.loadInstrument(Instrument)`, `MidiChannel.programChange(int, int)`

- - ### Constructor Summary

    Constructors
    Modifier | Constructor and Description
    --- | ---
    `protected` | `Instrument(Soundbank soundbank, Patch patch, String name, Class<?> dataClass)` Constructs a new MIDI instrument from the specified `Patch`.

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `Patch` | `getPatch()` Obtains the `Patch` object that indicates the bank and program numbers where this instrument is to be stored in the synthesizer.

    - ### Methods inherited from class javax.sound.midi.SoundbankResource

      `getData, getDataClass, getName, getSoundbank`

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Constructor Detail

    - #### Instrument

          protected Instrument(Soundbank soundbank,
                    Patch patch,
                    String name,
                    Class<?> dataClass)

      Constructs a new MIDI instrument from the specified `Patch`. When a subsequent request is made to load the instrument, the sound bank will search its contents for this instrument's `Patch`, and the instrument will be loaded into the synthesizer at the bank and program location indicated by the `Patch` object.
      Parameters:
        `soundbank` - sound bank containing the instrument
        `patch` - the patch of this instrument
        `name` - the name of this instrument
        `dataClass` - the class used to represent the sample's data.
      See Also:
        `Synthesizer.loadInstrument(Instrument)`

  - ### Method Detail

    - #### getPatch

          public Patch getPatch()

      Obtains the `Patch` object that indicates the bank and program numbers where this instrument is to be stored in the synthesizer.
      Returns:
        this instrument's patch

Submit a bug or feature
For further API reference and developer documentation, see Java SE Documentation. That documentation contains more detailed, developer-targeted descriptions, with conceptual overviews, definitions of terms, workarounds, and working code examples.

Copyright © 1993, 2014, Oracle and/or its affiliates. All rights reserved.