說明:
此為簡易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>
沒有留言:
張貼留言