Twitter

コントロールデータ

Pdには大まかに2種類のデータがあります。まずはコントロールデータについて説明します。

 

コントロールデータ

数値データ、文字列データ、リスト、bangデータなどのことです。

話をわかりやすくするために、以下のパッチ(プログラム)をダウンロードして開いてみてください。

simple_counter

simple_counter

このパッチは 上のToggleボタンに×をつけると、一番下のナンバーボックスの数値が1ずつ増えていくパッチです。

これらのオブジェクトのインレットとアウトレットの間をラインを伝って動いているのは、すべてコントロールデータです。コントロールデータは細いラインを伝わって、基本的には白いインレットやアウトレットに入出力します。

ctrldata

 

「基本的には」と書いたのは、後で述べるシグナルデータが入出力するシグナルオブジェクトの中には、インレットにコントロールデータである数値データをそのまま入力できるものもあるからです。

このパッチでは以下のようにデータが流れてプログラムの処理が実行されます。

  1. Toggleボタンがオンになって1の数値データを出力。
  2. [metro]に1が入力されて動作を開始。
  3. 200ミリ秒毎にbangデータを出力。
  4. [f 1]にbangデータが入力されて初期値(引数)の1の数値データを出力。下のナンバーボックスに数値データが入力。同時に[+ 1]に1が入力。
  5. [+ 1]で加算されて2の数値データを出力、[f 1]の右インレットに入力。[f 1]に2が格納される。
  6. 3〜5の手順がくり返される。
  7. Toggleボタンをオフにすると0の数値データが出力されて[metro]の動作が停止する。
  8. 同時に0が[sel 0]に入力されて左アウトレットからbangデータを出力する。メッセージボックスにbangデータが入力されると1を[f 1]の右インレットに向かって出力し、[f 1]に1が格納される。

 

パッチの処理のすべてを文章にして説明するとこのように長くなってしまいますが、パッチはご覧の通りとてもシンプルな外見で、いわゆるメトロノームのように0.2秒毎に数字が増えていくパッチです。

なお、基本的にコントロールデータのオブジェクトには以下の特徴があります。

  • 右インレットに入力したデータはオブジェクトの引数(設定値)を変更(格納)するだけで、データ出力はない。
  • 左インレットにbangデータまたは数値データや文字列データが入力されると、格納したデータや処理の結果をアウトレットから出力する。

ただし、あくまでも「基本的に」です。コントロールオブジェクトの中には、右インレットがないオブジェクト、インレットそのものがないオブジェクトもあります。また、アウトレットが複数あり、右アウトレットからは独自の処理結果を出力するオブジェクトもあります。

この辺りはいろいろなオブジェクトを使うようになって、ヘルプファイルをチェックしていくとわかってくると思います。

text by sei matsumura