免費論壇 繁體 | 簡體
Sclub交友聊天~加入聊天室當版主
分享
Board logo

標題: [MML編曲] 瑪奇”吃音”部分的改變及應對措施” [打印本頁]

作者: 蛋糕走路    時間: 2019-6-11 22:17     標題: 瑪奇”吃音”部分的改變及應對措施”

在進入正題前,我想向大家簡單介紹一個概念,那就是樂器中一個音符重迭了會怎麼樣。

首先,我見過有的新人寫譜子的時候會讓兩個相同音高的音符重迭,產生“重音“的效果。
很可惜,這一點在瑪奇中並不能直接實現。而且以往是部分樂器不可以,現在這個範圍已經擴展到所有樂器上了。

至於為什麼,這個要先從瑪奇演奏的合成器說起。

簡單的說,瑪奇的樂譜,實質上是告訴瑪奇在什麼時候用多大的力度演奏哪個樂器的什麼音符,
而把這一系列指令轉換成我們能聽到的聲音就靠“合成器“這樣的東西。

但是開發出這樣的合成器實質上是非常費時費力的。
所以,Nexon作為惡魔貓的母公司,直接購買了一整套聲音系統的軟體 Mile Sound System,
而我們玩瑪奇所有的聲音都要通過這個軟體輸出,而瑪奇的樂譜就用到了其中的 MIDI 功能。

這個程式 MIDI 預設是 32 和絃,也就是同一個時候只能有32個音符能出聲。
最早的瑪奇只支持5人合奏,即使是後來的8人合奏,絕大多數情況下,8個人,每個人3個音軌,也是24個音軌,
一般是不會出現超出32個音符出現的現象。

為什麼說是一般呢?表面上我們編譜使用的MML代碼是線性的,
也就是一個音軌中你不能像別的一些程式中寫一個三和弦,
你必須把一個和絃的三個音拆分到三個音軌中去。

可是,後來瑪奇出了一些樂器卻改變了這個現狀。
里拉和木琴跟別的樂器不一樣,這些樂器的釋音 (Release)時間很長,
所以即使你寫個六十四分音符,這些樂器一個音也會持續8秒以上才會消失。
這樣問題就來了。如果你寫個類似 L64cccccccc 的琶音,在短時間內會有8個音符同時出聲,
再加上瑪奇音源其實做得不夠好,很多wave檔後面都有空白
雖然我們聽起來沒聲音,但是系統還會判定那部分有內容,所以會堅持把那部分空白回放完。
當時豎琴一出整個世界都安靜了,其實就是因為豎琴每個音符末端空白留了太長。

如果這樣的樂器一多的話,32個和絃的位置非常容易用盡,導致後面新增的音符沒有位置正常播放。

很可惜,惡魔貓並不知道他們其實可以輕易調整這32個音符的上限,
因為他們購買的 MSS 這個程式是 2000 年的技術,
當時的硬體十分不發達,而 MIDI 又是非常吃 CPU + 記憶體的系統,
MSS 預設的 32 和弦,也是怕主流 PC 的配置跟不上。

但是現在已經 2019 年了,雖然 MIDI 依舊很吃 CPU,
但是應對 512 和弦應該是綽綽有餘的了。

可惜惡魔貓不知道這點,所以他們採取的解決辦法就是,
避免讓類似 L64 cccccccc 的譜子一次佔用多個和絃的情況。

說到這你應該就明白了,
像里拉,木琴這樣的樂器,
你如果單純的寫一個L64c,它依然會持續8秒以上;
但是如果你寫的是 L64 cccccccc,每一個後出現的音符會強行中止前面那個音符。

同時,以前部分樂器(對,我說的就是你,大提琴)是允許同音高的音符相互迭加的,
因為大提琴音符音量很小,如果做主音的話非常容易被其他樂器掩蓋。
當時的寫法就是直接寫兩個相同的音軌來解決這個問題。

但是現在,同一個樂器,相同的音符也不能使用這種方法了,
也就是說,相同的音高,哪怕出現在不同的音軌,
只要是同一個人那,相同音高的音符也會互相干擾。

也就是說,即使木琴可以寫三個音軌,
我們現在也不能直接像以往那樣寫出類似這樣的偽和絃效果了:

