多摩美 – サウンド・パフォーマンス 2017
Raspberry Piを楽器にする 3 – ネットワークでオンラインセッション!
今日の内容
- Raspberry Piのネットワーク機能を活用
- Sonic Piで演奏した情報をOSCで送信
- MacでOSCを受信して鳴らしてみる
Raspberry Piの問題点
- あまり音質は良くない
- ノイズが乗ってしまう
- 内蔵のサウンドカード限界
参考: 高音質のシールド
- 高音質のサウンドカードは各種販売されている
- サインスマート HIFI DAC サウンドカード モジュール I2Sインターフェース Raspberry Pi B+、2 Model B対応
今日のイメージ
- Mac側のSonic Piに音響合成の処理は任せる
- より高音質に、高速に音を生成できるはず!
参考: wifiアンテナ
- 今日は有線のネットですが、USB接続のwifiアンテナを買うと無線で接続が可能!
- PLANEX 無線LAN子機 (USBアダプター型)
Processing側の準備
- Sonic PiのProcessingで起動するプログラムの準備
- コーディング自体はMacでするほうが楽
- 動作を確認したらUSBメモリ経由でSonic Piへ
送信先IPアドレスの確認
- システム環境設定の「ネットワーク」
- 表示されるIPアドスをコピーしておく
Sonic Piの設定
- 受信するMacで設定
- Preferenceを表示し、Receive Remote OSCをチェック
Processing側コード
- 送信先IPが「192.168.1.3」の場合
import oscP5.*;
import netP5.*;
OscP5 oscP5;
NetAddress location;
void setup() {
size(480, 320);
frameRate(60);
oscP5 = new OscP5(this, 12000);
//IPアドレスを192.168.1.3に指定
location = new NetAddress("192.168.1.3", 4559);
}
void draw() {
background(0);
}
void mouseReleased() {
float note = map(mouseX, 0, width, 20, 100);
float cutoff = map(mouseY, 0, height, 10, 120);
OscMessage msg = new OscMessage("/trigger/synth");
msg.add(note);
msg.add(cutoff);
oscP5.send(msg, location);
println(msg);
}
Sonic Pi側コード
- 受け取り側は前回と一緒
live_loop :trigger do
use_real_time
note, release = sync "/osc/trigger/synth"
synth :pluck, note: note, release: release
end
遠隔で演奏してみる
- MacでコーディングしたProcessingのプログラムをUSBにコピー
- Raspberry Piに移し変える
- Raspberry PiでProcessingを起動してプログラムを読み込み
- LCD画面をタッチして演奏してみる!
実験!
- 複数のRaspberry Piから同じIPのMacに向けてOSCを送信
- MacのSonic Piで受け取るようにしておく
- 一体どうなるか?
ネットワークセッション!
- ネットワークを活用して、どのようなパフォーマンスが可能か?
- いろいろな機器を混在させてみる
- Raspberry Pi
- Mac
- センサー
- サーキットベンディングしたおもちゃ
- グループで考えてみる!
- 「ヤバい」パフォーマンスを目指そう!!
予告: 最終発表
最終発表は以下の日程で行います
- 日時: 2017年10月24日(火) 13:00 –
- 場所: 25-206教室
- 今までやってきた内容をふまえて「ヤバい」サウンドパフォーマンスをする!