iOSでピッチ解析(1)

BY TOMOHIRO NAGASAKI

Pure DataをiOS上で動作させるlibpdを使って、音のピッチ解析をしてみます。libpdにはピッチ解析のためのオブジェクトが入っていないので、別途追加し、PdからApp側に値を送るところを実装してみます。

iOSでピッチ解析(1)

1. libpdのダウンロード
2. Pdのピッチ解析オブジェクト sigmund~ を追加

iOSでピッチ解析(2)

3. ピッチ解析用のPdパッチを作成
4. PdからAppへ値の受け渡し

1. libpdのダウンロード
libpdをダウンロードします。iOSのコードサンプルを含むpd-for-iosバージョンが便利です。

https://github.com/libpd/pd-for-ios

libpd-for-iosをcloneし、サブモジュールになっているlibpd本体を追加します。

git submodule init
git submodule update

libpdが追加されたのを確認したら、サンプルコードで動作確認します。
PdTest01 を開いて実行すると、青い画面が表示され、2種類のサイン波が聴こえればOKです。

PdTest01

 

以降、このPdTest01を使って実装を進めます。

 

2. Pdのピッチ解析オブジェクト sigmund~ を追加

Pdでピッチ解析を行うには sigmund~ というオブジェクトを使いますが、libpdには含まれていませんので、ソースコードを入手してlibpdごとビルドします。

sigmund~のソースコードは、こちらのPure Data Vanillaのソースコードに含まれています。
http://puredata.info/downloads/pure-data

圧縮ファイルを解凍し、
pd-0.45-4/extra/sigmund~/sigmund~.c
を、PdTest01プロジェクトに追加します。

sigmund~.c

PdTest01

 

次に、PdTest01プロジェクトのlibpd内にあるm_conf.c に、sigmund~ を初期化するための関数 sigmund_tilde_setup() を追加します。

libpd

ビルドが通れば、libpdでsigmund~を使う準備が出来ました。

次回はピッチを取得するところを実装します。