« FP10-サウンド関連のリンクをまとめてみる(メモ) | メイン | 遅ればせながらAS3に足を踏み入れた・・・ »

ビート(タイム)テーブルを作ってみる

前回は、ピッチテーブルを作りましたが今回は音楽ソフトウエアに欠かせないテンポ値から計算するビート(1拍)テーブルです。つまり一拍ごとの時間値の配列(タイムテーブル)です。

■ 引数に必要な要素は:(下記サンプルコードの場合)


  • tempo(テンポ)テンポ120なら、120.0

  • beat(一小節の拍数)4拍子では、4

  • bars(小節数)例えば8小節なら、8

  • _offset(オフセット)音楽的な1小節1拍目が「0」のときは、0.0


offset値は、オーディオデータとシンク(同期)する場合などの時に音楽的な曲頭とオーディオデータの時間軸の頭が一致しない場合にオフセット値を設定します。

下記サンプルの場合、Math.round()で整数に丸めていますが小数点以下も欲しい場合は外してください。

function create_beat_array(tempo:Number, beat:int, bars:int, _offset:Number):Array {
	var interval_time:Number = Math.round (60 * 1000 / tempo);
	var total_beats:int = beat * bars;
	var beat_array:Array = [];
	for (var i:int= 0; i < total_beats; i ++) {
		beat_array [i] = _offset + (interval_time * i);
	}
	return beat_array;
}
  • このエントリーをdel.icio.usに追加する
  • このエントリをニフティクリップに追加
  • POOKMARK Airlinesへ追加
  • このエントリをLivedoor クリップに追加
  • このエントリーをはてなブックマークする
スポンサード リンク


トラックバック

このエントリーのトラックバックURL:
http://www.logicalyze.com/as2app/mt-tb.cgi/165

コメントを投稿

(いままで、ここでコメントしたことがないときは、コメントを表示する前にこのブログのオーナーの承認が必要になることがあります。承認されるまではコメントは表示されません。そのときはしばらく待ってください。)

認証キー を入力してください: