pd-for-iosを使うにあたってつまづいたこと

iOS

iOSアプリでPureDataをサウンドエンジンとして利用するというメモを書いた後に機能を追加していく上で色々つまづいてしまったのでメモ。 テストするためにボタンをタップするとPdいろいろ送るプログラムを書きました。 コードはこちら

Pdが正しくlistを受け取ってくれない

原因はlibpd経由でlistを送った場合は最初に”list”という文字列が入ってくる仕様にあった。なのでレシーブオブジェクトの直下に[route list]を繋いでやる必要がある。 ほかのsendBangToReceiverとかsendFloatは値がそのまま送られるのでrouteで振り分ける必要はない。

サブパッチにしたところの処理が走らない

最初書いてたファイルを開く処理がこちら

PdBase.openFile("pd-patch/main.pd" path:Bundle.main.resourcePath)

のようにファイル名の引数にパスを渡すとmain.pdと同じ階層にあるサブパッチでも認識されないようで全く動作しなくなる。 正しくは

PdBase.openFile("main.pd", path: Bundle.main.resourcePath!+"/pd-patches")
.