Midi Music Flash Cards

1.0.3 GPL (GNU General Public License)    
A music sight-reading trainer






Midi Music Flash Cards is a music sight-reading trainer that generates flashcards dynamically according to "modes" as specified through a handful of menus across the top.

In auto-mode it continuously generates flashcards, with controllable time intervals between MIDI playback and a further time interval between displaying written feedback about the key and notes.

Sit down at your keyboard, or piano, and somehow get this application running on a screen in front of you. Select the key you wish to work in from the KeySigMode menu, select the general LH-RH structure, ie. "Single LH/Chord RH", etc, from the NoteMode menu, select the "auto" run-mode from the RunMode menu, and select the "Simultaneous" stacking mode from the StackingMode menu. Now adjust the left slider along the bottom of the flashcard panel so that it is positioned somewhere in the middle of the available range; this sets the time interval between showing of the notes and playing of the notes, ie. the time interval during which YOU are supposed to play the notes -- before the application plays them to you for confirmation.

When the application plays the notes it simultaneously shows the info structure in the bottom panel. The middle slider sets how long this info stays around before proceeding directly to the next flashcard.

The last slider sets the time interval between notes during playback, proceeding from lowest to highest. The default is zero, in which case the notes are played simultaneously.

Having finished configuring the application, now push the "run" button and begin your practice. The application will generate a new set of notes with the key signature you have set. You play the notes, and soon the application plays them, too. Then comes the next set...and so on...

After several hours of this exercise there will come a time at which it all suddenly becomes automatic.


The main purpose is to dynamically generate an infinite sequence of random notes to be played in a particular key. Every flashcard is built on-the-fly via a system call to the LaTeX interpreter (Ghostview, actually -- a low-level part of the LaTeX system, I believe it is correct to say). So nothing is hard-coded, everything is dynamic. Since the flashcard image creator runs in a separate thread, you can make changes through the menus in real-time while the application continues to generate new cards. In this way you can create some interesting new music. I particularly like using the mode "Single LH/Chord RH" in D-Flat Major. In this mode, then, as an example, the application will pick random LH notes and random chords for the RH (Right Hand). They don't always sound good together, but other times they sound really good together. For that reason, there is the "save" button. The "save" feature is not very robust, at present, and so should be used carefully, but it allows you to save and playback some things that were generated during your session. More documentation on that, later, maybe. Meanwhile, just play with it, carefully, to see how it works. Note that it creates/saves files into the main application directory, so it's messy like that. Oh well...


Here are the chords known unto the application: Major, Minor, Diminished, Augmented, Major 6, Minor 6, 7, Major 7, Minor 7, 7 Flat 5, 7 Sharp 5, Diminished 7, 9, 7 Flat 9, 7 Sharp 9, Major 7 +9, 9 Flat 5, 11, Augmented 11, 13, and 13 Flat 9. The piano logic is all contained in the file "keyboard.py", so you can see how things are organized by browsing that file.

The application attempts to construct appropriate inversions to fit notes withing reasonable proximity of the center of each staff.

The application knows about every key signature, and all controls are implemented.

In addition to various NoteMode combinations there are also some "scale" options, one of which, "Scale LH/Scale RH", is shown in the animated slide, above. It's not a very useful feature, it's just included in the slides above to show an alternative to the "Simultaneous" StackingMode.

Since the flashcard-generator runs in a thread, the application can get out-of-sync if the LaTeX compilation process takes longer than the interval you have set, in which case the notes will cease to correspond to the picture. In this case, just stop and give it a second to finish playing whatever it's got back-logged. Since Java is involved, sometimes it may even be necessary to kill-and-restart the application. The first thing you should do when the app starts up is put a little time interval between flashcards via the first slider.
Last updated on January 19th, 2010
Midi Music Flash Cards - Midi Music Flash Cards demonstration

0 User reviews so far.