Thursday, April 17, 2014

第2回Pure Dataの紹介、基本操作

Pure Dataについて

無料で使えるオープンソースのビジュアルプログラミング環境です。
授業で使用するのはPd-extended 0.43.4 Mac版
※Pure Dataは以下、Pdと呼びます。

ダウンロード先

Pdは、「オブジェクト」という「箱」を配置して、「ライン」という「線」でつないでいってプログラミングをする環境です。

参考書
Pd Recipe Book -Pure Dataではじめるサウンドプログラミング-

Pure Dataの起動

アプリケーションフォルダ内のPdアイコンをダブルクリックして起動すると、Pdコンソールウィンドウが開きます。
これ以降の画像は、クリックすると元のサイズで拡大表示されます。見づらかったらクリックしてみてください。
Pdコンソールウィンドウ

このウィンドウでわかること、できる操作

  • 処理結果やエラーメッセージが表示されます。
  • 起動時に使えるように読み込んだライブラリが何かがわかります。
  • 音の入力、出力のレベルが表示されます
  • DSP(Digital Signal Processing=デジタル信号処理)がON/OFFになっているかどうかがわかります。
では、ファイルメニュー - 新規で新規パッチウィンドウを開きます。(ショートカット:⌘+N)
パッチウィンドウ
このウィンドウに「オブジェクト」を配置して「ライン」でつないでプログミングをします。
できあがったPdのプログラムは「パッチ」と呼ばれます。

2つのモード

編集モードと実行モードがあります。ファイルメニュー - 編集モードで2つのモードを切り替えます。(ショートカット:⌘+E)

編集モード

  • マウスポインタ:手の形
  • オブジェクトの配置、移動、選択、削除、オブジェクト名の変更などの「編集」作業ができる。

実行モード

  • マウスポインタ:矢印
  • Bangボタンのクリック、スライダーのドラッグ、ナンバーボックスの数値をドラッグで変更などの「実行」作業ができる。


※裏技:編集モードの状態で、⌘+クリックをすると一時的に実行モードと同じ操作ができる。

とりあえずおぼえるべきショートカット

操作

⌘+N  新規パッチウィンドウ
⌘+E  編集・実行モードの切り替え
⌘+D  オブジェクトの複製
⌘+R  Pdコンソールウィンドウを全面に表示
Shift+⌘+L  Pdコンソールウィンドウをクリア

オブジェクトの配置

⌘+1  オブジェクトボックス
⌘+2  メッセージボックス
⌘+3  ナンバーボックス
⌘+5  コメントボックス
Shift+⌘+B  Bangボタン
Shift+⌘+T  Toggleボタン

これらができれば当分の間は不自由しません!

オブジェクトの種類と使い方

今回の授業資料パッチ

pd_lesson2.zip
右クリック - 保存でダウンロードしてください。
解凍すると、pd_lesson02というフォルダがあり、その中に今回の授業のパッチがあります。

いくつかのパッチを実行モードで操作しましょう。

-数値が上がっていくメトロノーム
pd_lesson02_basic1.pd

-YES、NOを出力するメトロノーム
pd_lesson02_basic2.pd

-0〜7の数値を繰り返し出力するメトロノーム
pd_lesson02_basic3.pd

※コメントボックスへの日本語の直接入力はできません。テキストエディタなどで日本語を書いてからコメントボックスへコピペしています。

フォントを見やすくする

日本語のコメントはデフォルトだとサイズが小さくて見にくいので、サイズを変更できます。
編集メニュー - フォントでフォントウィンドウが表示されます。
フォントサイズを変更してOKボタンをクリックします。
フォントウィンドウ


データの流れ

Pdでのデータの流れは上から下が基本です。
ただし、オブジェクトのアウトレット→別のオブジェクトのインレットの接続になっていれば、オブジェクトの配置の上下は関係ありません。
どちらも同じ機能

ここでデータの種類や流れ方を理解するために、以下のパッチを触ってみましょう。

-メッセージボックスからプリントする
pd_lesson02_basic4.pd

-出力順序を整える
pd_lesson02_basic5.pd

オブジェクトに複数のアウトレットがある場合、出力の順番は常に右から左なので、これで混乱しません。

SendとReceive

ラインでつながなくても、データを送る・受け取るためのオブジェクトです。[send][receive]の引数は好きな名前にできます。

-sendとreceive(2つとも開いてください)
pd_lesson02_basic6.pd
pd_lesson02_basic7.pd

[send]や[receive]とつながっていなくてもデータが送られてくるナンバーボックスには、インレットやアウトレットがありません。これはナンバーボックスのプロパティ画面(設定画面)でsendシンボルやreceiveシンボルというのを設定しているからです。

プロパティ画面を出すには、Ctrl+クリックし、カスケードメニューから[プロパティ]を選択します。


サブパッチ

パッチの中に入れ子状のパッチを作ることができます。それがサブパッチです。
これを使うと、ゴチャゴチャしたラインを減らしてスッキリした見映えにできます。
[pd xxx]でオブジェクトを作ります。xxxは好きな名前でOKです。

新規パッチを開いて、[pd doraemon]というオブジェクトを配置してください。doraemonというのは自由につけた名前です。「pd」と「doraemon」の間には半角スペースが入ります。
オブジェクト名は必ず半角英数字で入力してください。
すると[doraemon]という名前のパッチウィンドウが開きます。
その中に[inlet]と[outlet]というオブジェクトを配置します。

