學數字聲音合成技術,DIY屬於自己的吉他合成器
發布時間:2014-05-12 責任編輯:sherryyu
【導讀】很(hen)多(duo)人(ren)都(dou)喜(xi)歡(huan)彈(dan)吉(ji)他(ta),可(ke)是(shi)我(wo)們(men)都(dou)是(shi)用(yong)的(de)現(xian)成(cheng)的(de)吉(ji)他(ta)合(he)成(cheng)器(qi),沒(mei)辦(ban)法(fa)突(tu)出(chu)自(zi)己(ji)的(de)個(ge)性(xing)。本(ben)文(wen)講(jiang)到(dao)一(yi)位(wei)大(da)師(shi)自(zi)己(ji)學(xue)習(xi)到(dao)熟(shu)練(lian)掌(zhang)握(wo)數(shu)字(zi)聲(sheng)音(yin)合(he)成(cheng)技(ji)術(shu),然(ran)後(hou)自(zi)己(ji)設(she)計(ji)出(chu)屬(shu)於(yu)自(zi)己(ji)的(de)吉(ji)他(ta)合(he)成(cheng)器(qi)。是(shi)不(bu)是(shi)很(hen)高(gao)端(duan)大(da)氣(qi)上(shang)檔(dang)次(ci)?下(xia)麵(mian)隨(sui)著(zhe)小(xiao)編(bian)來(lai)看(kan)看(kan)是(shi)如(ru)何(he)DIY設計屬於自己獨一無二的吉他合成器的?
數字聲音合成技術總讓我這個業餘愛好者感到著迷。一個有關Karplus-Strong吉他合成技術的維基網頁更加激發了我的興趣。它吸引我的地方是這種合成器設計非常簡單。下麵是來自維基網頁的圖形(圖1):

式中的濾波器係數決定音調的‘粘性’。
突發噪聲?就是這樣嗎?肯定不對!不可能就這麼簡單!與所有業餘愛好者一樣,我立馬開始著手實施。寫代碼隻用了幾個小時,然後我把DAC輸出連接到示波器。可以看出與諧波疊加後大致呈正弦曲線,但是無法確定聽起來會是什麼樣。
在一陣翻箱倒櫃之後,我連接了一對舊耳機。我沒太高期望,大家都知道:對於初次嚐試的項目來說,要麼是一無所獲,要麼是背運情況下會看到它冒出一縷白煙(我寧願把這看成是芯片的靈魂升入虛空)。在確實聽到像撥弄吉他發出的聲音之時著實讓我吃了一驚。
似乎有點對路了。先提醒一下,下麵要講到數學了。
分析:
讓我們更深入地看看下圖2:


經過一番處理之後我們可以得到一個龐大的表達式:

好在通過利用Excel掃描頻率ω很容易就能求出幅值響應。
取樣速率設為44.1ksps(這是可掃描整個聽覺範圍的最小值)。
如果從式1生成200Hz音調,延遲‘L’則為44100/200 = 220.5。
由於我們的延遲為數字式,因此選擇220這個接近值。我隨意選擇10KHz的低通濾波器極點值入手。此極點頻率可確定上述‘a’與‘b’的值。

圖3:頻率響應
[page]
我們可以根據此響應明確看出我們是否傳輸寬帶噪聲信號(而我寧願將其視為能量散布全部頻率的信號),而您看到的輸出是200Hz基頻,隨後是2x、3x、4x…諧波。這基本上就是實際吉他彈奏時的表現:基頻隨後是伴生泛音。

另一個值得注意的有趣現象是:當把濾波器極推向更低頻率時會抑製更高階諧波,同時音調也變得更‘純淨’。但是,聲音聽起來不太像吉他,而是很像音調很快消失的鼓聲。

