gpt4 book ai didi

java - 无需合成器即可控制 Java MIDI 音量

转载 作者:行者123 更新时间:2023-12-01 12:32:52 26 4
gpt4 key购买 nike

我有下面的代码,理论上应该使声音静音(只是为了测试音量控制是否工作),但它以最大音量播放声音,就好像音轨的循环不存在一样。

File music = new File(midi);
Sequencer sequencer;
Sequence sequence;
try {
sequence = MidiSystem.getSequence(music);
sequencer = MidiSystem.getSequencer();
sequencer.open();

for (Track track : sequence.getTracks())
{
for (int c = 0; c < 16; c++)
track.add(new MidiEvent(
new ShortMessage(ShortMessage.CONTROL_CHANGE, c, 7, 0),
track.ticks()));
}

sequencer.setSequence(sequence);
sequencer.start();
} catch (MidiUnavailableException | IOException | InvalidMidiDataException e) {
e.printStackTrace();
}

最佳答案

如果您只是将命令添加到轨道中,为什么会发生变化?我敢打赌它们是添加在轨道的末尾;所以控制变化没有任何作用。至少尝试将刻度参数设置为 0。

此外,轨道本身可能已经包含控制更改;根据需要改变音量。这种方法不是控制音乐音量的方法。它是您控制所选轨道相对于彼此的方式。

关于java - 无需合成器即可控制 Java MIDI 音量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25808465/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com