狠狠撸

狠狠撸Share a Scribd company logo
翱厂颁によるソフトウェア连携
2つ以上のソフトウェアが连携
連携の利点 
? 得意なところを分ける 
→ openFrameworkが映像/解析 
→ Maxが音 
? コントローラーと受け手側 
→ クライアントとサーバー 
→ 便利な方法でパラメータを動的に
どうやるの
翱厂颁を使おう!
OSC 
? Open Sound Control 
? CNMATが開発した通信プロトコル 
→ http://cnmat.berkeley.edu/ 
? MIDIに変わる方式 
→ 電子楽器のコントロール 
→ 便利過ぎてウケる 
→ ソフトウェア連携のド定番に
色々な環境で 
? openFrameworks 
? Max6 
? Processing 
? Pure data 
? VDMX 
? vvvv 
? node.js
無線でももちろん 
? iPhoneとかでも使えます 
→ ネイティブだとvvosc 
→ iOS版のopenFrameworksでも 
→ アプリではTouch OSCなど
OSC = 通信プロトコル 
? ネットワーク通信のルール 
? TCP/IPとかUDP
TCP/IP 
? 相手に届いたか確かめる 
→ 相手から届いたよ、って返事が来る 
→ 届かなかったら再送 
? データが欠けない 
? 遅い 
→ ネトゲ等で使われる
UDP 
? 一方的に送りつける 
→ 相手に確認しない 
? 速い 
? データが欠けるかも 
→ リアルタイムで何かするのに有効 
→ OSCもUDP利用が多い
openFrameworksでの利用 
? ofxOscを使う
ofxOscの注意点 
? Project Generatorで入れるのを忘れる 
→ 辛みの時間がやってくる
ofxOscの注意点 
? そのままaddonsに突っ込むとパスでエラー
ofxOscの注意点 
? そのままaddonsに突っ込むとパスでエラー
ofxOscの注意点 
? 手で通すの辛み
楽な方法 
? OFPluginを使う(Xcode専用) 
? https://github.com/admsyn/OFPlugin 
→ oFのaddonをサクッと追加 
→ 詳しくはリンク先で
书いてみましょう
通信先を指定 
? IPアドレスとPort番号 
? IPアドレス 
→ ネットワーク上での番地 
→ 外線番号 
? Port番号 
→ ソフトウェアの番地 
→ 内線番号 
→ 基本的に被っちゃダメ!
localhost 
? コンピュータ内部で通信しますよ 
? localhost 
? 127.0.0.1 
→ 同じ意味
他のPCに送る場合 
? 相手のIPアドレスを確認
OSCのプロトコル 
? URLライクな記述 
? /sound/param 440 0.1 “mod” 
? 2つのパート 
→ OSCメッセージ 
→ OSC引数
OSCメッセージ 
? OSCの情報をラベリング 
? 階層構造 
? /sound/a/freq 
? /sound/b/freq 
? わかりやすいように自分でデザイン
OSC引数(arg) 
? 実際の値 
? int32, float, stringなど様々な型 
? 一度に複数送信可 
? /sound/param 440 0.1 “mod”
型を間違えない 
? 例: m.getArgAsInt32(0)にfloatを突っ込む 
→ 警告が出る 
→ 凄い数突っ込むと警告でフリーズ 
? m.getArgType()を使って型チェックする 
? IDEから走らせない
ネットワーク越しでの注意点 
? 複数のOSCメッセージを同時に送ると危険 
→ 欠けることがある 
? 一つにまとめる 
? ちょっとズラす
他のソフトウェアと连携させる
Pure Data 
? フリー! 
? ビジュアルプログラミング環境 
? 音楽用ソフト 
? GUIを作りやすい
Pure Data超速入門 
? オブジェクトと呼ばれる箱 
→ 色々な機能 
? 結線= パッチング 
? ビジュアルプログラミング環境 
? 作ったプログラムをパッチと呼ぶ
新规パッチ
配置して繋ぐ
オブジェクト 
? ~がついているのはオーディオ関係 
? osc~はオシレータ(oscとややこしい) 
? dac~は音の出力
打ち間違えると 
? 赤の点線に 
? pdウィンドウにエラーメッセージ
音を出してみる 
? DSPオンかDSPのチェックボックス 
? 音量注意
ナンバーボックス 
? マウスでグリグリ 
? Shiftを押しながらで小数点単位で動く
編集モード 
? パッチング時とプレイ時で切り替え
ナンバーボックス 
? マウスでグリグリ 
? Shiftを押しながらで小数点単位で動く
メッセージ 
? 文字列を扱う 
? $1と書くと変数になる
printオブジェクト 
? メッセージの内容をデバッグ 
? ~がついてないので音のオブジェクトではない
2つ以上の変数 
? $1,$2…と変数の数は増やせる 
? bondoで2つのナンバーを同期 
? packでまとめてからメッセージに繋ぐ
まとめ 
? ~系オブジェクトで音 
? ナンバーボックスで数字をグリグリ 
? メッセージ+ $1 
→ OSCメッセージの形式に 
→ OSCのオブジェクトに突っ込む
Pure DataでOSCを受ける 
? dumpOSC = ofxOscReceiver 
? ポート番号を指定
OSCメッセージを処理 
? OSCRoute → m.getAddress() 
? unpack → m.getArgAsFloat(0) 
→ このケースの対応関係
Pure DataでOSCを送る 
? sendOSC → ofxOscSender 
? メッセージでipアドレスとポート番号を指定
Pure DataでOSCを送る 
? loadbang 
→ パッチ読み込み時に実行 
→ 読み込み時に処理したいものに繋ぐ
オーディオと連動 
? adc~でマイク入力を取得 
? peakamp~で音量を数字に 
? * は乗算
簡単なオーディオビジュアル 
? pdでoFのパラメータをいじる 
? oFで映像生成と解析 
? 結果でpdの音を変える

More Related Content

翱厂颁によるソフトウェア连携

Editor's Notes

  1. 搁别肠别颈惫别と蝉别苍诲别谤でメッセージのやりとりをして、それから丸の移动まで行く