ES1370 的 MIDI 有問題?


這個問題最先是由 Mjolnyr 所提出。他指出當他使用 ES1370 搭配 8MB 音色檔時,播放遊戲 DOOM 中的某一首配樂,會有難聽的三連音效果,要我也試試看。於是我先拿 Roland SC-55mkII 播放一遍,確定正確的曲式後(DOOM 這個遊戲可以說有 99% 的機率是以 Roland 的 GM/GS 音源完成),再拿 YMF724 音效卡播放一遍,除了音色略有不同外,可以認同與 SC-55mkII 播放的是一樣的效果,接著又使用軟體音源 S-YXG50 與 VSC-88,都播放出一樣的效果,拿 Cakewalk 出來解讀一下,也沒發現什麼奇怪的指令。最後才拿 ES1370 出來試一遍,果然非常的奇怪。我花了些時間研究,沒有找出完整的解答,故在此公布此一消息,希望有 ES1370 的人,能夠幫忙研究看看。

有興趣研究的人,請先下載這個 MIDI 檔。

正確的播放效果是從一開始就有一個聲音以三連音的形式不斷發音,從左至右,再從右至左,持續不斷的改變左右位置。如果您聽到的是這種效果,那麼表示播放正確。

在 ES1370 上,這個三連音卻殘缺不全,發一兩個音就不見了,然後又會突然冒出,聽起來很不順耳。

我拿出 Cakewalk 來解讀這份 MID 檔,發現出問題的資料是在第二軌。這一軌使用的音色是 81 號的 Square Wave,除了音符以外,就剩下兩種資料,而且相當大量:

改變左右的目的已經在剛才講過,本來就是播放效果的一部份。那麼為什麼改變音量的資料也非常大量呢?

原來,這首曲子的三連音效果,其實並不是真的寫上三連音,而是不斷的改變音量大小,從大聲變小聲,再從小聲變大聲,反覆不斷。這樣子做的目的,除了聽起來有三連音外,主要還是為了效果。作曲者也許是喜歡 Square Wave 這個音色,覺得需要這個音色來做陪襯,但是這個音色的本質是從發音後就持續不斷的拉長音,直接寫三連音的音符,會有聲音平鋪直敘的效果,而不是現在這種類似『嗡嗡翁』的效果,所以將曲子複雜化,來達到想要的效果。

E2M8.MID Piano Roll

而我研究的結果是,當音量設定不斷的下降後,竟然就回不來了,所以聲音雖然有在產生,卻太小聲而聽不到。即使你把音量設定回來,還是聽不到聲音,必須等待下一次發音時才『有機會』能夠恢復聲音。說『有機會』的原因是,好像也不是每一次有新音符產生時就能恢復音量。總之這個現象真的很怪.....

我嘗試著去找出到底要設定到多小聲才會『回不來』,發現並不一定,且和最近相鄰一次的音量設定值會有關係。

我又試著自己來畫音量設定,從小聲到大聲再到小聲反覆循環,卻不會有不正常的現象產生,可以表現的很正確,但是只要拿 E2M8.MID 中的音量設定一套上去,問題就會出現。

另外我還發現,換用不同的音色,這個斷斷續續的情況還會不一樣。換用 2MB 與 4MB 的音色,情況依舊。

我實在是研究不出來了,很棘手的問題,所以把這個問題提出,請各路英雄好漢一塊來研究,到底 ES1370 的 MIDI 是出了什麼問題。