Max 8でメトロノームを作る

はじめに

MAX 8 の練習をするため、メトロノームを作りました。

alt text

メトロノームを作るためには、いくつかの機能を実現しなければなりません。

  • 高・低二種類の音を出す
  • 一定のリズムを刻む

音を出す

今回はシンプルな正弦波(sin波)を使うことにしました。cycle~ 周波数で目的の波を作ることができます。 alt text

これをezdac~等に接続すると、音を聞くことができます。

このままではただ音が鳴り続けているだけになってしまうので、音の大きさを決める信号を line~で作ります。 line~の仕様はやや複雑なので詳細はドキュメントを確認していただきたいのですが、ここは初期値, 目的値 その値に到達するまでの時間(ms) 目的値 その値に到達するまでの時間(ms) ..

形式のメッセージを使って制御します。 例えば0, 1 30 1 100 0 300の場合は、初期値が0で、30 msec をかけて 1 になり、100 msec をかけて 1 となり(すなわち 100 msec の間、1 を維持する)、300 msec をかけて 0 になります。 以下のような波形になります。

alt text

この波と sin 波を乗算することで、メトロノームのクリック音を作ります。

一定のリズムを刻む

一定のリズムを刻むには metro インターバルを使います。指定したBPMからインターバルの計算を行うのには exprを使いました。ちょっと複雑な数式を計算するのに便利です。

140 bpmの時には、インターバルは 428 msecとなります。 alt text

今回は 4 / 4 拍子固定で、電子メトロノーム風に小節の先頭の音だけを高くしてみました (cycle~の周波数は frequency 周波数メッセージで変更することができます)。

最後に

これだけ小さなパッチャーでもメトロノームを作ることができるのは面白いですね。おしまい。