OSCの受信を手早く確認するのにProcessingを使用する
Processingだと割と癖がなく、手早くOSCのメッセージを確認することが出来るので
、いつもProcessingのoscP5を利用して、送信したOSCメッセージを確認している
Processingが手元にないとき
- Processingのダウンロードページに移動する
- donation(寄付)の選択(払わないときはNo Dunationを選択)して、Downloadボタンをクリック
- 2.2.1のいずれかを選択(Version 3でも動くとは思うけど未確認)
- zipを解凍して、processing.exeを実行する
oscP5のサンプルソースを修正してOSCの受信を確認する
- ライブラリをコピーする。 場所:oscP5-0.9.8/oscP5/library/oscP5.jar
- サンプルソースにcodeフォルダを作成する 場所:oscP5/examples/oscP5sendReceive/code
- codeフォルダ配下にoscP5.jarをペーストする 場所:oscP5/examples/oscP5sendReceive/code/oscP5.jar
- oscP5sendReceive.pdeを開いて変更する 場所:oscP5/examples/oscP5sendReceive/oscP5sendReceive.pde
oscP5sendReceive.pde
/**
* oscP5sendreceive by andreas schlegel
* example shows how to send and receive osc messages.
* oscP5 website at http://www.sojamo.de/oscP5
*/
import oscP5.*;
import netP5.*;
OscP5 oscP5;
NetAddress myRemoteLocation;
int receivePort = 12345;
String sendIP = "127.0.0.1";
int sendPort = 12001;
void setup() {
size(400,400);
frameRate(25);
/* start oscP5, listening for incoming messages at port 12000 */
oscP5 = new OscP5(this,receivePort);
/* myRemoteLocation is a NetAddress. a NetAddress takes 2 parameters,
* an ip address and a port number. myRemoteLocation is used as parameter in
* oscP5.send() when sending osc packets to another computer, device,
* application. usage see below. for testing purposes the listening port
* and the port of the remote location address are the same, hence you will
* send messages back to this sketch.
*/
myRemoteLocation = new NetAddress(sendIP,sendPort);
}
void draw() {
background(0);
}
void mousePressed() {
/* in the following different ways of creating osc messages are shown by example */
OscMessage myMessage = new OscMessage("/test");
myMessage.add(123); /* add an int to the osc message */
/* send the message */
oscP5.send(myMessage, myRemoteLocation);
}
/* incoming osc message are forwarded to the oscEvent method. */
void oscEvent(OscMessage theOscMessage) {
/* print the address pattern and the typetag of the received OscMessage */
print("### received an osc message.");
print(" addrpattern: "+theOscMessage.addrPattern());
println(" typetag: "+theOscMessage.typetag());
theOscMessage.print();
}
theOscMessage.print();
公式ドキュメント
http://www.sojamo.de/libraries/oscP5/reference/oscP5/OscMessage.html
値をとる時
theOscMessage.get(0).floatValue()
公式ドキュメント
http://www.sojamo.de/libraries/oscP5/reference/oscP5/OscArgument.html