use of javax.sound.midi.Patch in project jdk8u_jdk by JetBrains.
the class LoadAllInstruments method main.
public static void main(String[] args) throws Exception {
AudioSynthesizer synth = new SoftSynthesizer();
synth.openStream(null, null);
Soundbank defsbk = synth.getDefaultSoundbank();
if (defsbk != null) {
synth.unloadAllInstruments(defsbk);
SimpleSoundbank sbk = new SimpleSoundbank();
SimpleInstrument ins = new SimpleInstrument();
ins.setPatch(new Patch(0, 1));
sbk.addInstrument(ins);
SimpleInstrument ins2 = new SimpleInstrument();
ins2.setPatch(new Patch(0, 2));
sbk.addInstrument(ins2);
synth.loadAllInstruments(sbk);
assertTrue(synth.getLoadedInstruments().length == 2);
}
synth.close();
}
use of javax.sound.midi.Patch in project jdk8u_jdk by JetBrains.
the class LoadInstruments method main.
public static void main(String[] args) throws Exception {
AudioSynthesizer synth = new SoftSynthesizer();
synth.openStream(null, null);
Soundbank defsbk = synth.getDefaultSoundbank();
if (defsbk != null) {
synth.unloadAllInstruments(defsbk);
SimpleSoundbank sbk = new SimpleSoundbank();
SimpleInstrument ins = new SimpleInstrument();
ins.setPatch(new Patch(0, 1));
sbk.addInstrument(ins);
SimpleInstrument ins2 = new SimpleInstrument();
ins2.setPatch(new Patch(0, 2));
sbk.addInstrument(ins2);
synth.loadInstruments(sbk, new Patch[] { ins2.getPatch() });
assertTrue(synth.getLoadedInstruments().length == 1);
}
synth.close();
}
use of javax.sound.midi.Patch in project jdk8u_jdk by JetBrains.
the class NewSoftTuningPatchByteArray method main.
public static void main(String[] args) throws Exception {
// RealTime: Scale/Octave tuning in 1-byte format
int[] msg = { 0xf0, 0x7f, 0x7f, 0x08, 0x08, 0x03, 0x7f, 0x7f, 5, 10, 15, 20, 25, 30, 35, 40, 45, 50, 51, 52, 0xf7 };
int[] oct = { 5, 10, 15, 20, 25, 30, 35, 40, 45, 50, 51, 52 };
byte[] bmsg = new byte[msg.length];
for (int i = 0; i < bmsg.length; i++) bmsg[i] = (byte) msg[i];
SoftTuning tuning = new SoftTuning(new Patch(8, 32), bmsg);
double[] tunings = tuning.getTuning();
for (int i = 0; i < tunings.length; i++) assertTrue(Math.abs(tunings[i] - (i * 100 + (oct[i % 12] - 64))) < 0.00001);
assertEquals(tuning.getPatch().getProgram(), 32);
assertEquals(tuning.getPatch().getBank(), 8);
}
use of javax.sound.midi.Patch in project jdk8u_jdk by JetBrains.
the class SimpleSoundbank 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;
}
use of javax.sound.midi.Patch in project jdk8u_jdk by JetBrains.
the class EmergencySoundbank method createSoundbank.
public static SF2Soundbank createSoundbank() throws Exception {
SF2Soundbank sf2 = new SF2Soundbank();
sf2.setName("Emergency GM sound set");
sf2.setVendor("Generated");
sf2.setDescription("Emergency generated soundbank");
/*
* percussion instruments
*/
SF2Layer bass_drum = new_bass_drum(sf2);
SF2Layer snare_drum = new_snare_drum(sf2);
SF2Layer tom = new_tom(sf2);
SF2Layer open_hihat = new_open_hihat(sf2);
SF2Layer closed_hihat = new_closed_hihat(sf2);
SF2Layer crash_cymbal = new_crash_cymbal(sf2);
SF2Layer side_stick = new_side_stick(sf2);
SF2Layer[] drums = new SF2Layer[128];
drums[35] = bass_drum;
drums[36] = bass_drum;
drums[38] = snare_drum;
drums[40] = snare_drum;
drums[41] = tom;
drums[43] = tom;
drums[45] = tom;
drums[47] = tom;
drums[48] = tom;
drums[50] = tom;
drums[42] = closed_hihat;
drums[44] = closed_hihat;
drums[46] = open_hihat;
drums[49] = crash_cymbal;
drums[51] = crash_cymbal;
drums[52] = crash_cymbal;
drums[55] = crash_cymbal;
drums[57] = crash_cymbal;
drums[59] = crash_cymbal;
// Use side_stick for missing drums:
drums[37] = side_stick;
drums[39] = side_stick;
drums[53] = side_stick;
drums[54] = side_stick;
drums[56] = side_stick;
drums[58] = side_stick;
drums[69] = side_stick;
drums[70] = side_stick;
drums[75] = side_stick;
drums[60] = side_stick;
drums[61] = side_stick;
drums[62] = side_stick;
drums[63] = side_stick;
drums[64] = side_stick;
drums[65] = side_stick;
drums[66] = side_stick;
drums[67] = side_stick;
drums[68] = side_stick;
drums[71] = side_stick;
drums[72] = side_stick;
drums[73] = side_stick;
drums[74] = side_stick;
drums[76] = side_stick;
drums[77] = side_stick;
drums[78] = side_stick;
drums[79] = side_stick;
drums[80] = side_stick;
drums[81] = side_stick;
SF2Instrument drum_instrument = new SF2Instrument(sf2);
drum_instrument.setName("Standard Kit");
drum_instrument.setPatch(new ModelPatch(0, 0, true));
sf2.addInstrument(drum_instrument);
for (int i = 0; i < drums.length; i++) {
if (drums[i] != null) {
SF2InstrumentRegion region = new SF2InstrumentRegion();
region.setLayer(drums[i]);
region.putBytes(SF2InstrumentRegion.GENERATOR_KEYRANGE, new byte[] { (byte) i, (byte) i });
drum_instrument.getRegions().add(region);
}
}
/*
* melodic instruments
*/
SF2Layer gpiano = new_gpiano(sf2);
SF2Layer gpiano2 = new_gpiano2(sf2);
SF2Layer gpiano_hammer = new_piano_hammer(sf2);
SF2Layer piano1 = new_piano1(sf2);
SF2Layer epiano1 = new_epiano1(sf2);
SF2Layer epiano2 = new_epiano2(sf2);
SF2Layer guitar = new_guitar1(sf2);
SF2Layer guitar_pick = new_guitar_pick(sf2);
SF2Layer guitar_dist = new_guitar_dist(sf2);
SF2Layer bass1 = new_bass1(sf2);
SF2Layer bass2 = new_bass2(sf2);
SF2Layer synthbass = new_synthbass(sf2);
SF2Layer string2 = new_string2(sf2);
SF2Layer orchhit = new_orchhit(sf2);
SF2Layer choir = new_choir(sf2);
SF2Layer solostring = new_solostring(sf2);
SF2Layer organ = new_organ(sf2);
SF2Layer ch_organ = new_ch_organ(sf2);
SF2Layer bell = new_bell(sf2);
SF2Layer flute = new_flute(sf2);
SF2Layer timpani = new_timpani(sf2);
SF2Layer melodic_toms = new_melodic_toms(sf2);
SF2Layer trumpet = new_trumpet(sf2);
SF2Layer trombone = new_trombone(sf2);
SF2Layer brass_section = new_brass_section(sf2);
SF2Layer horn = new_horn(sf2);
SF2Layer sax = new_sax(sf2);
SF2Layer oboe = new_oboe(sf2);
SF2Layer bassoon = new_bassoon(sf2);
SF2Layer clarinet = new_clarinet(sf2);
SF2Layer reverse_cymbal = new_reverse_cymbal(sf2);
SF2Layer defaultsound = piano1;
newInstrument(sf2, "Piano", new Patch(0, 0), gpiano, gpiano_hammer);
newInstrument(sf2, "Piano", new Patch(0, 1), gpiano2, gpiano_hammer);
newInstrument(sf2, "Piano", new Patch(0, 2), piano1);
{
SF2Instrument ins = newInstrument(sf2, "Honky-tonk Piano", new Patch(0, 3), piano1, piano1);
SF2InstrumentRegion region = ins.getRegions().get(0);
region.putInteger(SF2Region.GENERATOR_INITIALFILTERFC, 80);
region.putInteger(SF2Region.GENERATOR_FINETUNE, 30);
region = ins.getRegions().get(1);
region.putInteger(SF2Region.GENERATOR_INITIALFILTERFC, 30);
}
newInstrument(sf2, "Rhodes", new Patch(0, 4), epiano2);
newInstrument(sf2, "Rhodes", new Patch(0, 5), epiano2);
newInstrument(sf2, "Clavinet", new Patch(0, 6), epiano1);
newInstrument(sf2, "Clavinet", new Patch(0, 7), epiano1);
newInstrument(sf2, "Rhodes", new Patch(0, 8), epiano2);
newInstrument(sf2, "Bell", new Patch(0, 9), bell);
newInstrument(sf2, "Bell", new Patch(0, 10), bell);
newInstrument(sf2, "Vibraphone", new Patch(0, 11), bell);
newInstrument(sf2, "Marimba", new Patch(0, 12), bell);
newInstrument(sf2, "Marimba", new Patch(0, 13), bell);
newInstrument(sf2, "Bell", new Patch(0, 14), bell);
newInstrument(sf2, "Rock Organ", new Patch(0, 15), organ);
newInstrument(sf2, "Rock Organ", new Patch(0, 16), organ);
newInstrument(sf2, "Perc Organ", new Patch(0, 17), organ);
newInstrument(sf2, "Rock Organ", new Patch(0, 18), organ);
newInstrument(sf2, "Church Organ", new Patch(0, 19), ch_organ);
newInstrument(sf2, "Accordion", new Patch(0, 20), organ);
newInstrument(sf2, "Accordion", new Patch(0, 21), organ);
newInstrument(sf2, "Accordion", new Patch(0, 22), organ);
newInstrument(sf2, "Accordion", new Patch(0, 23), organ);
newInstrument(sf2, "Guitar", new Patch(0, 24), guitar, guitar_pick);
newInstrument(sf2, "Guitar", new Patch(0, 25), guitar, guitar_pick);
newInstrument(sf2, "Guitar", new Patch(0, 26), guitar, guitar_pick);
newInstrument(sf2, "Guitar", new Patch(0, 27), guitar, guitar_pick);
newInstrument(sf2, "Guitar", new Patch(0, 28), guitar, guitar_pick);
newInstrument(sf2, "Distorted Guitar", new Patch(0, 29), guitar_dist);
newInstrument(sf2, "Distorted Guitar", new Patch(0, 30), guitar_dist);
newInstrument(sf2, "Guitar", new Patch(0, 31), guitar, guitar_pick);
newInstrument(sf2, "Finger Bass", new Patch(0, 32), bass1);
newInstrument(sf2, "Finger Bass", new Patch(0, 33), bass1);
newInstrument(sf2, "Finger Bass", new Patch(0, 34), bass1);
newInstrument(sf2, "Frettless Bass", new Patch(0, 35), bass2);
newInstrument(sf2, "Frettless Bass", new Patch(0, 36), bass2);
newInstrument(sf2, "Frettless Bass", new Patch(0, 37), bass2);
newInstrument(sf2, "Synth Bass1", new Patch(0, 38), synthbass);
newInstrument(sf2, "Synth Bass2", new Patch(0, 39), synthbass);
newInstrument(sf2, "Solo String", new Patch(0, 40), string2, solostring);
newInstrument(sf2, "Solo String", new Patch(0, 41), string2, solostring);
newInstrument(sf2, "Solo String", new Patch(0, 42), string2, solostring);
newInstrument(sf2, "Solo String", new Patch(0, 43), string2, solostring);
newInstrument(sf2, "Solo String", new Patch(0, 44), string2, solostring);
newInstrument(sf2, "Def", new Patch(0, 45), defaultsound);
newInstrument(sf2, "Harp", new Patch(0, 46), bell);
newInstrument(sf2, "Timpani", new Patch(0, 47), timpani);
newInstrument(sf2, "Strings", new Patch(0, 48), string2);
SF2Instrument slow_strings = newInstrument(sf2, "Slow Strings", new Patch(0, 49), string2);
SF2InstrumentRegion region = slow_strings.getRegions().get(0);
region.putInteger(SF2Region.GENERATOR_ATTACKVOLENV, 2500);
region.putInteger(SF2Region.GENERATOR_RELEASEVOLENV, 2000);
newInstrument(sf2, "Synth Strings", new Patch(0, 50), string2);
newInstrument(sf2, "Synth Strings", new Patch(0, 51), string2);
newInstrument(sf2, "Choir", new Patch(0, 52), choir);
newInstrument(sf2, "Choir", new Patch(0, 53), choir);
newInstrument(sf2, "Choir", new Patch(0, 54), choir);
{
SF2Instrument ins = newInstrument(sf2, "Orch Hit", new Patch(0, 55), orchhit, orchhit, timpani);
region = ins.getRegions().get(0);
region.putInteger(SF2Region.GENERATOR_COARSETUNE, -12);
region.putInteger(SF2Region.GENERATOR_INITIALATTENUATION, -100);
}
newInstrument(sf2, "Trumpet", new Patch(0, 56), trumpet);
newInstrument(sf2, "Trombone", new Patch(0, 57), trombone);
newInstrument(sf2, "Trombone", new Patch(0, 58), trombone);
newInstrument(sf2, "Trumpet", new Patch(0, 59), trumpet);
newInstrument(sf2, "Horn", new Patch(0, 60), horn);
newInstrument(sf2, "Brass Section", new Patch(0, 61), brass_section);
newInstrument(sf2, "Brass Section", new Patch(0, 62), brass_section);
newInstrument(sf2, "Brass Section", new Patch(0, 63), brass_section);
newInstrument(sf2, "Sax", new Patch(0, 64), sax);
newInstrument(sf2, "Sax", new Patch(0, 65), sax);
newInstrument(sf2, "Sax", new Patch(0, 66), sax);
newInstrument(sf2, "Sax", new Patch(0, 67), sax);
newInstrument(sf2, "Oboe", new Patch(0, 68), oboe);
newInstrument(sf2, "Horn", new Patch(0, 69), horn);
newInstrument(sf2, "Bassoon", new Patch(0, 70), bassoon);
newInstrument(sf2, "Clarinet", new Patch(0, 71), clarinet);
newInstrument(sf2, "Flute", new Patch(0, 72), flute);
newInstrument(sf2, "Flute", new Patch(0, 73), flute);
newInstrument(sf2, "Flute", new Patch(0, 74), flute);
newInstrument(sf2, "Flute", new Patch(0, 75), flute);
newInstrument(sf2, "Flute", new Patch(0, 76), flute);
newInstrument(sf2, "Flute", new Patch(0, 77), flute);
newInstrument(sf2, "Flute", new Patch(0, 78), flute);
newInstrument(sf2, "Flute", new Patch(0, 79), flute);
newInstrument(sf2, "Organ", new Patch(0, 80), organ);
newInstrument(sf2, "Organ", new Patch(0, 81), organ);
newInstrument(sf2, "Flute", new Patch(0, 82), flute);
newInstrument(sf2, "Organ", new Patch(0, 83), organ);
newInstrument(sf2, "Organ", new Patch(0, 84), organ);
newInstrument(sf2, "Choir", new Patch(0, 85), choir);
newInstrument(sf2, "Organ", new Patch(0, 86), organ);
newInstrument(sf2, "Organ", new Patch(0, 87), organ);
newInstrument(sf2, "Synth Strings", new Patch(0, 88), string2);
newInstrument(sf2, "Organ", new Patch(0, 89), organ);
newInstrument(sf2, "Def", new Patch(0, 90), defaultsound);
newInstrument(sf2, "Choir", new Patch(0, 91), choir);
newInstrument(sf2, "Organ", new Patch(0, 92), organ);
newInstrument(sf2, "Organ", new Patch(0, 93), organ);
newInstrument(sf2, "Organ", new Patch(0, 94), organ);
newInstrument(sf2, "Organ", new Patch(0, 95), organ);
newInstrument(sf2, "Organ", new Patch(0, 96), organ);
newInstrument(sf2, "Organ", new Patch(0, 97), organ);
newInstrument(sf2, "Bell", new Patch(0, 98), bell);
newInstrument(sf2, "Organ", new Patch(0, 99), organ);
newInstrument(sf2, "Organ", new Patch(0, 100), organ);
newInstrument(sf2, "Organ", new Patch(0, 101), organ);
newInstrument(sf2, "Def", new Patch(0, 102), defaultsound);
newInstrument(sf2, "Synth Strings", new Patch(0, 103), string2);
newInstrument(sf2, "Def", new Patch(0, 104), defaultsound);
newInstrument(sf2, "Def", new Patch(0, 105), defaultsound);
newInstrument(sf2, "Def", new Patch(0, 106), defaultsound);
newInstrument(sf2, "Def", new Patch(0, 107), defaultsound);
newInstrument(sf2, "Marimba", new Patch(0, 108), bell);
newInstrument(sf2, "Sax", new Patch(0, 109), sax);
newInstrument(sf2, "Solo String", new Patch(0, 110), string2, solostring);
newInstrument(sf2, "Oboe", new Patch(0, 111), oboe);
newInstrument(sf2, "Bell", new Patch(0, 112), bell);
newInstrument(sf2, "Melodic Toms", new Patch(0, 113), melodic_toms);
newInstrument(sf2, "Marimba", new Patch(0, 114), bell);
newInstrument(sf2, "Melodic Toms", new Patch(0, 115), melodic_toms);
newInstrument(sf2, "Melodic Toms", new Patch(0, 116), melodic_toms);
newInstrument(sf2, "Melodic Toms", new Patch(0, 117), melodic_toms);
newInstrument(sf2, "Reverse Cymbal", new Patch(0, 118), reverse_cymbal);
newInstrument(sf2, "Reverse Cymbal", new Patch(0, 119), reverse_cymbal);
newInstrument(sf2, "Guitar", new Patch(0, 120), guitar);
newInstrument(sf2, "Def", new Patch(0, 121), defaultsound);
{
SF2Instrument ins = newInstrument(sf2, "Seashore/Reverse Cymbal", new Patch(0, 122), reverse_cymbal);
region = ins.getRegions().get(0);
region.putInteger(SF2Region.GENERATOR_SUSTAINVOLENV, 1000);
region.putInteger(SF2Region.GENERATOR_DECAYVOLENV, 18500);
region.putInteger(SF2Region.GENERATOR_RELEASEVOLENV, 4500);
region.putInteger(SF2Region.GENERATOR_INITIALFILTERFC, -4500);
}
{
SF2Instrument ins = newInstrument(sf2, "Bird/Flute", new Patch(0, 123), flute);
region = ins.getRegions().get(0);
region.putInteger(SF2Region.GENERATOR_COARSETUNE, 24);
region.putInteger(SF2Region.GENERATOR_DECAYVOLENV, -3000);
region.putInteger(SF2Region.GENERATOR_SUSTAINVOLENV, 1000);
}
newInstrument(sf2, "Def", new Patch(0, 124), side_stick);
{
SF2Instrument ins = newInstrument(sf2, "Seashore/Reverse Cymbal", new Patch(0, 125), reverse_cymbal);
region = ins.getRegions().get(0);
region.putInteger(SF2Region.GENERATOR_SUSTAINVOLENV, 1000);
region.putInteger(SF2Region.GENERATOR_DECAYVOLENV, 18500);
region.putInteger(SF2Region.GENERATOR_RELEASEVOLENV, 4500);
region.putInteger(SF2Region.GENERATOR_INITIALFILTERFC, -4500);
}
newInstrument(sf2, "Applause/crash_cymbal", new Patch(0, 126), crash_cymbal);
newInstrument(sf2, "Gunshot/side_stick", new Patch(0, 127), side_stick);
for (SF2Instrument instrument : sf2.getInstruments()) {
Patch patch = instrument.getPatch();
if (patch instanceof ModelPatch) {
if (((ModelPatch) patch).isPercussion())
continue;
}
instrument.setName(general_midi_instruments[patch.getProgram()]);
}
return sf2;
}
Aggregations