This example requires Jazz-Plugin v.1.0 or later.
Select meter and tempo and press the button. That simple!
<!DOCTYPE html> <html> <head> <title>Metronome</title> <style type="text/css"> .hidden { visibility: hidden; width: 0px; height: 0px; margin: 0px; padding: 0px; border-style: none; border-width: 0px; max-width: 0px; max-height: 0px; } </style> </head> <body> <h1>Metronome</h1> <object id="Jazz1" classid="CLSID:1ACE1618-1C7D-4561-AEE1-34842AA85E90" class="hidden"> <object id="Jazz2" type="audio/x-jazz" class="hidden"> <p style="visibility:visible;">This page requires <a href=http://jazz-soft.net>Jazz-Plugin</a> ...</p> </object> </object> <p> <span id=selectmididiv class="hidden"><label>MIDI Out:</label> <select id=selectmidi onchange='changemidi();'></select></span> <label>Beats:</label> <select id=beat onchange='changebeat();'></select> <label>Tempo:</label> <select id=tempo onchange='changetempo();'></select> <button id=play onclick='play();'>Play</button> </p> <script><!-- var Jazz = document.getElementById("Jazz1"); if(!Jazz || !Jazz.isJazz) Jazz = document.getElementById("Jazz2"); var playing=0; var interval=500; var timeout; var beat=4; var count; function play(){ if(!(Jazz && Jazz.isJazz)) return; if(playing==1){ playing=0; document.getElementById('play').innerHTML='Play'; clearTimeout(timeout); } else { playing=1; document.getElementById('play').innerHTML='Stop'; count=0; tick(); } } function tick(){ Jazz.MidiOut(0x99,count?33:34,127); count++; if(count>=beat) count=0; timeout=setTimeout(tick,interval); } function changemidi(){ Jazz.MidiOutOpen(select_out.options[select_out.selectedIndex].value); } function changebeat(){ beat=select_beat.options[select_beat.selectedIndex].value; } function changetempo(){ interval=60000./select_tempo.options[select_tempo.selectedIndex].value; } var select_beat=document.getElementById('beat'); for(var i=1;i<=8;i++){ select_beat[i-1]=new Option(i,i,i==4,i==4);} var select_tempo=document.getElementById('tempo'); for(var i=40;i<=240;i++){ select_tempo[i-40]=new Option(i,i,i==120,i==120);} var select_out=document.getElementById('selectmidi'); try{ var list=Jazz.MidiOutList(); for(var i in list){ select_out[i]=new Option(list[i],list[i],i==0,i==0); } document.getElementById('selectmididiv').className=''; } catch(err){} --></script> </body> </html>