水曜日, 8月 23, 2006

「サクラ」で時間がどう進むか確認する

音楽の時間の進み方は、1つの音符あたりの時間を音符の数だけ合計したものだ。

サクラ」では、標準では音符は4部音符(l=4)、1音符当たりの時間は60/120秒(Tempo=120)だから、cd と書けば「ドレ」と音が鳴って時間が1秒進む。

Tempoコマンドは1分間の拍数(4部音符の数(BPM))を決める。Tempo(60)のように記述すれば、60拍で1分だから、4部音符の長さは1秒になる。

テンポ
http://ja.wikipedia.org/wiki/%E3%83%86%E3%83%B3%E3%83%9D

さらに、この4部音符(拍)をいくつに分けるか(分解能)をTimeBaseコマンドで指定することができる。標準では、TimeBase=96になっている。この分解能単位をステップタイムといい、これが「サクラ」で指定できる時間の最小単位だ。

例えば、Tempo(60)、TimeBase(100)とすれば、時間を1/100秒単位で指定できることになる。

このステップタイムで音符の長さ(時間)を指定する場合は、次のように書く。

%ステップタイム

では、ここでちょっと実験してみよう。TimeBase(100);Tempo(60)のように設定して、時計の1秒単位と同期がとりやすいようにしてみる。

最初の30秒間は、1秒毎(10秒単位)にテンポを刻み、次の30秒間は、0.1秒毎(1秒単位)に同じようにテンポを刻んでみる。これで、ちょうど1分になるはずだ。

//---------- ここから ----------

TimeBase(100);Tempo(60)
CH(10)
$b{n(34)};$c{n(33)}
Rhythm{
 [3 b [9 c]]
 [3 [10 b%10 [9 c%10]]]
}

//---------- ここまで ----------



こんな感じで「サクラ」でメトロノームも簡単に作れてしまう。