【发布时间】:2011-12-21 22:31:06
【问题描述】:
我有这个代码:
Synthesizer synthesizer = MidiSystem.getSynthesizer();
synthesizer.open();
Instrument[] instrument = synthesizer.getDefaultSoundbank().getInstruments();
synthesizer.loadInstrument(instrument[29]);
MidiChannel[] channels = synthesizer.getChannels();
MidiChannel channel = channels[1];
channel.programChange(29);
channel.noteOn(noteNumber, 127);
Teszthang.sleep(2000);
channel.noteOff(noteNumber);
这是一个示例,以最大音量 (127) 播放声音 2 秒。但我想控制频道的音量,比如 2 秒后,音量会在 2 秒后淡出。我怎么能那样做?我知道这些方法:
channel.controlChange(controller, value);
channel.setPolyPressure(noteNumber, pressure);
但这些不会改变任何音量!我不知道如何使用这些方法。 noteOn() 播放后如何更改频道的音量?
【问题讨论】:
-
是的,我知道,但我不知道,controlChange 中的“7”是音量控制器 :)
标签: java midi fadeout volume channel