Pure Data キーワード一覧
Pdパッチで使用するオブジェクトやコマンドのリファレンスです。
基本操作
| 操作 | ショートカット |
|---|---|
| オブジェクトの配置 | Cmd (Ctrl) + 1 |
| メッセージの配置 | Cmd (Ctrl) + 2 |
| ナンバーの配置 | Cmd (Ctrl) + 3 |
| シンボルの配置 | Cmd (Ctrl) + 4 |
| コメントの配置 | Cmd (Ctrl) + 5 |
| 編集/実行モードの切替 | Cmd (Ctrl) + E |
| 表示の拡大 | Cmd (Ctrl) + Shift + ; |
| 一時的な実行モード | Cmd (Ctrl) 押しっぱなし |
| ヘルプブラウザ | Cmd (Ctrl) + B |
| bangの配置 | Shift + Cmd (Ctrl) + B |
| toggleの配置 | Shift + Cmd (Ctrl) + T |
| 水平スライダの配置 | Shift + Cmd (Ctrl) + J |
| 配列の配置 | Cmd + Shift + A |
| オブジェクトの削除 | 選択 → Backspace |
| オブジェクトのヘルプ(使い方) | オブジェクトを右クリック → ヘルプ |
| オブジェクト一覧の表示 | 余白を右クリック → ヘルプ |
基本概念
| 用語 | 意味 |
|---|---|
| パッチ | Pdのプログラムファイル |
| インレット | オブジェクトの上側にあるデータの入力場所 |
| アウトレット | オブジェクトの下側にあるデータの出力場所。インレットとアウトレットを線でつなぐとデータがやり取りされる |
| 値 | 数値や文字列のこと。インレットとアウトレットの間は細い実線で表される |
| シグナル | オーディオ信号をはじめとする連続データ。インレットとアウトレットの間は太い実線で表される |
| メッセージ | あらかじめ用意した文字列や数値。メッセージ内に $1 を入れると、インレットから入力された値に置き換えて出力する |
| ナンバー | 数値をリアルタイムに表示・入力するGUI |
| シンボル | 文字列を表示するGUI |
| 配列 | オーディオデータなどを格納する場所 |
| DSP | シグナルのリアルタイム演算処理。コンソール右上のチェックボックスをONにするか、オーディオ出力のボリュームを上げると処理が始まる |
音の生成
| オブジェクト | 説明 | 使い方 |
|---|---|---|
osc~ | 正弦波オシレーター | [osc~ 周波数] |
phasor~ | ノコギリ波 | [phasor~ 周波数] |
noise~ | ホワイトノイズ | [noise~] |
else/tri~ | 三角波(ELSEライブラリ) | [else/tri~ 周波数] |
else/square~ | 矩形波(ELSEライブラリ) | [else/square~ 周波数] |
オーディオ入出力
| オブジェクト | 説明 | 使い方 |
|---|---|---|
output~ | オーディオ出力 | level 値 メッセージで音量設定 |
else/out~ | オーディオ出力(DSP ON/OFFスイッチ付) | ELSEライブラリ |
dac~ | デジタル-アナログ変換(オーディオ出力) | [dac~ チャンネル番号] |
adc~ | アナログ-デジタル変換(オーディオ入力) | [adc~] |
音量・エンベロープ
| オブジェクト | 説明 | 使い方 |
|---|---|---|
*~ | シグナルの乗算(音量制御に使用) | シグナル × シグナル or 数値 |
line~ | 値の自動変化(シグナル) | [目標値 時間(ms)] のメッセージ |
vline~ | 連続的な値変化 | [値1 時間1, 値2 時間2 開始時間, ...] |
delay | 一定時間後にbang出力 | [delay 時間(ms)] |
else/asr~ | ASRエンベロープ | ELSEライブラリ |
else/adsr~ | ADSRエンベロープ | ELSEライブラリ |
else/envgen~ | 自由なエンベロープ | [else/envgen~ -curve] |
演算
| オブジェクト | 説明 | 使い方 |
|---|---|---|
+, -, *, / | 四則演算(値) | [+ 数値] |
expr | 数式で計算 | [expr $f1 * 2 + $f2] |
mtof | MIDIノート→周波数(Hz)変換 | 中央ドが60 |
データのルーティング
| オブジェクト | 説明 | 使い方 |
|---|---|---|
s (send) | 値の送信 | [s 宛先名] |
r (receive) | 値の受信 | [r 宛先名] |
sel | 値の振り分け | [sel 値1 値2 ...](一番右のアウトレットは、一致しなかった値をそのまま出力) |
route | 最初の値で振り分け | [route アドレス1 アドレス2] |
change | 値が変化した時だけ出力 | [change] |
t (trigger) | 右→左の順に値を送る | [t f b] (f:数値, b:bang, a:文字列) |
フィルタ
| オブジェクト | 説明 | 使い方 |
|---|---|---|
lop~ | ローパスフィルタ | [lop~ カットオフ周波数] |
hip~ | ハイパスフィルタ | [hip~ カットオフ周波数] |
bp~ | バンドパスフィルタ | 中央:カットオフ, 右:Q値 |
フィルタの注意点
lop~以外は右インレットにvline~のアウトレットを直接接続できません- 値(細い線)とシグナル(太い線)の違いに注意してください
ディレイ
| オブジェクト | 説明 | 使い方 |
|---|---|---|
delwrite~ | ディレイバッファへの書き込み | [delwrite~ $0-delay バッファサイズ(ms)] |
delread~ | ディレイバッファからの読み出し | [delread~ $0-delay 遅延時間(ms)] |
cyclone/delay~ | ディレイ(cycloneライブラリ) | cycloneライブラリ |
$0 について
$0 はPdのパッチそれぞれに割り当てられたID番号です。$0-delay のようにバッファ名に使うと、パッチを複製した際の名前の衝突を防げます。
シグナルと値の変換
| オブジェクト | 説明 | 使い方 |
|---|---|---|
sig~ | 値→シグナル変換 | [sig~] |
snapshot~ | シグナル→値変換 | bangが来た時のシグナル値を出力 |
metro | 定期的にbang出力 | [metro 周期(ms)] |
else/s2f~ | シグナル→値(自動) | bangなしで常時出力 |
else/f2s~ | 値→シグナル | ELSEライブラリ |
else/numbox~ | シグナル値の表示 | 表示用GUI |
DSPに注意
シグナル関連のオブジェクトは、DSPをオンにしないと動作しません。コンソール右上のチェックボックスをONにするか、output~ のボリュームを上げてください。
音源ファイル処理
| オブジェクト | 説明 | 使い方 |
|---|---|---|
else/play.file~ | 音源ファイルの再生 | [else/play.file~ ファイル名 ループ(0/1) 自動再生(0/1)]。start/stop/loop 1 メッセージで再生・停止・ループ |
else/stretch.shift~ | ピッチシフト・タイムストレッチ | [else/stretch.shift~ バッファサイズ 初期ピッチ 初期テンポ]。ピッチ: 0=元, 1200=1oct(左から3番目のインレット)/テンポ: 100=元(%)(左から4番目のインレット) |
else/xselect~ | クロスフェード切り替え | [else/xselect~ チャンネル数 フェード時間(ms)]。左インレットにチャンネル番号(0, 1, 2…)を入力すると切り替わる |
else/xfade~ | クロスフェード | ELSEライブラリ |
else/rec.file~ | 録音 | [else/rec.file~ ファイル名]。ファイルはパッチと同じ場所に保存される |
soundfiler | wavデータを配列に読み込み | read ファイル名 配列名 |
tabplay~ | 配列のオーディオ再生 | [tabplay~ 配列名] |
.wav | 非圧縮音源のファイル形式 | サンプル音源などに使用 |
自動演奏
| オブジェクト | 説明 | 使い方 |
|---|---|---|
text define | テキストデータの定義 | [text define -k ファイル名]。実行モードでクリックするとテキストを編集・保存(Cmd (Ctrl) + S)できる |
text sequence | テキストの順次送出(宛先 値;) | [text sequence 名前 -g], auto:自動, bang:1ステップ, line 0:先頭へ |
else/drum.seq | リズムマシンGUI。bangで1ステップずつ再生 | [else/drum.seq 行数 列数]。[行番号 on(1)/off(0)] 形式の値リストを出力 |
else/tempo | BPMテンポ出力 | [else/tempo BPM -mul 倍数] |
random | ランダム整数出力 | [random 最大値] |
micro:bit連携(OSC)
| オブジェクト | 説明 | 使い方 |
|---|---|---|
else/osc.receive | OSCデータ受信 | [else/osc.receive ポート番号] |
else/osc.route | OSCアドレスで振り分け | [else/osc.route /アドレス1 /アドレス2] |
netreceive | ネットワーク経由のデータ受信 | [netreceive -u -b ポート番号](-u:UDP, -b:バイナリ) |
oscparse | OSCプロトコルに基づいてデータを解析 | netreceive の出力を解析。[アドレス 値] のリストを出力 |
list trim | リストの先頭セレクタを外す | oscparse が出力した [アドレス 値] を route 等で扱えるようにする |
list | 複数の値やシンボルを束ねる | [list] |
cyclone/scale | 値のマッピング | [scale 入力min 入力max 出力min 出力max] |
clip | 値のクリッピング | [clip 下限 上限] |
else/smooth~ | 平滑化(シグナル) | ELSEライブラリ |
GUI
| オブジェクト | 説明 | 操作 |
|---|---|---|
| bang | トリガー送信 | クリックで送信 |
| toggle | 0/1切り替え | クリックで切替 |
| ナンバーボックス | 数値表示・入力 | ドラッグで値変更 |
| 水平スライダ | 値の連続入力 | 右クリック→プロパティで上限・下限設定 |
| V. Radio | 縦に並んだラジオボタン。クリックすると選択中のインデックス(0〜スイッチ数−1)を出力する。画面右の Options からスイッチ数を変更可能 | Put > New > V. Radio で配置。選択状態で画面右 Options からスイッチ数を変更 |
その他
| オブジェクト | 説明 | 使い方 |
|---|---|---|
print | コンソールに表示 | デバッグ用 |
comport | シリアル通信 | [comport デバイス番号 ボーレート] |
pd サブパッチ名 | サブパッチ | パッチ内にサブパッチを作成 |
clone パッチ名 | パッチの複製 | 同じパッチを複数生成 |
豆知識
ウェーバー・フェヒナーの法則
人間の主観的な感覚量は物理量の対数に比例するという法則。音量の変化を自然に感じさせるには、音量値を4乗するとよい。
楽音の構造
楽器のような音は、基音(一番低い音)とその正数倍の倍音が合成された構造を持つ。osc~ を複数組み合わせることで、さまざまな音色を作ることができる(加算合成)。