新四季網

電爵士鼓入門(DIY一套便宜好用的電子爵士鼓)

2023-08-06 06:23:06

只需一塊Arduino MEGA板,再配置好電腦(Linux作業系統)上免費或者開源的MIDI應用程式,即可製成一套真正能夠用來演奏的電子爵士鼓。根據你的心願,它可以被做成任何樣式:可以是自己設計的鼓架,也可以是薄膜狀,甚至可以用更加高端的傳感器,玩出各種花樣來。

準備材料

筆者的鼓架由Φ28mm的透明PC管和金屬連接件構成,上面安裝有7個鼓面和2個踏板,有一個腳踏的低音大鼓(Bass Drum,又稱「底鼓」)、一個軍鼓、兩個嗵嗵鼓(Tom-Tom Drum)、一個吊鑔(Crash Cymbal)、一個節奏鑔(Ride Cymbal)和一個帶踏板的踩鑔(Hi-Hat)。

主要的電子設備是一塊Arduino MEGA開發板,還有壓電陶瓷片——它可以用電壓表示其表面壓力的變化率,從而起到採集鼓面震動情況的作用。

製作過程

1 先從製作鼓面開始。為了降低敲擊噪聲,我用雙面膠在木板上粘貼了一層2mm厚的軟橡膠(你也可以用滑鼠墊代替)。這樣既可以靈敏地測到數據,木板本身又不會發出太大的聲響。

2 然後在沒有橡膠的一面粘上壓電陶瓷片(也叫壓電震動傳感器,或者piezo)。如果是新的元器件,焊接導線可能有一點難度,需要塗上助焊劑,用合適的溫度快速焊上。此外提醒,傳感器片不可以用502膠水粘貼,502膠水會腐蝕壓電陶瓷。在元器件兩端並聯一個1kΩ的電阻,防止元器件產生太高的電壓。完成後可以用示波器測試元器件的輸出電壓,確保即使大力敲擊木板,元器件也不會產生高於5V的電壓,因為Arduino的ADC最大只可以承受5V的輸入。將這些元器件用膠布固定好,製作出不同大小的多個鼓面。

3 然後就可以將製作好的鼓面固定在支架上了。我用了M10絲杆和螺帽,以及自己設計的3D列印件。

4 踏板很好製作。如果不需要力度響應,用兩個鍵盤的延音踏板即可(實際為腳踏開關)。

5 接下來測試下位機端的程序。圖中所示為Arduino Nano,因為其模擬輸入口數量不夠,最終換用Arduino MEGA。設計一塊擴展板,以便用你喜歡的接口連接各個鼓面。

6 將鼓面按程序中設定好的順序分別連接板子的I/O口,硬體部分就全部完成了!

PC端軟體

這裡需要在安裝Linux作業系統的PC上安裝以下軟體:

(1)Jackd:這是一個簡單易用的MIDI、ALSA接口管理器;

(2)Qjackctl:Jackd的GUI界面,可能會自動安裝上;

(3)Fluidsynth:MIDI合成器;

(4)Qsynth:Fluidsynth的GUI;

(5)Fluid-soundfont-gm:免費的MIDI音色庫;

(6)Hairless-Midiserial:MIDI-串口轉換器。

如果需要編曲、伴奏等更高級的功能,還需要rosegarden等音序器應用程式。

將它們分別打開,進行一些設置。

1 打開Hairless的Settings,設置好對應的波特率,然後選擇Arduino的串口號,在「SerialMIDI Bridge On」前打鉤,此時Arduino會重啟。

2 打開QSynth的Setup,切換到Soundfonts選項卡,單擊「Open」加載Fluid音色庫。

3 最後一步,打開Qjackd 的Connects窗口,在ALSA選項卡中,將Hairless的輸出埠連接到Fluid的輸入埠上,大功告成!

4 在QSynth的Channels窗口中選擇第10通道,可以切換很多種鼓的聲音。

設置好這些後,就可以試著演奏了,電腦的揚聲器中會實時播放出你敲擊的鼓面所對應的聲音。

MIDI協議

Arduino向PC發送信息的代碼片段如下:

void midiSend (int cmd, int pitch, int velocity) {

Serial.write(cmd);

Serial.write(pitch);

Serial.write(velocity);

}

