?

電子表格音樂合成器

2017-04-27 21:02陳凱
中國信息技術教育 2017年7期
關鍵詞:電子表格鋸齒二進制

陳凱

電子合成器是一種音樂設備,它能生成簡單的振蕩波,然后通過疊加、過濾等操作對波的形態進行修改,從而創造出某種獨特的聲音效果,合成器有硬件、軟件之分,在計算機里運行的合成器稱為軟件合成器。至于電子表格,是用來存儲、統計、分析數據的,常用的有MS Excel或WPS表格。電子合成器和電子表格看似風馬牛不相及,而這篇文章要講的卻是怎么拿電子表格代替電子合成器來使用,雖然說任務有點奇怪,但涉及的操作無非是公式自動填充、插入圖表、復制、粘貼等,整個過程實施一遍后,計算機存儲、編輯、播放聲音的最基本原理也就很清晰了。

● 生成不同的波形

電子合成器中最常用的波形有方波、三角波、鋸齒波、正弦波等,形狀如圖1所示。

圖1中各波形的橫軸“t”均為時間,縱軸“A”為幅度。用電子表格生成這些波形很容易,以鋸齒波為例,電子表格的第一列中,用拖曳功能自動填充從0開始逐漸增大的整數,可以填充幾百到數千行,然后在第二列寫入公式“=MOD(A1,200)”,再利用拖曳功能自動填充幾百到數千行。選中整個第二列后插入圖表,選折線圖,就可以看到若干鋸齒波了(如圖2)。公式中的“200”是波的振動幅度,如果聲波的量化級數為8位,那么幅度不應該大于2的8次方減1,即255。

鋸齒波的特點是先以一定斜率上升,然后陡然落下。若將公式“=MOD(A1,200)”換成其他公式,就可以生成三角波和方波,具體公式怎么寫,就留給大家思考了。

生成正弦波的公式為“=SIN(A1*3.14/180)*120+120”,略復雜些,因為三角函數的計算結果小于1并且有負數,所以先乘上120再加上120來控制振動的幅度,注意在“設置單元格格式”中,將小數位數設置為0(如圖3)。

● 增波合成

增波合成指的是將不同形狀的波疊加起來,使得聲波的形態發生變化,從而改變音色。這里舉一個簡單的例子,將剛才的正弦波頻率設為原來的三倍,再將這個波與原來的波疊加起來,電子表格中改變頻率的操作也很簡單,只要另增一列,使自動填充的數字由每次加1改為每次加3即可(如下頁圖4)。

然后,將頻率變化后的波與原始的波疊加,所做的數學運算其實就是取兩個波的振幅的平均值,用自動填充功能填充完取平均數的公式后,就可得到合成后的波(如下頁圖5)。

這個波與原有的波有很大的不同,怎么把這個波播放出來以觀察音色的變化呢?這就需要將電子表格中的數據以二進制形式存儲到計算機中。

● 生成波形數據文件

生成波形數據文件需要兩個步驟:首先,將十進制的數據轉為十六進制(實際上是用相對容易表達的十六進制來表示二進制),在電子表格中使用“DEC2HEX”函數就可以輕松實現(如圖6)。其次,以二進制形式存儲電子表格中的波形數據,最簡單的方法是使用在線的二進制文件編輯器(網址為https://hexed.it)。

選中電子表格中存儲有十六進制數據的那一列,直接粘貼到在線編輯器中,注意要選中“Hexadecimial Values”(如圖7)。為了使聲波能持續一段時間,可以反復多次粘貼操作。粘貼完成后,不用進行任何編輯操作,直接點“Export”,給文件命名,將文件保存在硬盤中就可以了。保存好的文件稱為音頻裸數據,也就是沒有任何格式說明的音頻數據,可以利用音頻編輯工具,如Audacity、Cool Edit等軟件播放這段聲音,或將其轉為其他格式音頻文件。以Audacity為例,選中菜單“文件—導入—原始數據”,然后選中“Unsigned 8 bit PCM”(由于先前波的振動幅度都在0到255之間,所以量化極數為8bit)以及“單聲道”,就可以聽到先前用電子表格編輯的聲音了,原始的正弦波播放出來是純凈的低音,在疊加后有了毛毛的類似管樂的效果。

● 挑戰任務

最后,列一些值得挑戰的任務供有興趣的讀者進行實驗,難度由低到高:

☆用電子表格生成一段噪音并播放。

☆用電子表格生成一段逐漸從小到大的方波數據并播放。

☆用電子表格生成“DoSoDoSoDoSo”簡單鳴笛聲的波形數據并播放,注意音符“So”的頻率約為“Do”的1.5倍,為了讓聲音持續一段時間,需要在電子表格中自動填充數千行的數據,當然也有偷懶的辦法,就是在播放聲音時調低導入數據的采樣頻率。

猜你喜歡
電子表格鋸齒二進制
猛犸殺手——鋸齒虎
傷口多了就是鋸
有用的二進制
用Scratch把十進制轉為二進制
有趣的進度
電子表格的自動化檢測
電子表格的自動化檢測
在信息科技教學中滲透學科歷史的實踐與思考
巧用EXCEL電子表格計算土地面積
傷口多了就是鋸
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合