Patch (Java SE 12 & JDK 12 )
Keywords: javax.sound.midi.Patch class

Module java.desktop
Package javax.sound.midi

## Class Patch

- java.lang.Object
- - javax.sound.midi.Patch

-     public class Patch
      extends Object

  A `Patch` object represents a location, on a MIDI synthesizer, into which a single instrument is stored (loaded). Every `Instrument` object has its own `Patch` object that specifies the memory location into which that instrument should be loaded. The location is specified abstractly by a bank index and a program number (not by any scheme that directly refers to a specific address or offset in RAM). This is a hierarchical indexing scheme: MIDI provides for up to 16384 banks, each of which contains up to 128 program locations. For example, a minimal sort of synthesizer might have only one bank of instruments, and only 32 instruments (programs) in that bank.

  To select what instrument should play the notes on a particular MIDI channel, two kinds of MIDI message are used that specify a patch location: a bank-select command, and a program-change channel command. The Java Sound equivalent is the `programChange(int, int)` method of `MidiChannel`.

  See Also:
    `Instrument`, `Instrument.getPatch()`, `MidiChannel.programChange(int, int)`, `Synthesizer.loadInstruments(Soundbank, Patch[])`, `Soundbank`, `Sequence.getPatchList()`

- - ### Constructor Summary

    Constructors
    Constructor | Description
    --- | ---
    `Patch​(int bank, int program)` | Constructs a new patch object from the specified bank and program numbers.

  - ### Method Summary

    Modifier and Type | Method | Description
    --- | --- | ---
    `int` | `getBank()` | Returns the number of the bank that contains the instrument whose location this `Patch` specifies.
    `int` | `getProgram()` | Returns the index, within a bank, of the instrument whose location this `Patch` specifies.

    - ### Methods declared in class java.lang.Object

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

- - ### Constructor Detail

    - #### Patch

          public Patch​(int bank,
                       int program)

      Constructs a new patch object from the specified bank and program numbers.
      Parameters:
        `bank` - the bank index (in the range from 0 to 16383)
        `program` - the program index (in the range from 0 to 127)

  - ### Method Detail

    - #### getBank

          public int getBank()

      Returns the number of the bank that contains the instrument whose location this `Patch` specifies.
      Returns:
        the bank number, whose range is from 0 to 16383
      See Also:
        `MidiChannel.programChange(int, int)`

    - #### getProgram

          public int getProgram()

      Returns the index, within a bank, of the instrument whose location this `Patch` specifies.
      Returns:
        the instrument's program number, whose range is from 0 to 127
      See Also:
        `MidiChannel.getProgram()`, `MidiChannel.programChange(int)`, `MidiChannel.programChange(int, int)`