У меня есть этот код:
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()
во время его воспроизведения?