Search in sources :

Example 11 with Patch

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

the class AddInstrument method main.

public static void main(String[] args) throws Exception {
    SimpleSoundbank soundbank = new SimpleSoundbank();
    SimpleInstrument ins = new SimpleInstrument();
    ins.setPatch(new Patch(3, 7));
    soundbank.addInstrument(ins);
    assertEquals(soundbank.getInstruments().length, 1);
    assertEquals(soundbank.getInstruments()[0], ins);
}
Also used : Patch(javax.sound.midi.Patch)

Example 12 with Patch

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

the class TestCreateSoundbank method main.

public static void main(String[] args) throws Exception {
    Soundbank soundbank = EmergencySoundbank.createSoundbank();
    for (int i = 0; i < 128; i++) {
        Patch patch = new ModelPatch(0, i, false);
        ModelInstrument ins = (ModelInstrument) soundbank.getInstrument(patch);
        if (ins == null)
            throw new Exception("Instrument " + i + " is missing!");
        if (ins.getPerformers().length == 0)
            throw new Exception("Instrument " + i + " doesn't have any performers!");
    }
    Patch patch = new ModelPatch(0, 0, true);
    ModelInstrument ins = (ModelInstrument) soundbank.getInstrument(patch);
    if (ins == null)
        throw new Exception("Drumkit instrument is missing!");
    if (ins.getPerformers().length == 0)
        throw new Exception("Drumkit instrument doesn't have any performers!");
}
Also used : ModelPatch(com.sun.media.sound.ModelPatch) Soundbank(javax.sound.midi.Soundbank) EmergencySoundbank(com.sun.media.sound.EmergencySoundbank) ModelInstrument(com.sun.media.sound.ModelInstrument) Patch(javax.sound.midi.Patch) ModelPatch(com.sun.media.sound.ModelPatch)

Example 13 with Patch

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

the class NoteOverFlowTest2 method main.

public static void main(String[] args) throws Exception {
    // Create instance of the synthesizer with very low polyphony
    AudioSynthesizer synth = new SoftSynthesizer();
    AudioFormat format = new AudioFormat(44100, 16, 2, true, false);
    Map<String, Object> p = new HashMap<String, Object>();
    p.put("max polyphony", new Integer(5));
    AudioInputStream stream = synth.openStream(format, p);
    // Create instrument with too many regions (more than max polyphony)
    SF2Soundbank sf2 = new SF2Soundbank();
    SF2Sample sample = new SF2Sample(sf2);
    sample.setName("test sample");
    sample.setData(new byte[100]);
    sample.setSampleRate(44100);
    sample.setOriginalPitch(20);
    sf2.addResource(sample);
    SF2Layer layer = new SF2Layer(sf2);
    layer.setName("test layer");
    sf2.addResource(layer);
    for (int i = 0; i < 100; i++) {
        SF2LayerRegion region = new SF2LayerRegion();
        region.setSample(sample);
        layer.getRegions().add(region);
    }
    SF2Instrument ins = new SF2Instrument(sf2);
    ins.setPatch(new Patch(0, 0));
    ins.setName("test instrument");
    sf2.addInstrument(ins);
    SF2InstrumentRegion insregion = new SF2InstrumentRegion();
    insregion.setLayer(layer);
    ins.getRegions().add(insregion);
    // Load the test soundbank into the synthesizer
    synth.unloadAllInstruments(synth.getDefaultSoundbank());
    synth.loadAllInstruments(sf2);
    // Send out one midi on message
    MidiChannel ch1 = synth.getChannels()[0];
    ch1.programChange(0);
    ch1.noteOn(64, 64);
    // Read 1 sec from stream
    stream.skip(format.getFrameSize() * ((int) (format.getFrameRate() * 2)));
    // Close the synthesizer after use
    synth.close();
}
Also used : HashMap(java.util.HashMap) SF2Soundbank(com.sun.media.sound.SF2Soundbank) MidiChannel(javax.sound.midi.MidiChannel) SoftSynthesizer(com.sun.media.sound.SoftSynthesizer) SF2LayerRegion(com.sun.media.sound.SF2LayerRegion) SF2InstrumentRegion(com.sun.media.sound.SF2InstrumentRegion) SF2Sample(com.sun.media.sound.SF2Sample) AudioInputStream(javax.sound.sampled.AudioInputStream) SF2Layer(com.sun.media.sound.SF2Layer) AudioFormat(javax.sound.sampled.AudioFormat) Patch(javax.sound.midi.Patch) AudioSynthesizer(com.sun.media.sound.AudioSynthesizer) SF2Instrument(com.sun.media.sound.SF2Instrument)

Example 14 with Patch

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

the class LoadInstrument 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.loadInstrument(ins2);
        assertTrue(synth.getLoadedInstruments().length == 1);
    }
    synth.close();
}
Also used : Soundbank(javax.sound.midi.Soundbank) Patch(javax.sound.midi.Patch)

Example 15 with Patch

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

the class RemapInstrument 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) {
        Instrument ins3 = defsbk.getInstrument(new Patch(0, 3));
        Instrument ins10 = defsbk.getInstrument(new Patch(0, 10));
        assertTrue(synth.remapInstrument(ins3, ins10));
        Instrument[] loaded = synth.getLoadedInstruments();
        for (int i = 0; i < loaded.length; i++) {
            if (loaded[i].getPatch().getBank() == ins3.getPatch().getBank())
                if (loaded[i].getPatch().getProgram() == ins3.getPatch().getProgram()) {
                    assertEquals(loaded[i].getName(), ins10.getName());
                    break;
                }
        }
    }
    synth.close();
}
Also used : Soundbank(javax.sound.midi.Soundbank) 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