応用編1: pythonとopenFrameworksをOSCで接続する

はじめに 雑用アルバイトの片山です。ようやく完全に就職活動を終えることができました。 さて、これまで「python-oscを使ってみる」シリーズを前編・後編とやってきましたが、音を出す以外にも映像を作れたら良くない?ということで今回はopenFrameworksをpythonと繋いでみたいと思います。 本編 とりあえず書いてみる python-oscの導入とかについては「python-oscを使ってみる」シリーズに掲載しているので省きます。 pythonのスクリプトは前回のコードをそのまま使います。入力した数字に含まれる0~9の数をそれぞれカウントしてくれるやつです。 使いまわしですが貼っておきます。 import argparse from pythonosc import osc_message_builder from pythonosc import udp_client port_num = 8002 # セットアップ parser = argparse.ArgumentParser() parser.add_argument(“–ip”, default=”127.0.0.1″, help=”The ip of th OSC Server”) parser.add_argument(“–port”, type=int, default=port_num, help=”The port the OSC server is listening on”) args = parser.parse_args() client = udp_client.UDPClient(args.ip, args.port) print(“ip:127.0.0.1, port:” + str(port_num) + “, address:/filter”) def main(): print(“type int:”) input_str = input() li = [] msg = osc_message_builder.OscMessageBuilder(address=”/filter”) for i in range (10): li.append(int(input_str.count(str(i)))) msg.add_arg(li[i]) print(li) msg = msg.build() client.send(msg) if __name__ == “__main__”: while True: main() さて、結局こいつを使って一回に送信できるデータは10コの数値だけです。 この時点でどう頑張っても面白くしようがなさそうな感じですが、一度始めてしまったものは仕方がありませんのでとりあえず進めていきます。 次はopenFrameworksのコードを書いていきます。先に言ってしまうととってもつまらない出来なのですが、oF側でOSCを受け取って処理するところくらいはいつか誰かの参考になるかもしれませんので掲載します。 openFrameworksの導入とか入門についても巷にゴロゴロと転がっているのでここでは省きます。 ofApp.cpp #include “ofApp.h” //————————————————————– void ofApp::setup(){ ofBackground(0); ofSetFrameRate(30); ofSetCircleResolution(32); ofSetBackgroundAuto(false); ofEnableAlphaBlending(); receiver.setup(SERVER_PORT); for (int i = 0; i < 10; i++ ) { list[i] = 0; } } //————————————————————– void ofApp::update(){ while (receiver.hasWaitingMessages()) { ofxOscMessage m; receiver.getNextMessage(m); if (m.getAddress() == “/filter”) { for (int i = 0; i < 10; i++) { list[i] = m.getArgAsInt(i); } } dumpOSC(m); } } //————————————————————– void ofApp::draw(){ ofSetColor(0); ofDrawRectangle(0, 0, ofGetWidth(), ofGetHeight()); for (int i = 0; i < 10; i++) { if (list[i] != 0) { ofSetColor(list[i] * … Continue reading 応用編1: pythonとopenFrameworksをOSCで接続する