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;
}
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;
}
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;
}
Aggregations