2012.7.30 ASJ Summer Seminar@Sierra resort Hakuba

Puredataによるサウンドプログラミングの紹介
およびリアルタイムデモ
Introduction of sound programing by Puredata with realtime demonstrations

岡本 拓磨 / Takuma OKAMOTO, Ph.D.
情報通信研究機構 / NICT
okamoto(̲at̲)nict.go.jp, http://www.okamotocamera.com
今日の話で使用したソース：http://www.okamotocamera.com/asj̲ss̲2012.zip
1Puredataとは?
Puredata (http://puredata.info/)
Pd (aka Pure Data) is a real-time graphical programming environment
for audio, video, and graphical processing. It is the third major branch of
the family of patcher programming languages known as Max (Max/FTS,ISPW Max, Max/MSP, jMax, etc.) originally developed Miller Puckette andcompany at IRCAM.

Pd-extended

フリーソフトシェアウェアオブジェクトを線でつなげるだけの簡単お手軽サウンドプログラミングツール

2

Pdで何ができるの??
ただ，，フリーソフトだからといってなめてはいけない

実はかなりいろんなことができます
今日はそのほんの一部を紹介します3

Pdで何ができるの?? (1)特徴
リアルタイムマルチメディア処理
音を生成 (osc~, noise~)
音ファイルの再生，録音 (readsf~, writesf~)
フィルタリング (lop~, hip~)
フーリエ変換，畳み込み(rﬀt~, partconv~)
画像表示，動画再生 (gemwin)
右クリックでヘルプ，そしてヘルプもそのままパッチ，実行やコピペができて便利4

デモパッチ
WAVファイル読み込み，再生

静止画，動画の読み込み，再生

ボリューム調整
正弦波

D/A
A/DFFT

レベルメータWAVファイル作成，録音
5

(例) rﬀt~のヘルプ

6

Pdで何ができるの?? (2)特徴
リアルタイムマルチメディア処理
音を生成 (osc~, noise~)
音ファイルの再生，録音 (readsf~, writesf~)
フィルタリング (lop~, hip~)
フーリエ変換，畳み込み(rﬀt~, partconv~)
画像表示，動画再生 (gemwin)
右クリックでヘルプ，そしてヘルプもそのままパッチ，実行やコピペができて便利

クロスプラットフォーム
Windows, MacOS(山 Lionでも動作) and Linux (Ubuntuなど)

どのOSでも同じパッチが使える7

Pdで何ができるの?? (3)特徴
リアルタイムマルチメディア処理
音を生成 (osc~, noise~)
音ファイルの再生，録音 (readsf~, writesf~)
フィルタリング (lop~, hip~)
フーリエ変換，畳み込み(rﬀt~, partconv~)
画像表示，動画再生 (gemwin)
右クリックでヘルプ，そしてヘルプもそのままパッチ，実行やコピペができて便利

クロスプラットフォーム
Windows, MacOS and Linux多チャネルオーディオ対応
1ファイルにつき64チャネル (readsf~ 64, writesf~64)

8

readsf~ 32
マルチチャネルWAVファイルの作り方
MATLABの場合
1. 音の長さ(サンプル) チャネル数の行列Xを用意
2. wavwrite(X,サンプリング周波数,ʼファイル名.wavʼ);9東北大時代：こんなシステムもpdで作った
157 ch3次元音響+眼鏡立体視の3次元視聴覚ディスプレイ
157 chの音はPd@Macで処理
映像はWindows，映像と音の同期はMac側のPdで処理

T. Okamoto et al. 2009 10

ちなみに100チャネルのコード

こんなの書いてられるか〜!!

11

Pdで何ができるの??
特徴
リアルタイムマルチメディア処理
音を生成 (osc~, noise~)
音ファイルの再生，録音 (readsf~, writesf~)
フィルタリング (lop~, hip~)
フーリエ変換，畳み込み(rﬀt~, partconv~)
画像表示，動画再生 (gemwin)
右クリックでヘルプ，そしてヘルプもそのままパッチ，実行やコピペができて便利

クロスプラットフォーム
Windows, MacOS and Linux多チャネルオーディオ対応
1ファイルにつき64チャネル (readsf~ 64, writesf~64)

シンプルなソースコード
スクリプト処理で複雑なコードも楽ちん生成

12

Pdのソースコード
実はただのテキスト
オブジェクトの種類，位置座標，それらのつなぎ方のみで記載
法則さえわかればスクリプトでマルチチャネルも楽勝#N canvas 652 403 450 300 10;#X obj 90 93 noise~;#X obj 90 120 *~ 0.1;
#X obj 135 155 dac~ 1;#X connect 0 0 1 0;
#X connect 1 0 2 0;

パッチ

パッチのソース
13

Pdのソースコード
実はただのテキスト
オブジェクトの種類，位置座標，それらのつなぎ方のみで記載
法則さえわかればスクリプトでマルチチャネルも楽勝

1. キャンバス定義#N canvas 652 403 450 300 10;#X obj 90 93 noise~;#X obj 90 120 *~ 0.1;
#X obj 135 155 dac~ 1;#X connect 0 0 1 0;
#X connect 1 0 2 0;

パッチ

パッチのソース
14

Pdのソースコード
実はただのテキスト
オブジェクトの種類，位置座標，それらのつなぎ方のみで記載
法則さえわかればスクリプトでマルチチャネルも楽勝

1. キャンバス定義
2. オブジェクト定義

パッチ#N canvas 652 403 450 300 10;#X obj 90 93 noise~;#X obj 90 120 *~ 0.1;
#X obj 135 155 dac~ 1;#X connect 0 0 1 0;
#X connect 1 0 2 0;

パッチのソース
15

Pdのソースコード
実はただのテキスト
オブジェクトの種類，位置座標，それらのつなぎ方のみで記載
法則さえわかればスクリプトでマルチチャネルも楽勝

1. キャンバス定義
2. オブジェクト定義

3. つなぎ方定義
パッチ#N canvas 652 403 450 300 10;#X obj 90 93 noise~;#X obj 90 120 *~ 0.1;
#X obj 135 155 dac~ 1;#X connect 0 0 1 0;
#X connect 1 0 2 0;

パッチのソース
16

MAXのソースコード
MAXの特徴{線やオブジェクトがオサレ"patcher" : {"ﬁleversion" : 1,
"appversion" :"major" : 6,
"minor" : 0,"revision" : 3}

そんかしソースコードは複雑
スクリプトで多チャネル化はやや不向き{,"rect" : [ 25.0, 69.0, 640.0, 480.0 ],"bglocked" : 0,"openinpresentation" : 0,
"default̲fontsize" : 12.0,"default̲fontface" : 0,
"default̲fontname" : "Arial","gridonopen" : 0,"gridsize" : [ 15.0, 15.0 ],"以下，約この3倍の行

パッチ

パッチのソース17

Pdで何ができるの??
特徴
リアルタイムマルチメディア処理
音を生成 (osc~, noise~)
音ファイルの再生，録音 (readsf~, writesf~)
フィルタリング (lop~, hip~)
フーリエ変換，畳み込み(rﬀt~, partconv~)
画像表示，動画再生 (gemwin)
右クリックでヘルプ，そしてヘルプもそのままパッチ，実行やコピペができて便利

クロスプラットフォーム
Windows, MacOS and Linux多チャネルオーディオ対応
1ファイルにつき64チャネル (readsf~ 64, writesf~64)

シンプルなソースコード
スクリプト処理で複雑なコードも楽ちん生成

遠隔操作，ネットワーク通信
Open Sound Control (OSC) プロトコル
マシン間通信，モバイル端末通信(netsend, netreseive, udpreceive, unpackOSC)
iPad(もちろんiPhoneも)やKinectとの通信可能

18

OSC remote software

19

Mrmr
特徴無料!! (Apple App Store)
他のOSCソフトは有料(Touch OCS＠400円，など)
これもパッチはPd同様ただのテキスト
ジャイロ情報も取得可能
音のコントロールはもちろん実験参加者の回答にも便利

パッチのソース作成したパッチ

20

東北大時代：録音の方はPC4台
包囲型157 chマイクロホンアレイ
4台のPCはPdのUDP接続でコントロール(PC1がマスター，2〜4がスレイブ)

udpsendudpreceive

T. Okamoto et al. 2009 21

ポータブル型(?)32 ch視聴覚ディスプレイ

gemwinreadsf~ 32

udpreceive

どのコンテンツを再生するか，再生，ストップwith mrmr

T. Okamoto et al. 2012 22

スライドを画像化すればプレゼンでもきる
pdとiPadでプレゼンテーション

23

球形42チャネルスピーカシステム
1-9-14 42チャネルスピーカアレイによる球面調和関数を用いた放射指向性合成 (音響学会2012秋季研究発表会＠信州大学)◎岡本拓磨 (情報通信研究機構)，勝本道哲(勝本総合研究所)
iPadで放射音源(楽器の音など)をリアルタイムに回す

0.42.524

おすすめサイト (1)
こじ研 (http://www.myu.ac.jp/~xkozima/lab/avmed-pd1.html)
基本的な音や画像処理の関数を説明
WiiリモコンやiPadの使い方なども実はのっている25

おすすめサイト (2)Youtubeのレッスン (youtubeで「puredata」と検索)
動画で一つ一つの関数や方法を説明
レッスン33まである
すべて英語
逆に英語の勉強にもなる26

おすすめサイト (3)http://en.ﬂossmanuals.net/PureData/
Pd-extendedの関数のマニュアルがある27

おすすめ本
Pd Recipe Book -Pure Dataではじめるサウンドプログラミング
松村 誠一郎 (著)3,750.- (ISBN：978-4861007804) 2012/2/23発売

28

まとめ
フリーソフトでこれだけできる!!みんなPdを使おう!!
音信号処理
音響測定
多チャネルオーディオ再生(インタラクティブ処理も可能)
実験の回答(iPadが便利)

みんなでPdの情報を共有化しよう!!
英語の情報が多くて日本語の情報はまだまだ情報が増えればさらに使う人も増えて相乗効果

29