作為一個熱愛音樂的孩子,我被1968年問世的“時髦的巴赫”(Switched-On Bach)這張電子音樂專輯里的穆格合成器的聲音震撼了。我需要學(xué)習(xí)如何制作這些聲音!因此,當(dāng)我進(jìn)入科技行業(yè)時,便開始了學(xué)習(xí)和合成器制作的生涯。進(jìn)入科技行業(yè)后,我發(fā)明了TV-B-Gone,這個鑰匙扣樣子的小工具可以讓你關(guān)閉幾乎任何型號的遙控電視。自從TV-B-Gone大受歡迎以來,我為世界各地的制作工坊發(fā)明了許多有趣的、開源的、可編程的硬件套件。在這些制作工坊里,新手們學(xué)習(xí)焊接,磨練他們焊接電子器件和微控制器的技術(shù)。記得在我年輕的時候,我想給他們提供一套易于組裝和使用的工具,而這套工具還是一個功能齊全的音樂合成器。
結(jié)果是我發(fā)明了ArduTouch。ArduTouch的售價是30美元。這個項目將一個觸控式鍵盤、一個ATMega328P(與Arduino Uno使用的處理器相同)和一個帶揚聲器的音頻功放集成在了一塊板子上。它還有一個軟件庫,可以作為進(jìn)入數(shù)字信號處理世界的入口。
設(shè)計電路板的最大挑戰(zhàn)是ATMega328P的輸入/輸出(I/O)引腳數(shù)量有限。我使用了12個I/O引腳作為合成器的觸控式鍵盤,以提供完整的半音音階。鍵盤的布局與老式Stylophone——我最喜歡的20世紀(jì)60年代后期的模擬合成器之一——相似,觸控時感覺就像在觸摸電容。還有2個I/O引腳用于輸出立體聲,2個引腳用于串行通信(ArduTouch可以使用標(biāo)準(zhǔn)的Arduino開發(fā)環(huán)境進(jìn)行編程,但你需要使用一條FTDI電纜將其連接到主機)。其余的I/O引腳剛好夠支持兩個按鈕和兩個控制合成器的電位計。
為了讓制作者在將套件焊接到一起后能夠立即獲得可聽見的結(jié)果,我在板子上放了一個LM386功放芯片和揚聲器。(當(dāng)把插頭插入音頻輸出插孔時,功放會被繞過。)數(shù)模轉(zhuǎn)換器芯片價格昂貴,因此我使用脈沖寬度調(diào)制(PWM)對來自ATMega328P的立體聲音頻通道進(jìn)行編碼。每個通道配有一個由一個電阻和一個電容組成的低通濾波器,將PWM信號轉(zhuǎn)換成音頻。
經(jīng)驗豐富的設(shè)計師會認(rèn)識到ArduTouch硬件很簡單。該項目的核心是用于對ATMega328P進(jìn)行編程的復(fù)雜的音頻合成軟件庫。
實際上,用微控制器來產(chǎn)生基本的音樂音調(diào)是相當(dāng)容易的。只需將揚聲器連接到I/O引腳,然后將其打開和關(guān)閉以發(fā)出不同頻率的方波就可以了(至少艾倫?圖靈在Manchester Mark II計算機上都使用過這種技術(shù))。但所能得到的是一種刺耳的聲音,聲音的豐富性遠(yuǎn)不及穆格合成器。
為了得到更好的聲音,我需要轉(zhuǎn)向數(shù)字音樂合成。這是一種創(chuàng)建音頻波形的二進(jìn)制表示,胡亂擺弄它們,然后將這些數(shù)字轉(zhuǎn)換成模擬信號的行為。有許多不同的方法可以做到這一點,我很高興地說ArduTouch支持相當(dāng)多的技術(shù),包括使用波形表(使用存儲在內(nèi)存中的數(shù)字音頻樣本)和生成式方法(動態(tài)計算音頻)。
一旦創(chuàng)建了聲音的基本二進(jìn)制表示,“弄亂”的階段就非常重要。除非你把聲音弄亂,否則聲音通常很薄且枯燥乏味。動態(tài)操作產(chǎn)生很酷的聲音。ArduTouch可以數(shù)字化應(yīng)用許多動態(tài)功能和效果,包括顫音、抑揚頓挫、滑音以及低通和高通濾波器等。
照片來源:Mitch Altman
焊接聲音:ArduTouch需要相對較少的組件(上面三張圖中中間那張圖),它使用電容鍵盤來演奏音符(最上面的圖)。它很簡單,可以在教人們?nèi)腴T的工坊中(最下面的圖)進(jìn)行組裝。
盡管上述所有內(nèi)容在概念上都不難學(xué)習(xí)和理解,但編碼卻相當(dāng)復(fù)雜。我和我的朋友Bill Alessi創(chuàng)建的ArduTouch庫能做所有需要的低級計算,我們花了兩年時間來編寫該庫。
該庫在設(shè)計時充分考慮了靈活性,即使是沒有經(jīng)驗的用戶也可以安裝新的合成器來制作不同的聲音。一個結(jié)合了四種鋸齒波形的名為Thick的合成器是預(yù)先安裝好的,但還有其他五個“可預(yù)裝”的合成器供下載使用。更高級的用戶可以通過調(diào)用一些高級功能來學(xué)習(xí)如何從頭開始創(chuàng)建自己的合成器。我希望那些喜歡這個項目的人會創(chuàng)建新的合成器并與我分享他們的代碼,以便我可以與他人分享。
但即使使用默認(rèn)的合成器,聲音也非常適合這種低功耗微控制器(允許音頻采樣率僅為15千赫茲)和這種低成本的支持硬件。你可以在我的YouTube頻道上看到很多視頻演示。
對于這個項目的未來,我們將繼續(xù)改進(jìn)ArduTouch Arduino庫并制作更多可預(yù)裝的合成器。我還在制作一個更強大的適合現(xiàn)場公共演出的ArduTouch版本。它不是套件,但它仍然是與Arduino兼容的。它將擁有功能更強大的32位微控制器,帶有大量I/O引腳、一個數(shù)模轉(zhuǎn)換器、大的存儲容量(這將允許MIDI)、一個小型LCD、幾個按鈕和電位計以及LED指示燈,當(dāng)然,還有更好的聲音。
-
微控制器
+關(guān)注
關(guān)注
48文章
7649瀏覽量
152109 -
處理器
+關(guān)注
關(guān)注
68文章
19407瀏覽量
231186 -
電路板
+關(guān)注
關(guān)注
140文章
4996瀏覽量
98861
原文標(biāo)題:TV-B-Gone發(fā)明人Mitch Altman是如何創(chuàng)建ArduTouch音樂合成器的?
文章出處:【微信號:IEEE_China,微信公眾號:IEEE電氣電子工程師】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
評論