這種通信協議就是MIDI協議。標準的樂器MIDI有其特定的波特率(31250)。因為我們這裡可以使用串口-MIDI轉換,所以可以隨意設置波特率。一句MIDI指令包含3位元組數據:

(1)MIDI命令,就是啟動或者停止一個音符;

(2)音符,指定要傳送的是哪個音符;

(3)力度,這個音符的演奏力度強弱。

//Adjust this if your pads are

dull or too sensitive

//{crash, hat, snare, tom_bass, crash_right, tom_high, tom_low}

unsigned char adc_cutoff[7]=

{3,3,10,7,3,3,3};

//minimum strength

unsigned char adc_limit[7]=

{40,10,30,50,40,10,10};

//maximum strength

以上這段代碼是每個鼓面力度範圍設置,請根據製作所用的材料和結構不同進行設置,如果某些鼓面不靈敏,或者過於靈敏,這些值有可能需要大幅調節。

然後,程序會輪詢收集來自各個傳感器的數據並判斷兩個踏板的開關量。

for(byte count=0;count<=6;count )

{

adc_sample[count]=map(analogRead (adc_channel[count]),0,1023,0,254);

}

因為在一次敲擊過程中,鼓面可能會振動一小段時間,可能會使Arduino採集了太多次,向電腦發送大量數據,導致電腦停止響應。簡單的解決方法是,在每次採集過程的最後加一句「delay(5);」。這種方法不會降低實時性。

以上這些就是製作這套Arduino架子鼓的一些經驗。基於這種思想,還可以做出很多不一樣的樂器,以及多用途控制器等產品。

,
同类文章
葬禮的夢想

葬禮的夢想

夢見葬禮,我得到了這個夢想,五個要素的五個要素,水火只好,主要名字在外面,職業生涯良好,一切都應該對待他人治療誠意,由於小,吉利的冬天夢想,秋天的夢是不吉利的
找到手機是什麼意思?

找到手機是什麼意思?

找到手機是什麼意思?五次選舉的五個要素是兩名士兵的跡象。與他溝通很好。這是非常財富,它擅長運作,職業是仙人的標誌。單身男人有這個夢想,主要生活可以有人幫忙
我不怎麼想?

我不怎麼想?

我做了什麼意味著看到米飯烹飪?我得到了這個夢想,五線的主要土壤,但是Tu Ke水是錢的跡象,職業生涯更加真誠。他真誠地誠實。這是豐富的,這是夏瑞的巨星
夢想你的意思是什麼?

夢想你的意思是什麼?

你是什​​麼意思夢想的夢想?夢想,主要木材的五個要素,水的跡象,主營業務,主營業務,案子應該抓住魅力,不能疏忽,春天夢想的吉利夢想夏天的夢想不幸。詢問學者夢想
拯救夢想

拯救夢想

拯救夢想什麼意思?你夢想著拯救人嗎?拯救人們的夢想有一個現實,也有夢想的主觀想像力,請參閱週宮官方網站拯救人民夢想的詳細解釋。夢想著敵人被拯救出來
2022愛方向和生日是在[質量個性]中

2022愛方向和生日是在[質量個性]中

[救生員]有人說,在出生88天之前,胎兒已經知道哪天的出生,如何有優質的個性,將走在什麼樣的愛情之旅,將與生活生活有什么生活。今天
夢想切割剪裁

夢想切割剪裁

夢想切割剪裁什麼意思?你夢想切你的手是好的嗎?夢想切割手工切割手有一個真正的影響和反應,也有夢想的主觀想像力。請參閱官方網站夢想的細節,以削減手
夢想著親人死了

夢想著親人死了

夢想著親人死了什麼意思?你夢想夢想你的親人死嗎?夢想有一個現實的影響和反應,還有夢想的主觀想像力,請參閱夢想世界夢想死亡的親屬的詳細解釋
夢想搶劫

夢想搶劫

夢想搶劫什麼意思?你夢想搶劫嗎?夢想著搶劫有一個現實的影響和反應,也有夢想的主觀想像力,請參閱週恭吉夢官方網站的詳細解釋。夢想搶劫
夢想缺乏缺乏紊亂

夢想缺乏缺乏紊亂

夢想缺乏缺乏紊亂什麼意思?你夢想缺乏異常藥物嗎?夢想缺乏現實世界的影響和現實,還有夢想的主觀想像,請看官方網站的夢想組織缺乏異常藥物。我覺得有些東西缺失了