作者ResolaQQ (ResolaQQ)
看板Emulator
標題[分享] 模擬器聲音/音效原理
時間Fri May 15 21:09:45 2015
簡單就我所知道的提一下
照 wiki 解釋,聲音是通過物體振動產生的聲波
是通過介質(空氣或固體、液體)傳播並能被人或動物聽覺器官所感知的波動現象
所以電腦產生聲音基本上就是把聲波重現出來(透過電壓或電流,我不確定是哪個)
聲音有分音色(鋼琴、小喇叭)、高低(女聲、男聲)、大小
影響音色的就是波型
早期家用主機能用的聲音波型只有少數幾種,圖如下,右下角有按鈕可以聽聽看
http://en.wikipedia.org/wiki/Waveform
分別是正弦波、方波、三角波、鋸齒波,因為圖形單純好產生
理論上,所有波型都能由不同頻率的正弦波合成出來,不過這個跟模擬器沒啥關係不多提
跟正弦波聽起來最像的聲音是音叉的聲音
方波就是大部分 NES 主旋律用的聲音
聲音高低則是由頻率決定,下面有不同頻率的正弦波圖形
http://en.wikipedia.org/wiki/Frequency
圖中紅色頻率低,聲音最低,紫色頻率高,聲音最高
如果同時有多個聲音產生,波型可以直接疊加
聲音大小則是由波峰波谷的位置有多大或多小決定
http://en.wikipedia.org/wiki/Crest_(physics)
圖中波峰是 Crest,波谷是 Trough
以上是聲音的基本概念
回到 Atari 2600,它只有方波,應該是直接用震盪器產生的
0 就是波谷,1 就是波峰
再透過一些電路,把波型整的比較亂一點
AUDC Pattern Shapes
x Rep Pattern Shape
0 1 ----------------------------------------------------------------------
1 15 ----___-__--_-_----___-__--_-_----___-__--_-_----___-__--_-_----___-__
2 465 --------------------------------------------------------------________
3 465 ------______-___---__-----___-------___----___--__--_____---------___-
4 2 -_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
5 2 -_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
6 31 ------------------_____________------------------_____________--------
7 31 -----___--_---_-_-____-__-_--__-----___--_---_-_-____-__-_--__-----___
8 511 ---------_____----_-----___-_---__--__-_____-__-_-__---_--_-___----__-
9 31 -----___--_---_-_-____-__-_--__-----___--_---_-_-____-__-_--__-----___
A 31 ------------------_____________------------------_____________--------
B 1 ----------------------------------------------------------------------
C 6 ---___---___---___---___---___---___---___---___---___---___---___---_
D 6 ---___---___---___---___---___---___---___---___---___---___---___---_
E 93 -------------------------------------------------_____________________
F 93 ----------_____---_______----__________------___------____---------___
這是 Atari 2600 的全部波型(有些不完整)
x 代表 Pattern 的代號,Rep 代表每多少格波型會重複
其中 Pattern 4 就是標準的方波(一高一低,每兩格重複一次)
Pattern C 是頻率比較低的方波,其他雖然應該也都算方波,但就不是那麼規則了
然後 Atari 2600 的聲音設備部分,每個 channel 由三個暫存器控制
一個存波型(音色),一個存頻率(高低),一個存音量(大小)
模擬的時候就是照這三個暫存器的數值把最終的波型秀出來而已,沒什麼技術含量可言
我之前在板上 PO 的聲音設備模擬器影片,就是固定波型去調整頻率
NES 的話,基本上有兩組方波,一組三角波,一組雜訊(像收音機收不到訊號時的沙沙聲)
一組像電子琴能儲存音色的 DPCM(很少人用,大概是因為很佔容量)
大概還有一堆控制音色跟頻率雜七雜八的東西(這就複雜了,跟 Atari 2600 比起來)
如果看不懂我在寫什麼,建議去下載 NSFImport 這個程式
開個洛克人之類的音樂來看會比較好懂
看過之後你就會發現,強的是那些寫曲的人,設備其實很普通的
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 114.46.136.3
※ 文章網址: https://www.ptt.cc/bbs/Emulator/M.1431695388.A.6F0.html
推 BadGame: 怕人不知道快點推 05/15 21:29
推 if4: 嗯...這是電子科系的入門知識 ^_^ 05/15 22:44
推 erspicu: 我曾經試圖模擬GB開機的噹聲 但感覺怎樣音調都有點怪怪的 05/16 00:18
你說的 GB 開機聲是 等登 這兩聲嗎?
如果是的話,以我的爛耳朵來聽,那兩聲是方波 + Duty 2
你開 FamiTracker
New instrument 的 Duty / Noise 填 2,Volume 填
14 15 15 15 15 15 15 15 15 15 15 14 14 13 13 12 11 10 9 8 6 5 4 3 2 1 1 1 1 0
(兩個填完記得都要按 Enter 鍵,要看到白色長條圖而且前面有打勾才有效)
Pulse 的部分填
C-5 00
C-6 00
這樣聲音就有點像了
我猜你會覺得音調怪怪的大概是 Duty 2 的實作方法錯了吧
推 erspicu: 感謝..參考一下 越高階的機種聲音參數好像又更多些 05/16 00:24
推 mindsteam: 這些老機器的聲音合成真的很有意思。 05/16 01:24
※ 編輯: ResolaQQ (114.46.147.100), 05/16/2015 02:38:15
推 Jay915: 推 05/16 07:41
推 tint: 7、80年代的遊樂器幾乎都是靠晶片產生頻率發出這些電子聲音 05/16 22:33
推 emulators: 你怎麼這麼專業 05/17 01:40
推 silverair: 以前的音樂雖然簡單,但是超好聽的 05/17 03:51
推 srwcc: cool! 05/17 10:45
推 conpo: 專業好文推 05/17 19:06