Latest News
Well, after a long time with nothing happening, I've finally got back to doing some
work on Tete. It was kicked off by the creation of the Open JDK project, in
particular, Gervill which is now the detault synthesizer. Gervill is an open source,
pure Java implementation of the Java Sound API and includes a synthisizer which can use
SoundFont2, Downloadable Sounds, and plain audio files for is synthesis. It removes
the need to download the MIDI soundbank files from Sun. Hurrah! It hopefully gives
you a wider and more realistic set of instruments to play with while working
straight out of the box.
You can find compatible soundbank files around the net. Some examples are:
Along the way I've refactored some code, added bits and pieces here and there and generally had a clean up. The About Box has been improved to show details of the available MIDI devices that can be found on the box. In addition I've added a config screen for setting up the synthesizer for playback.
Background
Tete is an open source ear trainer. Ear training involves learning to recognise how different combinations of notes sound. It is useful for musicians to allow them to differentiate between the different combinations of notes that make up music
Tete allows you to select intervals, chords, or scales and play examples of the selected sounds in a random order. As each is played it is highlighted in the list. Once you think you can tell what is playing you can test yourself. A series of sounds will be played, again at random, and you attempt to identify what has been played.
You can control how each sound is played back by changing the midi instrument, the octave range allowable, root note, and whether the sounds are played ascending or descending. You can also adjust the length of the notes and the extent to arpeggio the playback.
Wikipedia has a good explanation of ear training.
Why call it Tete?
I live in London, and we British have a terrible habit of dropping random letters from words. It's just 'ow we are, init? So when I mentioned to a friend that I was training my ear with a computer program she asked which ear trainer I was using. I replied, pointing to my screen, "This ear trainer 'ere." It kind of stuck. I'm planning to use any donations made to the project to hire some management consultants to re-brand it one day.
Installation
Prerequisites
Tete is written in Java and requires the Java Runtime Environment (JRE) version 1.5 or above from Sun's website. It should run on any PC running Microsoft Windows or Linux and should also run on most Macs.
If you wish to use the original Sun Synthesizer you will also require a midi soundbank file. This doesn't come as standard with the JRE due to its size, but should be included with the JDK if you have it. It can be downloaded seperately. There are a number of versions of the file. The larger the soundbank file is the better quality the playback will be. I personally use the soundbank-delux.gm file which has much better sounding instruments than the default file. To install this file follow the instructions on Sun's site.
The program itself
Installint Tete is simply a matter of unziping the distribution file into a directory of your choice. On
Windows you might use c:\Program Files\Tete
assuming your installation of Windows is on your
C: drive.
If you have associated jar files with the java runtime you will be able to double click on the tete.jar file in the directory you unzipped the Tete files into.
Alternatively you can right click on the jar file and select Open with...
and select the java.exe from the JRE 1.5 bin directory which defaults to something like
C:\Program Files\Java\jre1.5.0_XX\bin
If none of the above works, you can use the command line: java -jar tete.jar
Technical Stuff
When I decided to write an ear training program Sun had just released version 1.5 of the Java language and I had never written a Swing application. I decided to take the opportunity to kill three birds with one stone, and write Tete using Swing and as many of the new features of JDK 1.5 as I could squeeze in. There's no technical reason why it couldn't have been done using JDK 1.4. That would have meant that more people could run it, but I didn't originally expect to release it to the public. So my appologies to anyone who's inconvenienced, but there you are. It's free, lighten up.