image provider

Rhythm Tutor


This essay does not describe an existing computer program, just one that should exist. This essay is about a suggested student project in Java programming. This essay gives a rough overview of how it might work. I have no source, object, specifications, file layouts or anything else useful to implementing this project. Everything I have prepared to help you is right here.

This project outline is not like the artificial, tidy little problems you are spoon-fed in school, when all the facts you need are included, nothing extraneous is mentioned, the answer is fully specified, along with hints to nudge you toward a single expected canonical solution. This project is much more like the real world of messy problems where it is up to you to fully the define the end point, or a series of ever more difficult versions of this project and research the information yourself to solve them.

Everything I have to say to help you with this project is written below. I am not prepared to help you implement it; or give you any additional materials. I have too many other projects of my own.

Though I am a programmer by profession, I don’t do people’s homework for them. That just robs them of an education.

You have my full permission to implement this project in any way you please and to keep all the profits from your endeavour.

Please do not email me about this project without reading the disclaimer above.

In 4/4 musical time, if you only use 8th notes, quarter notes, half notes, or whole notes there are only a limited number of possible rhythms. At each time slot there can be sound or silence. The previous note can be tied/joined to the previous or not.

It is thus possible to enumerate all possible rhythms and display the traditional music notation for them. All you need is a Unicode font that has glyphs for the four notes, or you can use png images and combine them on a Canvas.

You can also make the sounds, either with MIDI (Musical Instrument Digital Interface) (which Java now supports), or with mathematically synthesized sound.

You let people chose the rhythms and then hear them. You can make it into a game. You play the rhythm and they have to guess which musical notation corresponds.

You make the first note of each monotonous bar a little louder.

Other than 4/4 time you could do 3/4 or 5/5 or 6/6 etc.

You could use 1/3 notes, 1/5 notes. You could superimpose two rhythms on top of each other. What does a 6 beat rhythm sound like on top of a 7? The idea is to give a musician a tools to become exhaustively familiar with all the possibilities rather than sticking in familiar ruts.

Here is another similar projects you could tackle: play scales in tunings based on different numbers besides 12, e.g. where each note is the 16th root of two larger than the last, rather than the 12th root. You calculate the twelfth root of 2 as Math. pow( 2, 1.0d/12.0d ) in Java.

Experiment with what the analogous chords and arpeggios sound like.

Try transposing some public domain music such as Bach’s counter point to your new tunings to see what it sounds like.

Your program could be an application and Applet or a JWS (Java Web Start) app.

Name That Tune

This page is posted
on the web at:

Optional Replicator mirror
on local hard disk J:

Canadian Mind Products
Please the feedback from other visitors, or your own feedback about the site.
Contact Roedy. Please feel free to link to this page without explicit permission.

Your face IP:[]
You are visitor number