t216v4<f+7v8<f+8l9bv4>e64v8c+8dv4c-7v8ev4c-64v8f+v4f+7v8bv4c-8e64v8av4
l8c-ef+4f+4c-e4c-ec-f+4l64c-v8f+9v4ev8a9v4c-v8>d9v4<e8f+v8>c+8<a9v4f+7
v8e9v4c-8ev8l8f+r9v4c-ec-f+4c-ec-ef+4f+4c-e4c-ec-f+4c-ec-ef+4f+7v8<f+b
9v4>e64v8c+d9v4c-l64ev8e9v4c-v8f+9v4f+7v8b9v4c-8ev8>c+9v4<c-8e8f+4f+4c
-8e7v8>c+9v4<c-8ev7>d9v4<c-v8>c+9v4<f+7v8a9v4c-8ev8b9v4l8c-ef+4f+4c-e4
c-ec-f+7v8f+9v4c-64v8e9v4e64v8<b9v4b>ef+4f+4c-e4c-ec-f+4c-ec-ef+4f+7rv
8c-9v4e64v8c+d9v4c-l64ev8c+9v3c-v8d9v4f+7v8f+9v4c-8ev8a9v4l8c-ef+4f+4c
-e4c-ec-f+64v8f+r9v4c-64v8a9v3ec-64v8b9v4ef+4f+4c-e4c-ec-f+64v8f+r9v4c
-ec-64v8e9v4ef+7rv8f+4c-9v4e4c-ec-f+7rv8c-9v4l64ev8c+9v4c-v8d9v4e8f+4n
90v8d8e9v4c-8ev8d8r9v4c-8e8c-8f+4c-v8d9v4ev8e9v4c-v8f+9v4e8f+7v8f+9v4f
+7v8a9v4c-8ev8>c+8r9v4<c-8ev8>d9v4<c-8f+v8>c+8r9v4<c-v8a9v4e9c->c+v8e3
2v2<<c+19.v4l8>ef+4f+4c-e7v2<e9v4b>ec-f+r9l64c->c+v7e16v4d+v7f+32v4<e2
1>c+v7e21v4<c-bv8>d+v2<<f+16.v4>e8f+4f+v2l8<er9v4b>e7v2<d+9v4b>ec-f+64
v2<c-r9v4b>e

目前解決的辦法有兩個,一個是多加一個人,把衝突的音符轉移到另一個人那。
請留意兩個人用相同的樂器演奏相同音高的音符並不會造成“吃音“現象。

還有一種辦法就是犧牲掉音量較低的音符,
希望伴奏部分因為音量足夠低,在大合奏中能夠蒙混過關。

當然,我在新音源當中在部分很容易出現這樣現象的樂器的高音未使用區域,
把中音部分重複了一次。

如果使用新音源寫譜的話,遇到這種現象可以把重複的音符轉移到高音區,來避免這個問題。當然缺點就是譜面可讀性大幅降低,而且有時候會顯著增加字數。

具體採取哪種方案,還看大家自己取捨了。

現在合奏是不會走音的(歌唱部分除外),所以也可以省下調律部分的字元,
而且大家也沒有太大的必要去顧忌合奏成功率問題而不敢寫大合奏了。
作者: 七味綠茶    時間: 2019-6-13 09:46

果然是專業學術派的DD!!
把吃音主要的原因講得很清楚!
每次看這種文章都覺得很開心XD


幫有在寫歌的朋友們整理懶人包

木琴、里拉、豎琴這三種樂器屁股沒擦乾淨演奏會留下很長的空白音
環境能接受上限同時存在音軌數量為32,所以那些沒擦乾淨的會占用很多軌,被稱為吃音怪獸
(P.S. 據DD消息指出,未來爵士鼓可能也有相同問題)

解決方案就請看D神的解說~~或者遇到時再請教懂的人

作者: 蛋糕走路    時間: 2019-6-13 22:21

果然是專業學術派的DD!!
把吃音主要的原因講得很清楚!
每次看這種文章都覺得很開心XD


幫有在寫歌的朋友 ...
七味綠茶 發表於 2019-6-13 09:46


木琴跟豎琴的音源官方在MusicQ的時候已經有改善了(不過他們是強制大幅度縮短音符長度)
爵士鼓的話,因為本身音符數量就有限,
而且同音高的音符在任何時候都最多只會佔用一個音軌,
所以除了大合奏,一般8人左右的合奏應該還是可以勉強應付




歡迎光臨 繆斯邊境音樂廳│Mabinogi (http://mabinogimuses.imotor.com/) Powered by Discuz! 7.2