I do contract work for a living, which could include writing a program such as this. However, 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 any way you please.
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 (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 app.
![]() |
and suggestions to improve this page to Roedy Green : | ||
| Canadian Mind Products | |||
| mindprod.com IP:[65.110.21.43] | |||
| Your face IP:[38.103.63.61] | The information on this page is for non-military use only. | ||
| You are visitor number 1,152. | Military use includes use by defence contractors. | ||
| You can get a fresh copy of this page from: | or possibly from your local J: drive (Java virtual drive/mindprod.com website mirror) | ||
| http://mindprod.com/project/rhythmtutor.html | J:\mindprod\project\rhythmtutor.html | ||