MAX 8 の練習をするため、メトロノームを作りました。
メトロノームを作るためには、いくつかの機能を実現しなければなりません。
今回はシンプルな正弦波(sin波)を使うことにしました。cycle~ 周波数
で目的の波を作ることができます。
これを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 になります。 以下のような波形になります。
この波と sin 波を乗算することで、メトロノームのクリック音を作ります。
一定のリズムを刻むには metro インターバル
を使います。指定したBPMからインターバルの計算を行うのには expr
を使いました。ちょっと複雑な数式を計算するのに便利です。
140 bpmの時には、インターバルは 428 msecとなります。
今回は 4 / 4 拍子固定で、電子メトロノーム風に小節の先頭の音だけを高くしてみました
(cycle~
の周波数は frequency 周波数
メッセージで変更することができます)。
これだけ小さなパッチャーでもメトロノームを作ることができるのは面白いですね。おしまい。