圖5:不同截止頻率的頻率響應
lingwaiyouqudeshigaibianlvboqijiezhipinlvshiyintiaopinlvhuifashengqingweipianyi。jipinfujindepianyibutaimingxian,danshigenggaojiexieboyouyuyuditonglvboqixiangguandexiangweisunshierkaishigengxianzhudipianyi。
[page]
以下是在156Hz附近彈奏E調時獲得的實際DSO波形的快速截屏。

圖6:E調波形采集——156Hz的基頻

圖7:E調FFT——156Hz的基頻
頻率峰值的分布符合預期;盡管幅度跌落與理論計算不一致,但是整體圖像十分匹配。
[page]
實現:
實現方案完全在賽普拉斯半導體公司的PSoC5LP混合信號SoC內部完成。為了更加有趣,通過采用幾個能夠在觸摸時彈奏不同音調的觸摸按鈕,我在係統中增加了一個用戶界麵。

圖8:係統級方框圖
采用CY8CKIT-050開發套件、用於觸摸按鈕的擴充板和我從臥室‘暫借’的幾個精致的揚聲器,整個係統配置大致如下:

圖9:吉他合成器配置
[page]
Speaker output:揚聲器輸出;developer kit + expansion board:開發套件 + 擴充板

圖10:細節展示
5 strings of a guitar:吉他的5跟弦;analog output to speaker:到揚聲器的模擬輸出;slider changes chords of guitar:滑片可改變吉他的和弦。
總結:
Karplus-Strong合成器可能是最簡單的合成器編碼算法,但是其輸出音質出人意料地不錯,即使是僅采用8位DAC(其嚴格來說對於音頻再現而言有點功率不足)。唯一的缺陷是演奏低頻音調時我們需要數值非常大的緩衝器。例如,演奏100Hz信號需要441緩衝器,取樣速率為44.1Ksps。如果我們希望添加多個同時弦時就會帶來問題,而且代碼大小也成問題。
此外,加入PSoC的靈活性也會帶來眾多新的選擇,如:采用I2S接口把信號輸出到標準音頻DAC。將合成代碼轉移到數字濾波模塊(DFB)可以釋放主核,從而可以添加任何其它計算密集型進程。
相關閱讀:
特別推薦
- 噪聲中提取真值!瑞盟科技推出MSA2240電流檢測芯片賦能多元高端測量場景
- 10MHz高頻運行!氮矽科技發布集成驅動GaN芯片,助力電源能效再攀新高
- 失真度僅0.002%!力芯微推出超低內阻、超低失真4PST模擬開關
- 一“芯”雙電!聖邦微電子發布雙輸出電源芯片,簡化AFE與音頻設計
- 一機適配萬端:金升陽推出1200W可編程電源,賦能高端裝備製造
技術文章更多>>
- 貿澤EIT係列新一期,探索AI如何重塑日常科技與用戶體驗
- 算力爆發遇上電源革新,大聯大世平集團攜手晶豐明源線上研討會解鎖應用落地
- 創新不止,創芯不已:第六屆ICDIA創芯展8月南京盛大啟幕!
- AI時代,為什麼存儲基礎設施的可靠性決定數據中心的經濟效益
- 矽典微ONELAB開發係列:為毫米波算法開發者打造的全棧工具鏈
技術白皮書下載更多>>
- 車規與基於V2X的車輛協同主動避撞技術展望
- 數字隔離助力新能源汽車安全隔離的新挑戰
- 汽車模塊拋負載的解決方案
- 車用連接器的安全創新應用
- Melexis Actuators Business Unit
- Position / Current Sensors - Triaxis Hall
熱門搜索
Future
GFIVE
GPS
GPU
Harting
HDMI
HDMI連接器
HD監控
HID燈
I/O處理器
IC
IC插座
IDT
IGBT
in-cell
Intersil
IP監控
iWatt
Keithley
Kemet
Knowles
Lattice
LCD
LCD模組
LCR測試儀
lc振蕩器
Lecroy
LED
LED保護元件
LED背光




