The drum kit uses the free source code for the Midi drums Github project by Chris Rogers and Ken Moore to which I've added a few extra sounds such as cowbell, claves and frog block. Included as a way to add sounds to the metronome. The drum machine is not connected with the metronome. You can try the original here and get the source code for your own projects here. I haven't changed anything except to add those extra sounds.
If you unselect "Add reverb and pitch changes" then the code uses the Sounds.js library to play the sounds instead (playing the same samples in a different way).
The Simple audio check box when selected uses a much simpler approach compatible with earlier browsers. It creates audio elements using
audio=new Audio(source);
audio.volume=volume;
audio.play();
if already playing it uses
audio.pause();
and it alternates between two duplicate audio elements for each ballin order to have no delay between pausing and playing the next sound.
The bounce animation is based on this tutorial and this code example. It is animated entirely in css. This means that it is browser optimized more than is usually possible in javascript. The browser handles skipping frames without impacting on the clock. The notes are played in response to event listeners - this means that it doesn't use the Javascript scheduling, which is not a very robust way of timing notes. Instead it uses whatever clock the browser is using in its source code. If there is too much load on the computer for some reason, then it skips beats but the notes it does play continue to be reasonably in time in my testing - preferred behaviour for a metronome rather than delaying notes.
You can enter expressions such as ratios, powers etc into most of the text fields. To parse these the code uses Peter Olsen's code example How to write a simple interpreter in JavaScript to which I just added support for the golden ratio as an extra constant ϕ in evaluator.js. I needed to use a custom expression evaluator becuase the Javascript eval() routine is considered unsafe, and could potentlially make this website vulnerable to hackers.
The
(mid edit)
The backgrounds are
I have duplicated them with their mirror images to make a seamless background if the user has a very wide screen or spread over two monitors etc.
The sounds are the ones included with the Midi drums github project to which I've added:
You can also use this as a web page for free here.
You can get the desktop app Bounce Metronome Pro for Windows (desktop) and Linux to play these and many more rhythms and with many more options and features
RhythmsSet almost any rhythm - simple, compound and odd time, subdivisions, swing, drum rudiments, polyrhythms, additive,... |
TempoEasy to set, with unlimited range, accelerating tempo, tap at tempo, speed drills & auto switching time signatures ... |
SoundsHear the rhythm clearly, with accents, on any midi instruments or as beeps, beat boxing support, chords,, ... |
BounceBounce visual effects, bouncing in conducting patterns, beat and sub-beat counts, also can use as a silent metronome ... |
“There's something about the bounce that keeps the practicing vibrant. It's a great and fun tool.”, Dan Axelrod - more testimonials and reviews »”
The first animation in this video shows the sprite bouncing in a conducting pattern. Note: the sprites are just for fun, you can set it to any image, any background, also white 3D baton, drum stick etc. The article mentioned at the end of the animation is: Pure Tones For Healing - Harmonious Lissajous Knots - Pendulum Waves - Sloth Canon Music From Numbers
Professional musicians are amazed by its advanced rhythm capabilities and advanced tempo features. These include speed drills, tempo and rhythm sequences, and almost any rhythm you can imagine.
Beginners find the bounce wonderfully easy to work with. The beginner's metronome is yours to keep whether or not you try or buy the lite or pro versions. All versions of Bounce Metronome are accessible for deaf, visually impaired, and blind musicians
Home page - Merging with metronome clicks for timing senstivity - Review by Martin Walker - Video resources - Review by Gary Eskow - Review by Aaron Wolf - Walkthrough videos of Bounce - Choose your version - Buy now
(screenshot of this page for social media sharing preview)