Twitter

iPhoneでPdを使う (6) – Shakeでエアードラム?

このチュートリアルでは、iPhoneを振った時にドラムの音を鳴らすエアー・ドラム(?)のプログラミングを通して、iPhoneを「振る」動作と音を結びつける方法を勉強します。

iPhoneの「振る」動作と音を結びつけるのはそれほど難しくはありません。MobMuPlatのエディターを見ていると「Lock」タブの中に、「Shake Gesture」とラベルの貼られたボタンが見つかり、このボタンを押すと、[out]/system/shake 1 というメッセージが出力されます(下図)。

[caption id="attachment_681" align="aligncenter" width="300"]shake gesture shake gesture[/caption]

「Shake」とは英語で「振る」という意味です。お察しのとおり、このメッセージはiPhoneを振る動作をした時、自動的に生成されiPhoneに送られるものです。この「Shake Gesture」のボタンはこのiPhoneを振った時に出力されるメッセージを擬似的に生成するものです。

では、このメッセージをPdパッチで受ける仕組みを作ってみましょう。以下のようにMMP用Pdで、「r fromSystem」を作り「list trim」と「route /shake」、「sel 1」を「bng」をそれにつなげます。

[caption id="attachment_683" align="aligncenter" width="300"]「振る」ジェスチャーの検知メッセージをPdパッチで受け取る 「振る」ジェスチャーの検知メッセージをPdパッチで受け取る[/caption]

「r fromGUI」で、ボタンへのタップなど、マルチタッチのイベントを受け取れる事は前回勉強したとおりですが、「r fromSystem」を使うとセンサーやジェスチャーなどのシステムからのイベントを受け取ることができます。あとのメッセージ抽出方法は前回と同じです。このパッチができたら、「PdWrapper.pd」を開いて、「Shake Gesture」ボタンをクリックしてみましょう。パッチ内の「bng」が点滅すれば成功です。

それでは、早速これをドラムの音と関連付けてみましょう。前回使ったサンプルの中のスネアドラムの音を「Array」に読み込み、「tabplay~」でbangと関連付けます。すると、「Shake」ボタンをMMPエディター上で押した時に、スネアの音が鳴るようになります。それを確認したら、このPdパッチを「shake.pd」としてセーブしてください。

shake

mmpファイルはとくに何もする必要がありませんが、わかりやすいようにラベルを中央につくり「shake me」と書いて下さい。この時、字のフォントや大きさは「Prop」タブで調整できます。
[caption id="attachment_685" align="aligncenter" width="300"]ラベルを作る ラベルを作る[/caption]

最後にいつもどおり「Doc」タブで「Main Pd File」を指定し、shake.mmpとしてファイルを保存します。

[caption id="attachment_686" align="aligncenter" width="212"]メインパッチの指定 メインパッチの指定[/caption]

Pdとmmpファイルを、iTunesで転送し、MobMuPlatで「shake.mmp」を選び、iPhoneを振ってみましょう、スネアの音が鳴るはずです。
思い通りに鳴らすには若干コツが必要です。iPhoneが「振る」動作を認識するのは、「振り下ろす」「振り上げる」のジェスチャーを連続でした時のようです。ですので、腕を振り下ろした後に、すぐに振り上げるようにしてみると、より確実に音が鳴るようになります。しかし、検知が行われるまで若干のタイムラグがあるため、残念ながら本当にドラムのように使うのはムリがあるかもしれません。

この項のパッチをダウンロード

iPhoneでPdを使う (7) – リズムマシンの作成<1>

Post a Comment

Your email is kept private. Required fields are marked *