openFrameworks で OSC を使ってみます。
今回は、送信側と受信側の2つのプロジェクトを作成します。
送信側のプロジェクト名は oscSender 、受信側は oscReceiver とします。
はじめに、addons.make ファイルに、以下の1行を記述します。
ofxOsc
今回は、送信側と受信側の2つのプロジェクトを作成します。
プロジェクト名は自由ですが、ここでは、送信側のプロジェクト名を oscSender 、受信側のプロジェクトを oscReceiver としておきます。
はじめに、送信側のプロジェクト oscSender を作成します。
ofApp.h ヘッダファイルで、 ofxOsc.h ヘッダファイルのインクルードと、 ofxOscSender オブジェクトの追加を行います。
...略...
#include "ofxOsc.h"
#define HOST "localhost"
#define PORT 12345
class ofApp : public ofBaseApp {
public:
...略...
ofxOscSender sender;
};
HOST は、OSCメッセージの送信先のホスト名またはIPアドレスを指定します。ここでは "localhost" を指定しており、これは自分自身のコンピュータを意味します。別のコンピュータに送信する場合は、そのIPアドレス(例: "192.168.1.10")を指定します。
PORT は、OSC通信で使用するポート番号を指定します。ここでは 12345 を使用していますが、この番号は任意に設定できます。ただし、送信側と受信側で同じポート番号を使用する必要があります。一般的には、1024以上の番号を使用することが推奨されています。
void ofApp::setup() {
sender.setup(HOST, PORT);
}
void ofApp::draw() {
ofDrawCircle(mouseX, mouseY, 20);
}
void ofApp::mouseMoved(int x, int y) {
ofxOscMessage m;
m.setAddress("/mouse/position");
m.addIntArg(x);
m.addIntArg(y);
sender.sendMessage(m);
}
void ofApp::mousePressed(int x, int y, int button) {
ofxOscMessage m;
m.setAddress("/mouse/button");
m.addIntArg(1);
m.addStringArg("down");
sender.sendMessage(m);
}
void ofApp::mouseReleased(int x, int y, int button) {
ofxOscMessage m;
m.setAddress("/mouse/button");
m.addIntArg(0);
m.addStringArg("up");
sender.sendMessage(m);
}