オープンサウンドコントロール(OSC)は、コンピューター、サウンドシンセサイザー、およびその他のマルチメディアデバイス間の通信用プロトコルであり、最新のネットワークテクノロジー向けに最適化されています。 MAX/MSPでOSCを使用することは特に一般的です-これは実際に私がやっていることであり、PythonでOSCを使用してMAXの別のサブシステムと通信します。
OSCをサポートするpythonモジュールがたくさんあります。すばらしい。そして、それらはすべて、単純で、有用で、完璧であると主張しています。主観的な領域に陥るリスクがある場合、どのようなユースケースであなたの経験をしますか次のモジュールを提案しますか?
私はOSCに少しだけ精通しているだけなので、単純な実装が最も役立つと思います。そして、Python 2.7を使用しています。
私はpyOSCを使用してOSXで大きな成功を収めています。コードはあまり開発されていませんが、安定性と単純さのために発生する可能性が高いです。私は簡単に txosc を試しましたが、さらにテストする必要があるかもしれません。
私のpyoscの使用は限られていますが、うまく機能します。例えば。
import OSC
c = OSC.OSCClient()
c.connect(('127.0.0.1', 57120)) # connect to SuperCollider
oscmsg = OSC.OSCMessage()
oscmsg.setAddress("/startup")
oscmsg.append('HELLO')
c.send(oscmsg)
python OSC実装を探していて、Python 3の動作するOSC実装が必要な場合– I osc4py3が適切に機能し、十分に文書化されていることを確認できます。
2018年1月22日の私の調査結果:
pyOSC:維持されていないようで、動作するPython3バージョンを見つけることができませんでした。python3用に更新されたと主張しているバージョンへのリンクの一部が壊れていました。
aiosc:テストでは機能しましたが(クールな実装のように見えました)、何らかの理由で、必要な帯域幅で数秒後に "Too many open files"エラーで失敗しました。
osc4py:pipを使用してインストールし、問題なく動作し、メッセージごとにosc_process()を呼び出すようにした限り、毎秒約1,000メッセージの問題は発生しませんでした。
特にpy3k用に設計され、より多くの人々が使用している別のOSCバージョンがあるかもしれませんが、フィールドはまだ不透明なので、これを共有するのにおそらく最も適切な場所だと感じました。私はそれが誰か他の人を少し時間を節約することを望みます。
これは正確に質問されたものではありませんが、ここで言及する価値があると思います:さまざまなPython OSCモジュールについての1つの厄介な点は、ほとんどがどちらかのPython 2.xまたはPython 3.xは使用できますが、両方は使用できません、つまりコードベースを変更し、将来的にアプリの一部を書き換えます。
Python 2.xと3.xの両方をターゲットにしているのは、実際にはCライブラリのラッパーである Pyliblo だけです Liblo 。Libloは特にPdとSuperColliderで動作するようにテストされています(メインページの最後にある注を参照)。これは、このようなライブラリーを使用するときに主に気にかけていたことです... Libloの欠点は、少し難しいことです。 POSIXスレッド(pthreads)のみをサポートし、ネイティブのwin32スレッドAPIはサポートしていないため、MS Windowsで作業するには、 http://liblo.sourceforge.net/README-platformsで説明されているエミュレーションライブラリが必要です)。 html 。ただし、Windowsでスレッドを無効にしてコンパイルすることもできます。
私は何年もpyOSCを使用しています...「=そこにいた」Python 2から3に移行したとき)。その瞬間にメンテナー(Artem Baguinski)がやります!
さて、pyOSCをホストする2つのページがあります...そして、あなたの質問に関しては、ページの1つ(最も古い)のホストPython2バージョンです。そしてGithubにあるもの(古いものであり、もう開発されていないもの)、Python3バージョン。
OSC.py changelogはPython versionについて何も述べていないため、pyOSCのバージョンはわかりません。正しくドキュメント化されていなかった可能性があります。
pyOSC 0.3.5(Python2): https://trac.v2.nl/wiki/pyOSC
pyOSC 0.3.6(Python3): https://github.com/ptone/pyosc
Ptrが言ったように、実装は非常に簡単です。 Blender Game EngineをPureDataに接続するために使用します。
私は最近、クリーンなコードとpython2.7とpython3のサポートを目的として新しい実装を開始したことを述べたいだけです(3.6のみをテストしましたが、コアコードはそれに固有のものを使用していません)。 https://pypi.org/project/oscpy/ と https://github.com/kivy/oscpy でそれを見つけることができます。コードをきれいにして文書化するように注意してください。 MITライセンス済みです。
私はpython-osc 1.7.4 w/Python 3.8 w/OSC to tpm2.netゲートウェイをWindows 10に実装するために使用しました。
確かに、私はそれを2日間しか使用しておらず、最初に試したものです(py3をサポートし、最近のコミットがあり、適切な例があると言ったものを選びました)。問題...
唯一のことは、README.mdでOSC 1.0をサポートしていること、そしてそれが1.1までであることですが、私にとってそれは問題ではありませんでした。