title | disqus |
---|---|
GitHub Arduino Sensor OSC Wekinator |
hackmd |
Processing
Arduino IDE
Wekinator
Continuously-controlled drum Example
BNO055
Wemos D1 mini
OSC原來是在 UC Berkeley Center for New Music and Audio Technology (CNMAT) 的一個研究計畫。CNMAT 是 UC Berkeley的一個跨學科的研究中心。它以充滿活動的教育,效率,研究計畫而聞名,其專注於音樂與技術創新互動。
用於電腦,聲音合成器和其他多媒體設備之間溝通的架構,該架構針對現代網路技術進行了優化。將現代網路技術的優勢帶到電子數位樂器世界中,OSC的優勢包括相互操作性,準確性,靈活性以及增強的組織和檔案編制能力。總得來說這個簡單而強大的協議提供了實時控制聲音和其他媒體處理所需的一切,同時又保持了靈活性和易於實踐性。
特色:
- 開放式,動態,URL樣式的符號命名方案
- 符號和高分辨率數值參數數據
- 模式匹配語言可指定單個郵件的多個收件人
- 高分辨率時間標籤
- 封包與檔案之間,其效果同時發生
- 查詢系統可動態查找OSC服務器的功能並獲取檔案
OSC已經有數十種作品,包括即時聲音和媒體處理環境,Web互動工具,軟體合成器,多種程式語言以及用於感測器測量的硬體設備。 OSC已在包括基於電腦的音樂表達的新界面,廣域和區域網聯網的分佈式音樂系統,進程間通訊甚至單個應用程序內的領域中得到廣泛使用。
Wekinator是免費的開源軟體,最初由Rebecca Fiebrink於2009年開發。任何人可以透過Wekinator使用機器學習來構建新的樂器,手勢遊戲控制器,電腦視覺或聽力系統等實作。 Wekinator允許用戶通過演示人類行為和電腦互動來構建新的互動式系統,而無需編寫程式。
本篇教學文章主要在於帶領大家實作入門Wekinator跟OSC如何整合應用
首先打開先前已經下載好的Continuously-controlled drum Example,在setup()裡會看到設定好的Port,12000與6448。
接著打開Wekinator會看到預先設定好的6448與12000,這時要修改的是outputs,由於鼓的音源輸出檔為三個因此將outputs數量改為3。
按下Next後,就會進入到Wekinator的控制介面,在OSC In 與 OSC out 為黃燈的狀態代表目前還沒收到與輸出資料
這時候可以在Processing裡執行鼓的範例並按下Wek介面裡randomize的按鈕,鼓的範例介面就會隨機發出音樂,如果沒有成功,再回去檢查Processing裡的範例程式Port的設定是否與Wekinator的設定一致。
到這裡基本上可以確認現在擁有音樂輸出的功能了,接下來我們要給定輸入的資料,這裡以慣性感測器為例,而關於慣性感測器BNO055的教學可以參考我以前的教學內容找到詳情 請見:實作九軸慣性感測器於Unity內即時無線傳輸控制方塊
至於與OSC與Wekinator的程式在以下的連結 請下載我GITHUB裡寫好的慣性感測器資料Push給OSC
在程式裡面我修改了慣性感測器給Wekinator的outPort為6448,是原始Wekinator預設的。而localPort更改為6969,目的是為了不跟Processing與Wekinator的12000Port衝突。
當程式燒入Wemos D1 mini後與Wekinator相連,當看到OSC In亮綠燈,並確認收到感測器傳來的數值。