JFilter を使って Sonar で和音の発音タイミングをずらす

拙作 JFilter を使って Sonar で和音の発音タイミングをずらすサンプルです。
こういうサンプル集みたいのを作ったほうがいろんな人に使ってもらえるのかなぁ…

// ノート毎にいくらずらすか
var d=10;
// 全体にかけるオフセット
var offset=0;
// 逆
var reverse=false;

// events を同じ time 値を持つもの毎に配列にまとめる
function parTime(events) {
	if(events.length==0) return [[]];
	result = [[events[0]]];
    for(var i=1; i<events.length; i++) {
    	if(result[result.length-1][0].time != events[i].time) {
        	result.push([events[i]]);
        } else {
        	result[result.length-1].push(events[i]);
        }
    }
    return result;
}

function onEvents(from, to, events) {
	// events をタイム毎に割る
    par = parTime(events);
    // tone で sort
    for(var i=0; i<par.length; i++) {
    	par[i].sort(function(a,b) {
        	if(!reverse)
            	return a.key - b.key;
            else 
            	return b.key - a.key;
        });
       	for(var j=0; j<par[i].length; j++) {
        	par[i][j].time += j*d+offset;
        }
    }
    // 配列を結合する
    result = [];
    for(var i=0; i<par.length; i++) {
    	result = result.concat(par[i]);
    }
	return result;
}