spessasynth_core documentation
    Preparing search index...

    Interface MIDIPatch

    SpessaSynth 4.0 brings the full bank LSB support in the API.

    The system now operates on MIDI Patches - a way of selecting MIDI presets using 4 properties, compatible with GM, GS, XG and GM2. The existing MIDI files will continue to work as the preset selection system has been fine-tuned for various types of MIDI files.

    interface MIDIPatch {
        bankLSB: number;
        bankMSB: number;
        isGMGSDrum: boolean;
        program: number;
    }

    Hierarchy (View Summary)

    Index
    bankLSB: number

    Bank LSB (CC#32) of this patch.

    This is mostly used in XG and GM2 for selecting variations of instruments, much like MSB in GS.

    bankMSB: number

    Bank MSB (CC#0) of this patch.

    It is used for sound variation in GS, and for channel type in XG and GM2. This means that with bank MSB of 127 for example, a channel in XG mode will turn into a drum channel.

    isGMGSDrum: boolean

    If the preset is marked as GM/GS drum preset.

    This flag is exclusive to GM and GS systems. These don't use bank MSB as a drum flag. GM has channel 9 hardcoded as drums, and GS has a system exclusive for setting them. This allows XG and GS drums to coexist in a single sound bank and can be thought of as bank 128 in SF2.

    program: number

    The MIDI program number.