說明:
此為簡易Tempo測量BPM之按鈕,
照著音樂拍子手動按下按鈕即可,
按的越多次平均量測值就越準確,
連點兩下後即可重置按鈕。
原始碼:
<script type="text/javascript">
var tempoboxy = new function() {
return {
num : 0,
oldtime : 0,
bpms : new Array(),
bpm : function() {
var i = 0;
var sum = 0;
var d = new Date();
var time = d.getHours()*1000*60*60 + d.getMinutes()*1000*60 + d.getSeconds()*1000 + d.getMilliseconds();
var tempoboxy = document.getElementById("tempoboxy");
this.bpms[this.num] = 60000/(time-this.oldtime);
if(this.oldtime==0) { //第一次記數
this.oldtime = time;
tempoboxy.innerHTML = "000.00 BPM";
} else if(this.bpms[this.num]>300) { //連點兩下重置
this.num = 0;
this.oldtime = 0;
this.bpms = new Array();
tempoboxy.innerHTML = "bpm measure";
} else { //累積記數計算
this.oldtime = time;
this.num++;
var len = this.bpms.length;
for(i=0;i<len;i++) sum += this.bpms[i];
tempoboxy.innerHTML = (sum/len).toPrecision(5) + " BPM";
}
}
};
};
</script>
<button id="tempoboxy" onClick="tempoboxy.bpm();" style="width:120px;">bpm measure</button>
沒有留言:
張貼留言