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

このチュートリアルでは前回作成したリズムマシンに以下の機能を追加します。

  • スネアの他にキックとハイハットのパターンが作れるようにする
  • テンポの指定を可能にする
  • メインスイッチをつけて、リズムマシンの演奏をオン・オフできるようにする

それではまず、MMPエディターでインターフェースの拡張をしましょう。今回はスネア以外に2つの楽器のリズムパターンが打ち込めるようにするので、下図のようにヨコ16xタテ1の「grid」をあと2つ足します。この時上の部分に若干何もないスペースを残しておくのがコツです(理由はあとで説明します)。

ハイハットとキックを加える
ハイハットとキックを加える

また、「Prop」タブで、それぞれの「grid」の「Address」の項をhihatは「/hihat」、snareは「/snare」、kickは「/kick」とするのを忘れないようにしましょう(下図・サムネイルをクリックで拡大)。

hihatsnarekick

次に、「Doc」タブに戻り、「Number of Pages」の項を「2」に設定します。こうする事で、MMPファイルに2ページ目を追加する事ができます。ページの移動は、ウインドウ左下にある「Down」「Up」ボタンで行います。

2ページ目を作り、移動する
2ページ目を作り、移動する

2ページ目に移動し、2ページ目に以下のように、「toggle」と「knob」を追加してください、これらは演奏のオンオフのトグルスイッチ、テンポ調整を行う調整ノブとして使うので、それぞれに「power」、「tempo」のラベルをつけます。

2ページ目
2ページ目

また、トグルスイッチには「/power」、ノブには「/tempo」のアドレスを忘れずに設定してください(下図・サムネイルをクリックで拡大)。またKnobに関しては、BPM 40から160の範囲で店舗を設定可能にするので、Knob Rangeの項を120に設定してください。これによりKnobの最大値が0、最高値が120となります。

powertempo

これでインターフェースは完成です。次にPdパッチの作成に移ります。前回作った、リズムマシンのパッチを開き、下図のように変更を加えます。

変更を加えたリズムマシン
変更を加えたリズムマシン

若干いきなり、パッチが複雑で大きくなったので驚いたかもしれませんが、要は前回スネアドラムのために作ったものと同じ仕組をあと2つ複製しただけのものです。では変更点を1つ1つ見て行きましょう、まず、スネアの他にハイハット、キックのサンプルを使うので、新しいパッチではそれらのサンプルも「soundfiler」を使って読み込んでいます。もし、ハイハットやキックのサンプルをまだダウンロードしていない場合はここからダウンロードできます。

新たなサンプル
新たなサンプル

パッチ中央部の機構は、前回の「pack」に0と1のlistとしてリズムパターンを記憶しておく仕組みを3つの楽器分用意しただけのものです。これで、リズムパターンは3種類格納できるようになりましたが、1つのカウンターによってこれらが演奏されるので、ハイハット・スネア・キックの3つの楽器は同期します。

中央部
中央部

最後に左上の「route」は、3つの楽器以外にも「/power」と「/tempo」へのメッセージを抽出するようになっています。「/power」は単純に「metro」の上のトグルとつながっているので、これにより演奏の開始と停止する事ができるようになっています。「/tempo」はノブから0から120の範囲で数値が送られてくるので、それに40を足し、BPM40から160の範囲にスケーリングを行なっています。またこのBPMの値で15000を割ることで16文音符1つ分の長さをミリ秒で算出しています(60000をBPMで割った数が4分音符1つ分の長さなため)。

パッチ左上部
パッチ左上部

パッチの変更が終わったら、「rhythm_machine_dx.pd」の名前でセーブしてこのファイルを「Main Pd File」に指定し、iPhoneに転送し、MMPファイルをiPhone上でオープンhしましょう。リズムを打ち込み、Gridの上部の何もない空間をスワイプして2ページ目に移動し、「Toggle」をオンにしたら音がなりだすはずです。このように、2ページ以上のMMPファイルを使う場合にはページの中に空白を入れるのを忘れないようにしましょう。これがないとページ間の移動が不可能になります。

これで、ハイハット、スネア、キックからなるベーシックなリズムマシンがiPhoneで実現できました。

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

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください