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