Sketch of an Ear Training Software

publié le 10 December 2009

[fr] Quelques réflexions sur l'entraînement de l'oreille dans le contexte de l'harmonie jazz, avec un prototype de logiciel à télécharger.

"Top-down" ear training

I like "top-down" approaches to ear-training - like Cork's Harmony with LEGO Bricks, Coker's Hearin' the changes or Radley's Real Easy Ear Training Book - where you try and learn to recognize chord patterns as a whole rather than recognizing notes first, then chords and things such as cadences in the end.

Some ear training softwares allow to practise recognizing chord patterns, but AFAIK, most of them just play a pre-determined sequence of plain piano chords in root position. That's better than nothing, but I can't help thinking that it would be much more useful to practise in a more realistic situation - e.g. with a full rhythm section playing a more or less random realization of the pattern. I mean, wouldn't one develop more robust recognizing skills if presented a major cadence first like that (play mp3), next time like that (play mp3), next time still differently (play mp3), and so on?

A proof-of-concept implementation

A few days ago, I spent a couple of hours putting together a quick hack allowing to explore this idea. Of course, this is only a proof-of-concept implementation and should be considered as such, but if you're interested, just download and try it - and tell me what you think about it. If there is interest, I might end up developing something more polished.

The software should be self-explanatory. It will play a chord pattern (in a random key) repeatedly and present you with a choice of names. Just select the right name and click OK (or simply double-click the name). If the answer is right, the pattern will be removed from the list and another pattern will be played. If not, you will be asked to make another try. This will continue until you've correctly identified every chord patterns - or until you click "cancel".


Download, installation and customization

Warning: this software is in a very early stage of development and you'll probably need some experience with computers just to get it running. Please contact me if you can't make it work.

You still want to try? OK, let's go. You will need:

  • Python (use a 2.6.x version)
  • The latest version of MMA (tested with 1.3 on Windows and 1.5 on Linux)
  • A midi file player. The Windows version of the midi player of DIV's MIDI Utilities is included in the download. Linux users should probably use timidity++. I've been reported that it works with qtplay on MacOS.

I'm also using easygui, but I've included it in the download to make things a little easier.

To make it work:

  • Download and install all the dependencies above (python, MMA, and a midi player if you're not on Windows).
  • Download and unpack
  • If you're not on Windows AND you don't use timidity as a midi player, open in a text editor, find the line that reads

    midi_player = "timidity"

    and replace timidity with whatever you're using.

  • Launch

The names and patterns provided are a (more or less random) selection from Cork's LEGO bricks. If you want to customize them, just edit the file "patterns.txt". You can select which "grooves" will be used by editing the file "grooves.txt" (for more details on the grooves or on the chord names syntax, please refer to MMA's documentation).


Do you have questions, ideas, suggestions? Do you think such a piece of software could be useful to you?

Please let me know what you think!