Search in sources :

Example 26 with Patch

use of javax.sound.midi.Patch in project jdk8u_jdk by JetBrains.

the class ModelInstrumentComparator method compare.

public int compare(Instrument arg0, Instrument arg1) {
    Patch p0 = arg0.getPatch();
    Patch p1 = arg1.getPatch();
    int a = p0.getBank() * 128 + p0.getProgram();
    int b = p1.getBank() * 128 + p1.getProgram();
    if (p0 instanceof ModelPatch) {
        a += ((ModelPatch) p0).isPercussion() ? 2097152 : 0;
    }
    if (p1 instanceof ModelPatch) {
        b += ((ModelPatch) p1).isPercussion() ? 2097152 : 0;
    }
    return a - b;
}
Also used : Patch(javax.sound.midi.Patch)

Example 27 with Patch

use of javax.sound.midi.Patch in project jdk8u_jdk by JetBrains.

the class ModelAbstractOscillator method getInstrument.

public Instrument getInstrument(Patch patch) {
    Instrument ins = getInstrument();
    Patch p = ins.getPatch();
    if (p.getBank() != patch.getBank())
        return null;
    if (p.getProgram() != patch.getProgram())
        return null;
    if (p instanceof ModelPatch && patch instanceof ModelPatch) {
        if (((ModelPatch) p).isPercussion() != ((ModelPatch) patch).isPercussion()) {
            return null;
        }
    }
    return ins;
}
Also used : Instrument(javax.sound.midi.Instrument) Patch(javax.sound.midi.Patch)

Example 28 with Patch

use of javax.sound.midi.Patch in project jdk8u_jdk by JetBrains.

the class SF2Soundbank method getInstrument.

public Instrument getInstrument(Patch patch) {
    int program = patch.getProgram();
    int bank = patch.getBank();
    boolean percussion = false;
    if (patch instanceof ModelPatch)
        percussion = ((ModelPatch) patch).isPercussion();
    for (Instrument instrument : instruments) {
        Patch patch2 = instrument.getPatch();
        int program2 = patch2.getProgram();
        int bank2 = patch2.getBank();
        if (program == program2 && bank == bank2) {
            boolean percussion2 = false;
            if (patch2 instanceof ModelPatch)
                percussion2 = ((ModelPatch) patch2).isPercussion();
            if (percussion == percussion2)
                return instrument;
        }
    }
    return null;
}
Also used : Instrument(javax.sound.midi.Instrument) Patch(javax.sound.midi.Patch)

Aggregations

Patch (javax.sound.midi.Patch)28 Soundbank (javax.sound.midi.Soundbank)12 Instrument (javax.sound.midi.Instrument)7 SF2SoundbankReader (com.sun.media.sound.SF2SoundbankReader)4 File (java.io.File)4 BufferedInputStream (java.io.BufferedInputStream)3 FileInputStream (java.io.FileInputStream)2 AudioSynthesizer (com.sun.media.sound.AudioSynthesizer)1 EmergencySoundbank (com.sun.media.sound.EmergencySoundbank)1 ModelInstrument (com.sun.media.sound.ModelInstrument)1 ModelPatch (com.sun.media.sound.ModelPatch)1 SF2Instrument (com.sun.media.sound.SF2Instrument)1 SF2InstrumentRegion (com.sun.media.sound.SF2InstrumentRegion)1 SF2Layer (com.sun.media.sound.SF2Layer)1 SF2LayerRegion (com.sun.media.sound.SF2LayerRegion)1 SF2Sample (com.sun.media.sound.SF2Sample)1 SF2Soundbank (com.sun.media.sound.SF2Soundbank)1 SoftSynthesizer (com.sun.media.sound.SoftSynthesizer)1 InputStream (java.io.InputStream)1 URL (java.net.URL)1