【发布时间】:2019-03-01 13:45:32
【问题描述】:
我目前正在开发一个应用程序来使用不同的乐器演奏一些 MIDI。我为此使用了 javax.sound.midi.MidiChannel,它适用于吉他(索引 25)和贝司(索引 32)。现在我想添加一个曼陀林频道;根据 synthesizer.getDefaultSoundbank().getInstruments(),这是索引 215。但是使用下面的代码,Mandolin 通道的程序设置为 25(与吉他通道相同)。根据文档,在 programChange() 方法中只允许使用 0 到 127 之间的值... 有什么想法可以配置我的频道以将曼陀林用作乐器吗?
Synthesizer synthesizer = MidiSystem.getSynthesizer();
synthesizer.open();
final Instrument[] instruments = synthesizer.getDefaultSoundbank().getInstruments();
MidiChannel guitarChannel = synthesizer.getChannels()[0];
guitarChannel.programChange(instruments[25].getPatch().getProgram());
MidiChannel bassChannel = synthesizer.getChannels()[1];
bassChannel.programChange(instruments[32].getPatch().getProgram());
MidiChannel mandolinChannel = synthesizer.getChannels()[2];
mandolinChannel.programChange(instruments[215].getPatch().getProgram());
mandolinChannel.noteOn(note, 100);
【问题讨论】:
标签: java midi javasound synthesizer