[inlet]と[outlet]
するとサブパッチのオブジェクト[doraemon]にインレットとアウトレットができます。
 pd_lesson02_basic2.pdを開いて以下のように一部をコピペしましょう。

メインパッチ

[pd doraemon]の中
メッセージボックスは書き換えます。できたらメインパッチを「doranobi.pd」と名前を付けて保存します。拡張子の「.pd」は自動的に付加されますので「doranobi」と名前をつけるだけOKです。

これで「DORA」と「NOBITA」の文字列がPdコンソールウィンドウに交互に表示されるパッチができました。
ここからさらに改良して、音を鳴らせるようにしていきましょう。

音を読み込んで鳴らす

WAVファイルやAIFFファイルなどの音のファイルを鳴らしてみましょう。
doranobi.pdを開いたまま、pd_lesson02_basic8.pdのパッチを開いてください。

Array(アレイ)という箱に音の波形を読み込んで、[tabplay~]で鳴らすという構造です。

しかし、指示通りに[read -resize doradora.wav sound_dora( のメッセージボックスをクリックしても、なぜかArrayに音ファイルが読み込まれません。
これはpd_lesson02_basic8.pdと同じ階層に音のファイルがなく、dorasoundというフォルダの中に音のファイルがあるためです。

そこで、[declare -path dorasound]に追加してから、パッチを保存して閉じてください。
再度開いてから[read -resize doradora.wav sound_dora( をクリックすると、音ファイルがアレイに読み込まれます。
この解決方法については後ほど説明します。

sendでデータを飛ばす

doranobi.pdに[send suneo]を作って[pd doraemon]のアウトレットにつなげます。
[s suneo]からpd_lesson02_basic8.pdの[r suneo]に文字列データの「DORA」「NOBITA」が送られます。
これで[metro]を動かせば「ドラえもん」と「のび太」の音が交互に鳴ります。
PdコンソールウィンドウでDSPをONにすることをお忘れなく。

音ファイルの読み込みについて

通常は、同じ階層に置いたファイルやパッチは、ファイル名を指定しただけで読み込むことができます。しかし、別の階層に置いたファイルを読み込むには、手続きが必要になります。
ここでは"dorasound"というフォルダの中にnobinobi.wavと他の音ファイルがあるので、階層構造は以下のようになります。


-----doranobi.pd
 |---pd_lesson02_basic9.pd
 |---dorasound------nobinobi.wav
                         |---doradora.wav
                         |---go.wav
                         |---come.wav

これから3種類の手続き方法について説明します。いずれかの方法で他のフォルダにあるファイルがPdの検索対象になります。

1. "読み込むフォルダ名/ファイル名"で指定する

[soundfiler]に入力する文字列のメッセージボックスで 「./dorasound/doradora.wav 」というようにフォルダ名を含めたパスを指定する方法です。

2. 検索するフォルダのパスを環境設定で指定する

Pdメニュー - 環境設定をクリックすると、「オブジェクト、ヘルプ、フォント等のためのPdの検索範囲」画面が表示されます。ここでNewボタンをクリックして、音ファイルの入っているdorasoundフォルダを指定します。Pdが検索する範囲としてdorasoundフォルダが登録されるので、その中のファイルやパッチの名前が自動的に認識されます。

3. [declare]を使う

パッチのどこかに[declare -path dorasound]を配置します。すると、そのパッチではdorasoundフォルダの中も検索範囲になります。

-path は[declare]のオプションというもので[declare]の「動作」を変更します。ヘルプファイルを見ると、-path の他に -stdpath などのオプションがあるのがわかります。
※この[declare]については「Pd Recipe Book」では扱っていません。

前述の解決方法は3番目の[declare]を使う方法でした。

ヘルプファイルを見る方法

ほとんどの各オブジェクトには、ヘルプファイル(パッチ)が用意されています。オブジェクトを右クリック - ヘルプを選択すると、ヘルプファイルが開きます。
ヘルプファイルもパッチです。編集モードであれば、必要な部分をコピペして自分のパッチに流用することができます。

※オブジェクトによってはヘルプファイルが存在しない場合もあります。
※変更したヘルプファイルは間違えて上書き保存しないようにしてください。元のヘルプファイルが失われます。


ランダムに4つの音を鳴らす

pd_lesson02_basic8.pdを閉じてから、pd_lesson02_basic9.pdを開いてください。
理由は同じ名前のArrayが複数、同時に存在すると、Pdが混乱してちゃんとArrayに音ファイルが読み込まれないことがあるからです。同一のArrayが複数存在すると、Pdコンソールウィンドウにもエラーメッセージが表示されます。

pd_lesson02_basic9.pdの中には、4つの音を鳴らすためのArrayや[tabplay~]があります。
doranobi.pdで[random 4]に入れ替えます。

[pd doraemon]の中の[select]とメッセージボックスを増やします。
ここでメインパッチをdoranobi2.pdとして保存しておいてください。

Toggleボタンにペケをつけて[metro]を動かすと、4つの声がランダムに鳴るパッチができました。
[metro]のスピードを変更してみると、聴こえ方が変わります。

今回はここまでです。

今回やったこと

  • Pure Dataの基本的な概念について理解した。
  • Pure Dataの編集モード、実行モードを体験して理解した。
  • サブパッチを作ってみた。
  • [send][receive]を理解した。
  • ショートカットキーの操作を体験した。
  • 音ファイルの再生をした


No comments:

Post a Comment