Search in sources :

Example 1 with SF2Layer

use of com.sun.media.sound.SF2Layer in project jdk8u_jdk by JetBrains.

the class TestPreciseTimestampRendering method createTestSoundbank.

public static SF2Soundbank createTestSoundbank() {
    // Create impulse instrument
    // used to measure timing of note-on playback
    SF2Soundbank soundbank = new SF2Soundbank();
    float[] data = new float[100];
    Arrays.fill(data, 0);
    data[0] = 1.0f;
    byte[] bdata = new byte[data.length * format.getFrameSize()];
    AudioFloatConverter.getConverter(format).toByteArray(data, bdata);
    SF2Sample sample = new SF2Sample(soundbank);
    sample.setName("Test Sample");
    sample.setData(bdata);
    sample.setSampleRate((long) format.getSampleRate());
    sample.setOriginalPitch(69);
    soundbank.addResource(sample);
    SF2Layer layer = new SF2Layer(soundbank);
    layer.setName("Test Layer");
    soundbank.addResource(layer);
    SF2LayerRegion region = new SF2LayerRegion();
    region.setSample(sample);
    layer.getRegions().add(region);
    SF2Instrument ins = new SF2Instrument(soundbank);
    ins.setName("Test Instrument");
    soundbank.addInstrument(ins);
    SF2InstrumentRegion insregion = new SF2InstrumentRegion();
    insregion.setLayer(layer);
    ins.getRegions().add(insregion);
    return soundbank;
}
Also used : SF2Soundbank(com.sun.media.sound.SF2Soundbank) SF2Layer(com.sun.media.sound.SF2Layer) SF2LayerRegion(com.sun.media.sound.SF2LayerRegion) SF2InstrumentRegion(com.sun.media.sound.SF2InstrumentRegion) SF2Instrument(com.sun.media.sound.SF2Instrument) SF2Sample(com.sun.media.sound.SF2Sample)

Example 2 with SF2Layer

use of com.sun.media.sound.SF2Layer 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)

Aggregations

SF2Instrument (com.sun.media.sound.SF2Instrument)2 SF2InstrumentRegion (com.sun.media.sound.SF2InstrumentRegion)2 SF2Layer (com.sun.media.sound.SF2Layer)2 SF2LayerRegion (com.sun.media.sound.SF2LayerRegion)2 SF2Sample (com.sun.media.sound.SF2Sample)2 SF2Soundbank (com.sun.media.sound.SF2Soundbank)2 AudioSynthesizer (com.sun.media.sound.AudioSynthesizer)1 SoftSynthesizer (com.sun.media.sound.SoftSynthesizer)1 HashMap (java.util.HashMap)1 MidiChannel (javax.sound.midi.MidiChannel)1 Patch (javax.sound.midi.Patch)1 AudioFormat (javax.sound.sampled.AudioFormat)1 AudioInputStream (javax.sound.sampled.AudioInputStream)1