📑

Pure Data(pd vanilla)でOSCを送信

2024/04/03に公開

1. 概要

マイクの音量を他のアプリケーションにOSCで送信するためにPure Dataを使用しました。
もともとTouch Designerを使用していましたが、もしかしてPure Dataでもできるんじゃないかと思ったのがきっかけです。

2. 環境

  • Mac MacBook Pro 16-inch 2019
  • macOS Ventura 13.6.3
  • pd 0.54.1

3. 方法

3.1 netsendで送ってみる→失敗

https://forum.pdpatchrepo.info/topic/12282/best-way-to-send-osc-messages-from-pure-data

上のサイトを参考に送信と受信のパッチを作成してみた。

一見上手く言ってるように見えたが受け手側のアプリケーションが上手く動かず、よく見てみるとアドレスに数値のデータも入ってしまっている状態で送られてしまっていました。

3.2 oscfomatとlsitを使う→成功

自分が5年以上前に書いた記事にヒントが載ってた。
https://qiita.com/yuji_miyano/items/8ac0280115999e5d614c

手順としては

  1. [pack f f f]で3つの値をfloatのリストに変換
  2. [oscformat /touchdesigner]でリストをOSCのパケットに変換し、アドレス(今回は/touchdesigner)を付与
  3. [list prepend send]でsendを先頭に追加
  4. [list trim]でlist機能をoff
  5. [netsend -u -b]でudp(-u)でバイナリ形式(-b)で送信
    としていた。4が何をやってるのかよく分からずもしかしたらいらないかもしれない。

この方法で上手くいった。

Discussion