gpt4 book ai didi

java - 如何更改合成器/音序器的 'master' 音量?

转载 作者:行者123 更新时间:2023-12-01 13:07:23 25 4
gpt4 key购买 nike

我希望能够控制我播放的 MIDI 文件的“主音量”或整体音量。

设置:

  • 我的 java gui 程序中有一个我想要播放的 midi 文件
  • 我还有一些界面,允许用户通过键盘/鼠标/MIDI 设备输入来播放声音
  • 最后我还采样了音频效果

我想要什么:

  • 能够在后台播放时实时控制 MIDI 文件的整体音量,而不影响任何其他音频元素的音量

通常的解决方案:

  • change the channel volume合成器中用于播放 midi 文件的每个 channel
  • 此方法的问题是,如果 MIDI 文件向合成器发送任何音量消息,我的音量设置将被覆盖

我的解决方案(尚未完成)

  • 实现一个普通的接收器/发送器,放置在音序器和合成器之间
  • 我计划从 Sequencer 拦截与 channel 音量相关的消息,应用由 JSlider 设置的增益,然后将编辑后的消息转发到合成器。

相关问题:

  • 如果我的解决方案是唯一的方法,那么除了 channel 音量消息之外,我还必须拦截和编辑其他与音量相关的消息吗?

主要问题:

如何更改 MIDI 文件的“主”音量?

最佳答案

在MIDI中,所有与音量相关的 Controller (音符力度、表情、音量、主音量)都被组合在一起;每个都可以独立更改。

每个 GM 兼容的合成器都应该支持主音量消息:

F0 7F 7F 04 01 LL MM F7

其中 LLMM 是 14 位值的低 7 位和高 7 位。(大多数设备都有 7 位主音量,只是忽略 LL。)

大多数 MIDI 文件不会改变主音量;您应该能够盲目地发送此消息。

关于java - 如何更改合成器/音序器的 'master' 音量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23170223/

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