資料介紹
1:背景
演奏連續(xù)音符是印度斯坦音樂不可分割的一部分。演奏這種類型的音符需要有多種表達方式。有像小提琴、西塔琴或長笛這樣的樂器可以做到這一點。典型的鍵盤只能彈奏離散的音符,而在高端鍵盤中,提供了一個彎音輪,可以將音符在正側或負側彎曲到典型的 2 個半音(此值是可調的,但將其設置得非常高可能會很困難準確地使用它)。這不是一種非常直觀的音樂播放方式。市場上有各種鍵盤,如 Haken Continuum Board、ROLI seaboard。這些是一種功能強大的儀器,可以很好地完成這項工作。您可以在相應儀器的網(wǎng)站上找到更多詳細信息。
受上述儀器的啟發(fā),我之前嘗試過制作一個簡單的基于 Arduino 的觸摸鍵盤。更多細節(jié)可以在instructable of the same中找到。該項目使用了大約 14 個板(低精度)和使用 Arduino 音調庫產生的聲音。由于它的聲音只是一個方波,所以聽起來一點也不悅耳。
這些是從我以前的項目中學到的,我試圖在這里改進。
- Tone library 的聲音生成太差了,所以我在這里使用了 MIDI 按摩質量可以提高,
- 由于尺寸較大,板數(shù)較少,板的定位精度太低。在這里,我?guī)缀鯇⒏袘宓臄?shù)量增加了兩倍,并將其寬度減半。
- 舊項目也沒有使用壓力數(shù)據(jù),因為音調庫無法調制音量。使用 MIDI 為所有這些可能性打開了大門。
- 電容感應不是一種非??煽康姆椒?。它可能會因接地、木板吸收的濕氣,甚至是您在玩耍時穿的鞋子而受到影響。在這里,我們需要解決這個問題,因為其他方法既復雜又/或昂貴。
2:概念
整體工作流程如下:
傳感:
我發(fā)現(xiàn)了兩種可行的方法。一種是基于霍爾效應傳感器(用于 Haken Continuum 板),它非常準確但相對復雜。這需要一些精確的機制來獲得準確的輸出。但是,如上一節(jié)(步驟)所述,我發(fā)現(xiàn)非常方便的方法是利用電容感應。如果我們去電容感應,我們不需要任何傳感器組件,我們可以簡單地將金屬板連接到任何 Arduino 引腳上,它就變成了電容傳感器。還有一個可用于電容感應的庫可以直接使用的。有關此庫工作的更多詳細信息,請參見上述鏈接。總之,此方法檢查金屬板通過電阻器從 0V 充電到 5V 所需的時間。該時間值代表電容。我們獲得的另一個優(yōu)勢是我們還可以通過使用數(shù)據(jù)來測量壓力。我們按得越用力,手指與板接觸的面積就越大,電容就會增加。所以這就是我們不會只有接近感應的方式,但我們會得到一些關于我們按壓力度的數(shù)字。
處理數(shù)據(jù):
Arduino 捕獲并處理數(shù)據(jù)。它根據(jù)預設值計算觸摸位置、壓力值。它還將所需的平滑應用于所有這些值。MIDI 消息只不過是我們需要編寫的串行消息。Arduino 基本上控制四個信號。首先是打開和關閉任何音符。另外兩個信號彎音和壓力值在任何音符打開時連續(xù)計算和傳輸。
聲音生成:
來自 Arduino 的傳輸數(shù)據(jù)在 FL Studio 中用于生成所需的聲音。它需要各種軟件來插入 FL studio 中的 MIDI 信號。
3:準備硬件
制作過程可以直接復制我之前的項目。詳細信息可在我的舊教程中找到:https://www.instructables.com/DIY-Arduino-Based-Co ...。
但是,在制作時需要考慮一些更改。板的寬度減少到 6 毫米(相對于之前的 12 毫米)。選擇尺寸的原因是,當我們以最小壓力接觸表面時,所創(chuàng)建的貼片的尺寸約為 8-9 毫米。所以當我觸摸任何關鍵手指時,至少會接觸到兩個板。
在這里,我還需要覆蓋 2 個八度音階,每個鍵由兩個鋁箔板組成。我們總共需要 48 個盤子。
電氣連接:
從上圖中可以看出,每個板都直接連接到公共引腳(編號 13)。它還通過一個電阻器連接到一個單獨的引腳。我們如何將所有這些引腳連接到感應板沒有任何限制,因為模擬和數(shù)字引腳都支持電容感應。根據(jù)您的連接,需要修改代碼。
筆記:
在切割板或焊接時,您必須確保所有板彼此電氣隔離。
4:Arduino 軟件/代碼
- 所有板都聲明為電容傳感器,所有連接都需要正確映射到代碼上。對我來說,引腳 13 是通用引腳。
CapacitiveSensor p1 = CapacitiveSensor(13,12); CapacitiveSensor p2 = CapacitiveSensor(13,11);
CapacitiveSensor p3 = CapacitiveSensor(13,10);
.
.
.
CapacitiveSensor p48 = CapacitiveSensor(13,9);
2. 最初捕獲所有傳感器的電容值。“raw_cap()”函數(shù)將捕獲值并存儲在全局聲明的數(shù)組中。
void raw_cap(){
raw[1]=p1.capacitiveSensor(resolution);
raw[2]=p2.capacitiveSensor(resolution);
raw[3]=p3.capacitiveSensor(resolution);
.
.
raw[48]=p48.capacitiveSensor(resolution);
}
3. 捕獲完整數(shù)據(jù)后,將執(zhí)行另一個名為“data_process()”的函數(shù)。這不僅會處理數(shù)據(jù),還會將 MIDI 消息發(fā)送到計算機。這個函數(shù)的流程如下。
- 識別出最大幅度的鍵,
- 觸摸的準確位置是在最大幅度值前一鍵和后一鍵計算的。(這就是為什么我們需要讓手指在任何時候至少觸摸兩個鍵)。
- 存儲鍵和壓力值的最后 30 個值
- 如果觸摸壓力值超過預定義值,Arduino 會發(fā)送數(shù)據(jù)以打開音符。
- 在觸摸打開期間,Arduino 不斷發(fā)送彎音和壓力值。
- 如果 Key 釋放,它會發(fā)送信號關閉音符。
此代碼還捕捉按鍵觸摸。例如,您在 7.25(在鍵 7 上稍微向右)觸摸,它只會播放鍵 7(純音符)。在該觸摸會話期間,它將是幻燈片的基礎值。此功能可以輕松放置純音符。如果沒有這一點,將很難做到這一點。
完整的代碼可供下載。如果您打算做類似的事情,您可能需要花費大量時間來調整代碼和各種值(如分辨率和觸摸閾值)
要了解 MIDI 消息,您可以參考此鏈接:
https://www.instructables.com/Send-and-Receive-MID ...
5:聲音生成
生成聲音需要三個軟件:
1. 無毛 MIDI:這是 MIDI 橋的串行。arduino 傳輸?shù)娜魏螖?shù)據(jù)都被該軟件捕獲。
2. LoopMIDI:這個軟件從 hairlessMIDI 捕獲數(shù)據(jù),并作為 FL studio(或您使用的任何軟件)的 MIDI 設備
3.FL studio:在FL studio的設置中,您可能需要選擇LoopMIDI作為設備。默認情況下,此代碼提供 +8 到 -8 個半音之間的彎音(軟件中的默認值為 +2 到 -2)。這需要在儀器的設置中手動設置。除此之外,您還需要將壓力值分配給體積。
6:常見問題
這是我在開發(fā)過程中遇到的問題列表。
- 電容感應的一個非常常見的問題是正確接地。如果用戶赤腳接觸地面,靈敏度會增加。如果我們將筆記本電腦插入電源,靈敏度也會增加。但是,打開充電器可能會給數(shù)據(jù)增加噪音。因此,如果您為某些條件設置閾值,它可能適用于其他條件,也可能不適用。
- 鋁箔之間的連接很關鍵,容易松動,如果松動,很多時候設備可能會出現(xiàn)故障。
- 直接觸摸板、線或引腳可能會給出完全錯誤的數(shù)據(jù),也會破壞采樣率。演奏時,只能使用塑料覆蓋的部分。所有暴露的金屬都應適當絕緣以避免意外接觸。
- 如果您將鋁箔直接粘貼到木塊上(使用水性粘合劑),可能需要幾個小時或幾天才能完全干燥。在潮濕條件下,由于板通過水通道相互連接,它會給出錯誤的輸出。
- 鋼琴老師:Arduino+LEDs+MIDI鍵盤+MuseScore
- 帶Ableton的Arduino MIDI控制器
- 基于樹莓派的自制MIDI鍵盤 1次下載
- Arduino 101藍牙MIDI開源分享
- Arduino MIDI控制器開源分享
- 基于Arduino Nano R3的MIDI音序器—Cthulhinho 0次下載
- 帶有FL Studio的Arduino LED MIDI控制器
- 基于Arduino的MIDI音序器Cthulhinho 0次下載
- 鍵盤控制的Arduino汽車
- 基于Arduino UNO構建小型midi解碼器
- Arduino MIDI鼠標控制器
- Cantor風琴轉換為VPO的MIDI控制器
- 兆易創(chuàng)新AN014 GD32微控制器在Arduino中的應用
- MIDIFART迷你袖珍MIDI控制器
- 一種復音MIDI鍵盤控制器的設計 35次下載
- 簡述控制器的多種工作模式 1910次閱讀
- 基于MM32F0160微控制器的機械鍵盤 1012次閱讀
- 如何使用Arduino Leonardo和MPU6050制作一個有線的手勢控制器 2625次閱讀
- 采用ispLSI1016芯片實現(xiàn)4×5鍵盤控制器設計 2198次閱讀
- 如何使用通用單片機制作MIDI鍵盤 6845次閱讀
- dfrobotDFRduino Pro Mini控制器簡介 2023次閱讀
- dfrobotDFRduino Pro MiniV1.3控制器簡介 1269次閱讀
- dfrobotArduino Leonardo 控制器介紹 2259次閱讀
- dfrobotArduino兼容控制器介紹 1247次閱讀
- dfrobotCheapduino控制器介紹 1370次閱讀
- dfrobotDFRduino Nano 3.0控制器介紹 2484次閱讀
- dfrobotRomeo 三合一Arduino兼容控制器介紹 2372次閱讀
- 沁恒股份USB轉MIDI芯片:CH345概述 3408次閱讀
- arduino連接顯示屏方法詳解 4.7w次閱讀
- 基于FPGA的矩陣鍵盤控制器的設計 4868次閱讀
下載排行
本周
- 1山景DSP芯片AP8248A2數(shù)據(jù)手冊
- 1.06 MB | 532次下載 | 免費
- 2RK3399完整板原理圖(支持平板,盒子VR)
- 3.28 MB | 339次下載 | 免費
- 3TC358743XBG評估板參考手冊
- 1.36 MB | 330次下載 | 免費
- 4DFM軟件使用教程
- 0.84 MB | 295次下載 | 免費
- 5元宇宙深度解析—未來的未來-風口還是泡沫
- 6.40 MB | 227次下載 | 免費
- 6迪文DGUS開發(fā)指南
- 31.67 MB | 194次下載 | 免費
- 7元宇宙底層硬件系列報告
- 13.42 MB | 182次下載 | 免費
- 8FP5207XR-G1中文應用手冊
- 1.09 MB | 178次下載 | 免費
本月
- 1OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234315次下載 | 免費
- 2555集成電路應用800例(新編版)
- 0.00 MB | 33566次下載 | 免費
- 3接口電路圖大全
- 未知 | 30323次下載 | 免費
- 4開關電源設計實例指南
- 未知 | 21549次下載 | 免費
- 5電氣工程師手冊免費下載(新編第二版pdf電子書)
- 0.00 MB | 15349次下載 | 免費
- 6數(shù)字電路基礎pdf(下載)
- 未知 | 13750次下載 | 免費
- 7電子制作實例集錦 下載
- 未知 | 8113次下載 | 免費
- 8《LED驅動電路設計》 溫德爾著
- 0.00 MB | 6656次下載 | 免費
總榜
- 1matlab軟件下載入口
- 未知 | 935054次下載 | 免費
- 2protel99se軟件下載(可英文版轉中文版)
- 78.1 MB | 537798次下載 | 免費
- 3MATLAB 7.1 下載 (含軟件介紹)
- 未知 | 420027次下載 | 免費
- 4OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234315次下載 | 免費
- 5Altium DXP2002下載入口
- 未知 | 233046次下載 | 免費
- 6電路仿真軟件multisim 10.0免費下載
- 340992 | 191187次下載 | 免費
- 7十天學會AVR單片機與C語言視頻教程 下載
- 158M | 183279次下載 | 免費
- 8proe5.0野火版下載(中文版免費下載)
- 未知 | 138040次下載 | 免費
評論
查看更多