如何使用Java Sequencer

时间:2017-05-04 21:51:17

标签: java midi javax.sound.midi

我正在尝试将弯音应用于Java中的MIDI文件。 MIDI文件由两个C4音符组成,我想将第二个音符弯曲到小于半音的音程。我已经阅读了Oracle文档,但我真的不明白如何正确地将所有代码链接在一起来实现这一目标。到目前为止我有这个代码,但它没有做任何弯音。任何人都可以帮助我实现弯道,谢谢。

    final String MEDIA_URL = "../SharpFlat.mid";

    Sequencer sequencer = MidiSystem.getSequencer();
    sequencer.open();
    InputStream is = new BufferedInputStream(new FileInputStream(new File(MEDIA_URL)));

    ShortMessage myMsg = new ShortMessage();
    myMsg.setMessage(ShortMessage.PITCH_BEND, 1, 2, 100);
    MidiEvent pitchBend = new MidiEvent(myMsg, 1);

    Sequence sequence = MidiSystem.getSequence(is);
    Track track = sequence.createTrack();
    track.add(pitchBend);

    sequencer.setSequence(sequence);
    sequencer.start();

另外,我并不真正理解myMsg.setMessage(ShortMessage.PITCH_BEND, 1, 2, 100);中的论点。我如何知道使用哪个通道作为第二个参数,以及第三个和第四个参数究竟是什么?

0 个答案:

没有答案