FC2ブログ

pd-for-ios の続き

先生のスライド・ショー で、なんとなく pd-for-ios の使い方が分かった気になっていたワタクシ、さて、自作のパッチを組み込んでみようと思うも、もしかして、PdDroidParty みたいに使えないボタンのたぐいがあるのではないかと思い当たる。おお、冴えてる。

先生の例題では、

iPhone から Pd にデータを送る場合

-(IBAction)ChangeFreq:(UISilder *)sender{
  [PdBase senderFloat:sender.value toReceiver:@"Freq" ];
}

Pd から iPhone にデータを送る場合

-(void)receiveFloat:(Float)revceived fromSource:(NSStinrg *)source{
  if( [ source isEqualToString:`"freqInHz" ] ){
    self.freqLabel.text = [ NSString stringWithFormat:@"%f", recerived ];
  }
}

なんてことをしておられる。

まずは送るほうから。
最初に PdBase.h とかいうヤツ import してるし、Pd に送るほうに PdBase とか書いてあるから、 PdBase.m を見てみりゃイインジャネ。
で、訳も分からず開いてみる。
で、「send」で検索。

+ (int)sendBangToReceiver:(NSString *)receiverNam
+ (int)sendFloat:(float)value toReceiver:(NSString *)receiverName
+ (int)sendSymbol:(NSString *)symbol toReceiver:(NSString *)receiverName
+ (int)sendList:(NSArray *)list toReceiver:(NSString *)receiverName
+ (int)sendMessage:(NSString *)message withArguments:(NSArray *)list toReceiver:(NSString *)receiverName

とか、なんとなく見慣れたヤツっぽいものが引っかかる。
素直に受け取ると、Bang、 Float、 Symbol、 List、 Message は送れそう。
って、List ってなんじゃろ。PdDroidParty の taplist みたいなもんじゃろか。はいダウト。
データを引数で列挙するとまとめて送ってくれる? とか、そんな感じみたいです。
これもダウト。
配列を作って、データを並べて末尾に nil を置いて、その配列を受け渡してデータを送る感じです。
Pd のほうで unpack する感じになるかと。
sendMessage は、List と同様ですが、配列とは別に文字列が送れます。

おお、Toggle がないではないか。
PdDroidoParty に bang がなくて、Toggle に置き換えたワタクシ、動揺を隠せず。
PdDroidParty と同じく、ラジオボタンもない。
スライダーもありませんわ。

ここに至って、PdDroidParty と pd-for-ios の根本的な違いに思い当たる。
PdDroidParty (のワタシの使い方)って、.svg ファイルで GUI を置き換えることがメインだったのね。
pd-for-ios では、GUI の制御は iOS 側に任せて(平たく言うと Interface Builder で作って)、Pd 側では音の制御だけ行う = Pd にUI はいらないって考え方なのね。
気が付くの遅いわっ! 全然、冴えてない。・・・ガッカリすだったし、今日。・・・低気圧だし・・・。

なので、Toggle(オン・オフ)、ラジオボタン(どこのボタンがオンなのか)、スライダー(どの値を指しているか)など、設定値を保持しなきゃいけないものは pd-for-ios にはないと。

というわけで、PdDroidParty で作った droidparty_main.pd を大改造することになるのであった。

PdDroidParty と同じ Pdファイル が使えないのは痛いわー、素直に pd-for-android を使えば効率的なんじゃろか。

iPhone にデータを送る側はまた今度。

スポンサーサイト



コメント

非公開コメント