Twitter

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

今回から2回にわたり、Roland TR-808 ような簡単なリズム・マシンをMobMuPlatで作成していきます。

まず、MMPエディターを立ち上げて、「Doc」タブを選び「Orientation」を「Landscape」モードにします。こうするとiPhoneを横に持って操作できるようになり、今回のようなプロジェクトには便利です。次に「Add」タブから「Grid」を選び、「Grid」を画面に足します。

[caption id="attachment_707" align="aligncenter" width="300"]「grid」の追加 「grid」の追加[/caption]

「Grid」は初期状態でヨコ4xタテ3ですが、これは調整可能です。一般的なリズム・マシンのように16分音符単位で、音の有無を指定できるようにヨコ16xタテ1にマスの数を変更します。変更するには「Prop」タブをクリックし、右のレイアウト画面上の「Grid」をクリックしてください。左側に「Grid Dimensions」という項目が現れますので、ここを「16」「1」にそれぞれ指定します。またメッセージのアドレスを「Address」の項を「/snare」に設定します。

[caption id="attachment_708" align="aligncenter" width="300"]マスの数を調整したGrid マスの数を調整したGrid[/caption]

「Lock」タブをクリックし、「Grid」の任意のマスをクリックすると[out]/snare 4 0 1のようなメッセージが出力されます。「/snare」に続く3つの数はそれぞれ「横方向のマスの位置(0からカウント)」「縦方向のマスの位置(0からカウント)」「オン・オフの状態」を意味します。下図の例では、左から5つめのマスをクリックして「オン」の状態にしたので、このようなメッセージが出力されています。もう一度、この赤くなっているボタンをクリックすると[out]/snare 4 0 0が出力され、ボタンのオフ状態を通知しているのがわかります。

[caption id="attachment_709" align="aligncenter" width="300"]Gridからのメッセージ 「Grid」からのメッセージ[/caption]

では、このメッセージをPdで受け取ってみましょう、MMP用のPdを立ち上げ、以下のようなパッチを作ってみましょう。

[caption id="attachment_732" align="aligncenter" width="121"]GridからのメッセージをPdで受信 GridからのメッセージをPdで受信[/caption]

「r fromGUI」「list trim」「route /snare」は前回と同じですが、その後にメッセージボックス「$1 $3」使われています。前述のとおり、/snareに続く要素はそれぞれ「横方向のマスの位置」「縦方向のマスの位置」「オン・オフ」となりますが、今回は縦が一列のグリッドなので、縦方向のマスは常に0なので、この情報は必要ありません。必要なのは1番目と3番目だけなので「$1 $3」を使って2番目の情報を切り捨てているのです。この下に「print」が付いているので、MMPエディターで「Lock」モードに入り、PdWrapper.pdを立ち上げて、エディター上で任意のボタンをクリックするとPdウインドウの上に「4 1」「4 0」などというメッセージが表示されるはずです。

次に、Pdパッチ内でどの拍で音を鳴るのか、どの拍で音を鳴らさないのかの情報をlistとして保存できるようにしましょう。やり方は、以下のように「route」と「pack」を組み合わせるだけです。こうすると、packの保持する16個のfloatから成るlistが「0」と「1」のシーケンスの形でリズムパターンの情報を保持する事になります。

[caption id="attachment_712" align="aligncenter" width="300"]「route」「pack」でリズムパターンをlist化 「route」「pack」でリズムパターンをlist化[/caption]

それでは、MMPエディターで以下のようなリズムを打ち込み、Pd上でbangを「f」に送ってみましょう、

[caption id="attachment_713" align="aligncenter" width="300"]MMPエディター上のリズムパターン MMPエディター上のリズムパターン[/caption]

以下のように、0と1のシーケンスで、エディターで打ち込んだリズムパターンがPdウインドウに表示されるはずです。

[caption id="attachment_715" align="aligncenter" width="300"]listとしてのリズムパターン listとしてのリズムパターン[/caption]

では今度はこの「pack」に保存されているlistから任意の拍の情報を得る仕組みを「lists split」等を使い以下のように作ります。このパッチ左上のナンバーボックスに、数値nを入力すると、listのn番目の要素が1か0かが下のナンバーボックスに出力されます。

[caption id="attachment_719" align="aligncenter" width="300"]listのn番目の要素を抽出 listのn番目の要素を抽出[/caption]

これの下に、「sel 1」「tabplay~」「Array」を組み合わせて、1の場合にスネアの音を鳴らす、0ならば鳴らさない仕組みを以下のように作ります。

[caption id="attachment_717" align="aligncenter" width="300"]スネアの音を関連付ける スネアの音を関連付ける[/caption]

次に、カウンターを作りlistの要素を最初から順番に100ミリ秒ごとに参照するようにします。さらに、パッチをロードした時に即座に演奏が始まるように、tglボタンの上にメッセージボックスの「1」と「loadbang」をつけておきましょう。

[caption id="attachment_798" align="aligncenter" width="300"]完成したリズムマシン 完成したリズムマシン[/caption]

これでPdパッチは完成です。

あとはいつものように、mmpの「Doc」タブでMain Pd Fileを指定し、pdの両ファイルをiTunesに転送するのみです。iPhone上でGridのインターフェースでリズムパターンを指定するとその通りのリズムが聞こえてくるはずです。

次回はこのリズムマシンに、テンポ変更、リズムをスタート/ストップするボタン、キック、ハイハットのための「Grid」を加え、さらに本格的なものにしていきます。

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

iPhoneでPdを使う (8) – リズムマシン作成<2>

Post a Comment

Your email is kept private. Required fields are marked *