本發(fā)明涉及音樂制作領(lǐng)域,特別是涉及一種基于航姿參考系統(tǒng)的MIDI(Musical Instrument Digital Interface,音樂設(shè)備數(shù)字接口)控制器。
背景技術(shù):
MIDI是一種電子樂器之間以及電子樂器與電腦之間的統(tǒng)一交流協(xié)議。從80年代初問世至今,它經(jīng)歷了長時(shí)間的發(fā)展,現(xiàn)已成為電腦音樂的代名詞。人們可以從廣義上將其理解為電子合成器、電腦音樂的統(tǒng)稱,包括協(xié)議、設(shè)備等等相關(guān)的含義。
航姿參考系統(tǒng)(AHRS)用三個(gè)單軸的加速度計(jì),三個(gè)單軸的陀螺儀,和三個(gè)單軸的地磁傳感器,通過九軸融合算法來獲得空間姿態(tài)。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明要解決的技術(shù)問題是提供一種基于航姿參考系統(tǒng)的MIDI控制器,能使操作更加靈活無阻力,且體積小重量輕,可穿戴。
為解決上述技術(shù)問題,本發(fā)明的基于航姿參考系統(tǒng)的MIDI控制器,包括:
一傳感器,其上設(shè)置九軸傳感器芯片、單片機(jī)和2.4G天線,用于采集三軸加速度,三軸陀螺儀,三軸電子羅盤的數(shù)據(jù)進(jìn)行九軸融合,生成姿態(tài)四元數(shù)并通過2.4G天線向外發(fā)送;
一接收機(jī),具有USB接口,用于接收所述姿態(tài)四元數(shù)并將其轉(zhuǎn)換成歐拉角,取出該歐拉角中橫滾分量,用貝塞爾函數(shù)將橫滾分量轉(zhuǎn)換成用于控制MIDI的某個(gè)通道上的控制數(shù)據(jù),通過MIDI發(fā)送給后端的合成器作為合成器控制參數(shù),進(jìn)行音樂制作以及音樂演奏。
現(xiàn)有的傳統(tǒng)MIDI控制器使用推子和旋鈕,有摩擦力,不可穿戴;而本發(fā)明與其相比,可穿戴,操作無摩擦阻力,可以非??焖俑咝У倪M(jìn)行控制,且體積小重量輕,成本低廉。
本發(fā)明由于使用貝塞爾函數(shù)來將空間姿態(tài)數(shù)據(jù)轉(zhuǎn)換成MIDI的通道上控制數(shù)據(jù),其運(yùn)算量小,占用的內(nèi)存空間小,數(shù)據(jù)平滑,并且在作為穿戴式設(shè)備的時(shí)能夠靈活的進(jìn)行空間姿態(tài)數(shù)據(jù)向MIDI的通道上控制數(shù)據(jù)的變換,適應(yīng)人類的非線性的動(dòng)作。
附圖說明
下面結(jié)合附圖與具體實(shí)施方式對本發(fā)明作進(jìn)一步詳細(xì)的說明:
圖1是兩端平緩,中間陡峭的貝塞爾曲線圖;
圖2是兩端陡峭,中間平緩的貝塞爾曲線圖;
圖3是低端接近于線性,高端陡峭的曲線圖;
圖4是低端接近于線性,高端平緩的曲線圖;
圖5是低端平緩,高端陡峭,中端有一個(gè)急速變化點(diǎn)的曲線圖;
圖6是所述基于航姿參考系統(tǒng)的MIDI控制器系統(tǒng)框圖。
具體實(shí)施方式
結(jié)合圖6所示,所述基于航姿參考系統(tǒng)的MIDI控制器,包括一傳感器和一接收機(jī)。
所述傳感器上放置九軸傳感器芯片,單片機(jī)以及2.4G天線。九軸傳感器芯片采集三軸加速度,三軸陀螺儀,三軸電子羅盤的數(shù)據(jù);單片機(jī)對采集的數(shù)據(jù)進(jìn)行九軸融合,生成姿態(tài)四元數(shù);2.4G天線將姿態(tài)四元數(shù)發(fā)送給接收機(jī)。
所述接收機(jī)是一個(gè)外形上接近U盤的設(shè)備,具備USB接口,將收到的姿態(tài)四元數(shù)轉(zhuǎn)換成歐拉角,取出橫滾分量,然后用貝塞爾函數(shù)轉(zhuǎn)換成用于控制MIDI的某個(gè)通道上的控制數(shù)據(jù),通過MIDI發(fā)送給后端的合成器作為合成器控制參數(shù),用于音樂制作以及音樂演奏。
所述基于航姿參考系統(tǒng)的MIDI控制器還包括一上位機(jī),通過軟件配置轉(zhuǎn)換函數(shù)(即貝塞爾函數(shù))的參數(shù)。需要配置的參數(shù)包括貝塞爾函數(shù)控制點(diǎn),橫滾角度偏移量,音樂設(shè)備數(shù)字接口通道號,音樂設(shè)備數(shù)字接口控制器編號。
所述基于航姿參考系統(tǒng)的MIDI控制器中采用的主要算法是九軸融合算法,和姿態(tài)數(shù)據(jù)/MIDI數(shù)據(jù)轉(zhuǎn)換算法。
九軸融合算法取自Sebastian O.H.Madgwick(塞巴斯蒂安O.H.馬德威克)的論文《An efficient orientation filter for inertial and inertial/magnetic sensor arrays》(一個(gè)有效的用于慣性和慣性/磁場傳感器數(shù)組的方向?yàn)V波器,2010年4月30日)。
它的輸入是三軸加速度,三軸角速度(由陀螺儀測得)和三軸磁場(由電子羅盤測得),輸出是姿態(tài)四元數(shù)。
姿態(tài)數(shù)據(jù)/MIDI數(shù)據(jù)轉(zhuǎn)換算法是將姿態(tài)四元數(shù)轉(zhuǎn)換成用于控制MIDI的某個(gè)通道上的控制數(shù)據(jù)。具體控制如下:
首先將四元數(shù)轉(zhuǎn)換成歐拉角
Pitch=asin(-2q2q4+2q1q3)
Yaw=atan2(2(q2q3+q1q4),q1q1+q2q2-q3q3-q4q4)
Roll=atan2(2q3q4+2q1q2,-2q2q2-2q3q3+1)。
然后取出Roll數(shù)據(jù),它的范圍是–π到π。如果將傳感器穿戴于額頭上,則Roll的角度同頭部的上下動(dòng)作是同步的。因此可以使用一個(gè)轉(zhuǎn)換函數(shù)f(Roll)=CCVal來將Roll的角度數(shù)據(jù)轉(zhuǎn)換成MIDI CC(樂器數(shù)字接口連續(xù)線性控制器)數(shù)據(jù)。這個(gè)轉(zhuǎn)換函數(shù)可以通過一個(gè)三階貝塞爾函數(shù)來實(shí)現(xiàn)。
B(t)=P0(1-t)^3+3P1t(1-t)^2+3P2t^2(1-t)+P3t^3
只要指定四個(gè)控制點(diǎn)P0,P1,P2,P3,就可以根據(jù)當(dāng)前點(diǎn)的坐標(biāo)t來計(jì)算出對應(yīng)的點(diǎn)B。運(yùn)算量較小,速度快,占用內(nèi)存小,靈活。適合在單片機(jī)上使用。
對于MIDI CC數(shù)據(jù),其范圍是0-127,由MIDI協(xié)議所規(guī)定。所以B(t)的范圍是0-127。
在上面的公式中,t的范圍是[0,1],P0,P1,P2,P3四個(gè)控制點(diǎn)的坐標(biāo)分別是P0(x0,y0),P1(x1,y1),P2(x2,y2),P3(x3,y3),結(jié)果B的坐標(biāo)是(x,y)。x軸表示角度數(shù)據(jù),y軸表示MIDI CC數(shù)據(jù)。在x0<x1<x2<x3或者x0<x2<x1<x3的情況下,調(diào)節(jié)t的大小可以讓B點(diǎn)的x值落在x0和x3之間。這時(shí)對應(yīng)的y值就是MIDI CC輸出值了。
將傳感器佩戴于額頭,使用頭部的上下動(dòng)作來對MIDI控制器7號控制器的數(shù)據(jù)進(jìn)行控制,假設(shè)合成器將該控制器數(shù)據(jù)解釋為音量參數(shù),那么演奏者可能會希望在運(yùn)動(dòng)過程的兩端進(jìn)行更粗的控制,在運(yùn)動(dòng)過程的中間段進(jìn)行更細(xì)的控制,這時(shí)就可以使用貝塞爾函數(shù)描述這樣的映射曲線,參見圖1,其橫坐標(biāo)為角度,縱坐標(biāo)為音樂設(shè)備數(shù)字接口控制器數(shù)據(jù)。圖1為兩端平緩,中間陡峭的貝塞爾曲線,適合于希望兩端平緩,中間激進(jìn)的用戶使用。
而如果演奏者希望更為激進(jìn)的在兩端進(jìn)行控制以適應(yīng)自己激進(jìn)的情感變化(例如甩頭),那么可以使用另一套參數(shù)來映射。參見圖2,為兩端陡峭,中間平緩的貝塞爾曲線,適用于希望中間平緩,兩端激進(jìn)的用戶使用。
人們要做的只是簡單的修改貝塞爾函數(shù)控制點(diǎn)參數(shù)而已。
同樣可以方便的描述出其他的控制需求,例如半段線性變化,半段激進(jìn)/平緩變化,中途突變等。
圖3為低端接近于線性,高端陡峭的曲線,適用于希望低端中庸,高端激進(jìn)的用戶使用,
圖4為低端接近于線性,高端平緩的曲線,適用于希望低端中庸,高端平緩的用戶使用。
圖5為低端平緩,高端陡峭,中端有一個(gè)急速變化點(diǎn)的曲線,適用于希望中間有一個(gè)計(jì)算變化的激進(jìn)用戶使用。
以上通過具體實(shí)施方式對本發(fā)明進(jìn)行了詳細(xì)的說明,但這些并非構(gòu)成對本發(fā)明的限制。在不脫離本發(fā)明原理的情況下,本領(lǐng)域的技術(shù)人員還可做出許多變形和改進(jìn),這些也應(yīng)視為本發(fā)明的保護(hù)范圍。