midi音符写太多之后总是有漏音的情况,该怎么解决呢?

我因为自己会扒音游曲,所以在做midi的时候会把音符塞得很多,但是到了这些音符比较多的部分就会出现一些音播放不出来。这样的情况怎么解决呢?有更好的midi播放器吗?还是我自己需要做一些妥协?

1 Like

可能的原因很多:
· 是不是音源复音数不够了?
· 制作MIDI时的软件和播放器是什么?可能确实不支持那么多音符。
· 如果使用硬音源的话,MIDI端口的带宽有限,甚至USB转MIDI的设备,都可能有这种问题。
如果真的想塞那么多音符的话,去问问那些做黑乐谱和傅里叶谱的玩家,他们会有解决方案。

3 Likes

我也经常遇到楼主提出的这个问题。
似乎是 Win 7 以及以后的系统(Win 8 和 Win10)将系统默认的MIDI播放设备 Microsoft GS Wavetable Synth 的最大复音数给改了(似乎限制到了 32)。
我同样的一个MIDI,在 Win7,Win10上使用系统默认的MIDI播放设备播放就会出现楼主所说消音问题,但是在 Windows XP 系统上就没有这个问题。你可以用虚拟机装个XP系统试试。
不知道是不是这个原因。
我现在播放MIDI都是使用专用的MIDI播放器(MIDIPlayer 5)+ soundfont的方式,MIDIPlayer 5 可以修改最大的复音数,因此避开了这个问题。

1 Like

网上关于MIDI的东西似乎都不好找啊,不像别的很容易找到官网、教程啥的。
刚才试了一下你说的midiplayer,确实可以完全地播放midi文件,甚至音色都变得更好听一些(笑)。为什么会有这种差异呢?
我做midi是用的cakewalk 9.03,能不能在我制作的过程中就用这一套音色呢?

midiplayer 默认使用了它内置的一个 soundfont 以及 soundfont 播放引擎(名叫 Bass)作为音源,而非使用Windows自带的Microsoft GS Wavetable进行播放,还内置了如合唱,混响,eq等效果。因此,听起来很好。
这是我分享的 Midiplay 及其使用教程,里面还附赠了很多额外的 soundfont。你可以下载来试试。

【Midiplay及其使用教程 附赠 soundfont】
链接:https://pan.baidu.com/s/1Bv0DJ4CYj9SdFevW2HVydg
提取码:d5w3

我个人没有尝试使用过 cakewalk 9.03,不过你可往这几个方向去查询:

  1. 百度一下 cakewalk 9.03 有没有能直接加载 soundfont 音色。
  2. 如果 cakewalk 9.03 不能直接加载 soundfont 音色,你可以尝试使用支持 soundfont 的 vst 插件, 比如 DSK SF2 ( https://www.dskmusic.com/dsk-sf2/ ), sforzando (https://vst4free.com/plugin/1371/)。(需要 cakewalk 9.03 能够支持 vst 插件格式)
  3. 使用 cakewalk 输出 MIDI 信号到 Midiplayer,让 Midiplayer 作为 Midi播放设备。
  4. 使用这个帖子的 CoolSoft VirtualMIDISynth(https://tat.midishow.com/t/topic/16), 作为 Midi 播放设备,让 cakewalk 把 Midi 信号输出到这个虚拟播放设备上。

cakewalk 9.03 这个软件确实是太老了,可能很多不支持,资料也少,如果楼主还是想用 cakewalk 软件的话,推荐楼主可是用最新的 cakewalk 版本,比如:Cakewalk By Bandlab。(这个是免费的 https://www.bandlab.com/products/cakewalk

希望能够帮到楼主! :grinning: :grin: :wink:

4 Likes

cakewalk 9.03 我没用过,类似这种MIDI剪辑的软件,都支持midi输入/输出的选项,通过虚拟的MIDI工具,把他们链接起来就可以了

1 Like

你説的這個問題是音源發音數超出的原因。解決方法有幾個可以供你參考。1.就是你的樂器演奏法有問題,在每個樂器軌道裏有很多不合理或超出演奏法的音符,如: 吉他 8個音,鋼琴 5個音以上等等。2.建議使用雙通道32軌以上的音源或者使用機架軟音源多加載幾個音源來分配你的軌道。3.把你所有音符的長度縮短90%-99% 把吉他 鋼琴等占發音數的樂器向后移動10個TICK(我說的是在480的精度下)這樣可以有效的解決發音數受限制的問題
.

1 Like

这段话是什么意思呢 :upside_down_face:

这样会不会出现作品播放时“没有那种感觉” :grinning:

向后移动10个tick的用意是,让音符在稍微错开一点的时间发声。这样的话人耳听不出太大区别,但可以减少MIDI传输带宽的一瞬间的占用,以及让音源在合成声音时的一瞬间减小些压力,让音源有点儿喘息空间。

音符长度改短这个,我自己感觉应该是要看情况。多数的乐器声音是如果一直NoteOn而不Off,那么它会占着复音数不放,直到收到NoteOff后才进入Release阶段,进而释放复音数。但有些乐器,比如打击乐,它的发声原理是忽略NoteOff信息的,也就是说很多鼓组里的打击乐,它的声音停止是自发的,不是由收到NoteOff决定的。所以这个时候NoteOn太久也没啥必要,于是打击乐里的音符,Duration写得短也不妨碍,4个Tick的长度就足够。

1.如果在480TICK的精度下製作 縮短10個TICK以内是沒有影響的。
2.一般鼓的時長480精度下為 10 TICK
3.你可以通過查找替代功能(interpolate)把音符(除鼓以外)全部縮短10TICK

1 Like
  1. TICK 是指音符的長短
  2. 一般在480TICK精度下製作 縮短10個TICK是沒有任何聼感上的問題的
1 Like