Tksolfege is a free music ear training program written in Tcl/Tk. It contains exercises for recognizing musical intervals, chords, sight reading and rhythm dictation. Such skills are a requirement in many university music departments and considerable practice is needed to develop such proficiencies. The program was designed for both the novice and experienced user.

The program was inspired by other similar and free programs such as Gnu Solfege and Ricci Adams' Another program LenMus deserves notable mention in particular for the rhythm exercises.

The software was designed to run on various platforms such Windows on the PC, MacOCX, and Linux. Audio output is produced using Steve Landers' muzic interface.

What is new

Version 1.61 Introducing solfege: identify the wrong note
Version 1.42 Introducing drum sequence exercise
Version 1.35 Introducing cadence identification exercise.
Version 1.28 Introducing complex chords in the chord and figured bass identification exercises. (See configuration section.)
Version 1.26 Introducing scale identification exercise.
Version 1.22 Introducing a figured bass exercise.

Where to find it

You can find tksolfege on or on

For Windows Operating System

Download tksolfege_setup.exe and run to install the program on your system. Now proceed directly to the section Using Tksolfege

For Mac OSX

Download the executable tksolfege-darwin-aqua.exe from The executable will request the soundfont default.sf2 which is included with the source code ( or tksolfege.tgz). Place the soundfont where the program will bind it (eg. in the same folder where tksolfege puts the file tksolfege.ini). As discussed in the next section, this default.sf2 is just there to get you started, you should replace it with a better soundfont. Unfortunately they are about 20 Mbytes.

For operating systems other than Windows

For other operating systems such a Linux or MacOSX you will require Tcl/Tk 8.4 or higher to be installed. Start tksolfege.tcl by calling the program "wish" (eg. "wish tksolfege.tcl"). If you do not have tcl/tk 8.4 installed you can get it from . You should install the 32-bit version since I had some problems loading the muzic package on the 64-bit system. Alternatively, you can install tclkit from and run tksolfege.kit. If you are installing tclkit, You should rename the tclkit downloaded file to tclkit, make it executable and put it into one of your bin directories (eg. /usr/bin or /bin) so that tksolfege.kit can be opened by tclkit.

For MacOS X, you require a recent build of Tcl/Tk (i.e. Tcl 8.4.11 or higher) and the aqua version is preferable.

Tksolfege.tcl requires various external packages and files. For convenience, these external packages were wrapped into a starkit or tclkit which is basically something similar to a zip file also but contains a "virtual file system". The tclkits and starkits are created by an application called sdx which is somewhat similar to zip and unzip but not as transparent. The term wrap is used to describe the process of creating a tclkit from a tk/tcl script. The reverse operation called unwrap produces a tclkit folder containing the original script (with a slight modification) and some other stuff. A tclkit folder can be converted into a starkit by another wrap operation which adds the tcl/tk runtime system.

I have not provided a starkit executable for other operating systems so you will need to run either tksolfege.tcl or tksolfege.kit. If you have tcl/tk 8.4 installed, then you can run tksolfege.tcl but you will also need the external package muzic and the external folder called glyphs. These can be found in the file. The muzic package was written by Steve Landers, so the latest version can be found in his site, muzic; however, for your convenience an 'unwrapped' version was also included in More details on where to place those folders follow. I have not managed to get the muzic package to load using the 64-bit version of tcl/tk, so you should install the 32-bit version.

If you are running tksolfege.tcl rather than tksolfege.kit, then it requires the muzic package to be in one of your autopath folders. In Windows, assuming you are running tksolfege.tcl instead of tksolfege.exe, you would place the muzic folder in c:/tcl/lib/. In Fedora 4 Linux, you can put it into any one of these folders /lib/, /usr/share, /usr/lib, /usr/share/tcl8.4 or /usr/share/tk8.4. (To get this list, start up tclsh and type "set auto_path" without the double quotes.) The glyphs folder should be in the same place as tksolfege.tcl.

Tksolfege.kit and tksolfege.exe already have the muzic package and glyphs folder built in, so no further configurations is necessary.

Muzic uses the built-in MIDI synthesizer on Windows and MacOSX platforms. (It did not work on the Mac system I tested.) For other systems, such as Unix and Linux, you will need a SoundFont file. (A default sound font comes with the muzic.kit and, for your convenience, is included in The default.sf2 is provided just to get you started and is low in quality in order to save disk space. I recommend that you find something better. Free soundfont files can be downloaded from

Once you have put a soundfont file on your system, it will be necessary to tell tksolfege.tcl and tksolfege.kit where to find it. Running tksolfege for the first time should create a tksolfege.ini file in your current folder. Edit tksolfege.ini and replace default.sf2 in the line soundfont default.sf2 with the path to the desired soundfont file. If you want to use the built-in MIDI synthesizer on your system, replace default.sf2 with the word none (this is the default on Windows). Note that if for some reason tksolfege.ini becomes corrupted and tksolfege refuses to start, simply delete tksolfege.ini and a new file will be created with the factory settings the next time you start tksolfege.

You may occasionally see a warning such as "fluidsynth: warning: Failed to pin the sample data to RAM; swapping is possible." I do not know how to eliminate this message.

On Linux, tksolfege uses the Open Sound System (OSS). Some new versions of Linux now use the Advanced Linux Sound Architecture (ALSA) instead of OSS. As a result you will get the error message "cannot find /dev/dsp" or "cannot find /dev/mixer" and the program will abort. To get it working you need to install oss-compat and alsa-oss packages on your system. After rebooting, you should find the /dev/dsp and /dev/mixer. This worked on Debian 6.0.4, however I did not manage to fix Ubuntu 11.10.

Using TkSolfege

Tksolfege has 10 exercises for developing proficiency in ear training and music teory. All of these exercises share a common graphical user interface. For each exercise, there is a new button which creates a new question, a repeat button which repeats the question and an answer button which returns the answer in the event that you give up. The config button is used for modifying the behaviour of the exercise. For almost each exercise there is a separate menu. The configuration menu is quite powerful and can change the nature of the exercise from ear training to a theory exercise. A simple exercise can be made very difficult by making a small change to one of the parameters. The lesson button is used select different lessons which were designed more for the total beginner. As the user develops more proficiency, the menu allows allows the user to customize the lesson.

There are two aspects to learning how to use the program: (1) how to control the operation of the program and (2) how to use the program improve one's skills. Like physical fitness training one does not expect to achieve physical strength in a few days by working out continuously 8 hours a day. One can be easily frustrated by starting with a exercise which is too advanced. One can easily waste a lot of time by not doing the exercise in the right manner. If one is consistently confusing say the major sixth with the minor sixth, then one should configure the exercise so that it concentrates on just these two intervals. Once the user can distinguish the two intervals a new interval is introduced such as a tritone.

The interface will be described in detail using the chord identification and interval identification exercises. Other exercises are discussed more briefly in the rest of this guide.
tksolfege console

Chord Identification

There are two versions of this exercise - chromatic scale and diatonic scale. The former is more difficult so if you are a beginner it is recommended that you start with the diatonic scale. The latter exercise restricts the root note to one of the diatonic notes. The selected chords are also harmonic with respect to that scale. As a result the lesson menu is somewhat restrictive.

Starting tksolfege will display a this window or something similar. If you hear a sound when you click the button labeled new, everything should be running ok. Initially the program is set up for distinguishing the major, minor, augmented and diminished triads played in melodic mode. When you press new , you will hear the chords played in sequence. If this is too easy, you can change this mode to harmonic by selecting the menubutton currently labeled melodic; the menu button will now be labeled harmonic and all the notes will be played as a chord. If you chose both then you will hear it both ways. Once you have identified the chord, click one of the buttons in the left column.

If you identified the chord correctly, the program will acknowledge this with a message. If you were incorrect, it will play the chord you have chosen and tell you to try again. If you want to hear the unknown chord again, press the repeat button. If you give up, press the answer button.

After a few trials, you may wish to see how you have been doing. Clicking the stats button will display the confusion matrix illustrated below.
confusion matrix The overall accuracy and the average number of seconds you took to get the correct answer will also be displayed. Each row of the confusion matrix corresponds to the class of chord or interval chosen by the computer. The column corresponds to your response. Thus in this example there were 8 trials. In one instance the user misidentified the major3rd as a major2nd. In another instance the user misidentified the perfect5th as a perfect4. These appear as off diagonal terms in the matrix. The user spent an average of 3.13 seconds to get the correct answers. On the whole 6/8 or 75 % of the trials were correct.

If you leave the stats window exposed, tksolfege will update the matrix and other parameters as you proceed. The reset button on the top left will zero everything.
exercise menu Tksolfege was designed for music students of any level. The second row of buttons exercise, lesson, config are used to pick the type of exercise, the level, and configure the manner that the exercise is done. The current version has six different exercises. For now, we will concentrate on the first three exercises. The remaining exercises will be discussed in separate sections.

Figured Bass Exercise

figured bass exercise This is a fairly advanced exercise. The exercise is a variation of the diatonic chord identification exercise. In this exercise the goal is to identify the scale degree of the chord (eg tonic, dominant, subdominant and etc.) These degrees are indicated using Roman numerals, where lower case characters indicate minor or diminished chords and upper case characters indicate major or augmented chords. (Diminished chords are appended with a little circle while augmented chords end with a plus sign.) The exercise is more difficult if you also include inversions and sevenths which are notated using fractions like 6/3 for the first triad inversion and 6/4 for the second triad inversion. To assist you, clicking on the key signature button (to the right of the submit button) will play the current scale.
After clicking the new you need to enter both scale degree and the type of chord (normal, inversion, or seventh). The type of chord is selected using the row of radio buttons at the bottom. The selected chord should be seen in the box to the left of the submit button. Note that depending on how the exercise is configured some of the radio buttons may be disabled. If the radio button is disabled, it indicates that this is not one of your choices. In the current form of this exercise, it is not necessary to have the correct chord type to get the correct answer. However, you can find out the correct chord type by clicking the answer button.

When you click on the scale degree button, the program will play the chord on your speaker; but beware that it can be shifted by an octave from the current test chord depending on how the exercise was configured. This is a fairly difficult exercise and it may be easier if you play the chord in melodic form rather than harmonic so you can hear the sequence of notes. Also you can run the exercise in visual form rather than aural.

The configuration menu (discussed below) is similar to the diatonic and chordal identification menus. The scale mode (major, minor, ...) and key signature as well as the range of notes are relevant to this exercise. The type of chords to be included can be selected using the lesson button.

Interval Identification

By default, tksolfege starts up with the chord identification exercise. The exercise button allows you to switch to other training modes. The interval identification is similar to chord identification except now you must identify an interval which is played. The same configuration parameters apply, but now you can control whether the interval is played upward from the low note or downward from the top note. The sing inteval exercise is very different and relies on you to determine whether you are singing correctly. The graphical interface and lessons are the same as for interval identification but when you press new you hear only one note. You must try to sing a note for one of the displayed interval buttons. Depending on whether the up or down checked button is selected, you sing up or down. You then check the pitch you sung by pressing one of the interval buttons on the left. More discussion is given in the ear training section.

If you don't like using the mouse like me, there are a few keyboard short cuts. Tab or shift-tab will shift the focus to one of the chord or interval buttons. Pressing the spacebar will then invoke the button under focus. Pressing the keyboard letter r is equivalent to pressing the repeat button. Pressing n, is equivalent to the new button.

For each exercise there is a large menu of lessons. For example, for the interval identification exercise you would view the following choices.
interval lesson menu
The menu was designed for the beginning student. Generally, it is not easy to develop an ear for distinquishing the intervals and you should initially concentrate in distinguishing certain pairs. It may help to recall these intervals using particular tunes. (See the Easter Egg, mentioned near the end of this document.) More advanced student can configure the lesson using your own menu item.
configuration window

Configuring TkSolfege

Clicking the config button brings up the adjacent window. The program initially sets the instrument to the Acoustic Piano. By pressing the button labeled with this name, a list box appears allowing you to select other instruments. Generally, people develop an ear for recognizing harmonic chords played on a particular instrument. When they switch to other instruments with which they are less familiar they have problems.

Chord and interval identification is easy if they have the same tonality (e.g. Cmaj, Cmin, Cdim and etc.) Handling shifting tonalities, however, is a more challenging task for the user. Tksolfege chooses the tonality from a range of notes that are specified by the two sliders lowest pitch and highest pitch. These are specified in MIDI pitch units where middle C is at 60. Each octave is spaced by 12 MIDI units.

The duration of the note and the speed at which the chord is arpeggiated is adjusted by the note duration slider where the units are in milliseconds. The range of 200 to 1000 milliseconds should be quite adequate for most users.

Once you gain speed, you may want tksolfege to automatically pick a new chord each time you get the correct answer. Ticking the box labeled auto new will put the program in this mode. It will pause for 1.5 seconds after your last correct response. (If you wish to change this time, you will have to edit the tksolfege.ini file.)

Similarly, you may find it undesirable for tksolfege to play the chord or interval of your wrong choice. This can be turned off by unticking the checkbox labeled auto play. Personally, if I have made an error, I would prefer to hear my mistake.

The chord identification and interval identification can be configured to run as an ear training exercise or theory exercise or both. Normally, the aural radio button is selected and the program plays the interval or chord on your speakers. If visual is selected, the program will display the chord or interval in music notation. Selecting both will run the program both ways.

If you are running the diatonic chord identification exercise, you can select the scale and key signature using the menu buttons at the bottom of the screen (here major and C). These buttons are grayed out in the other exercises.

For any form of chordal identification including figured bass, you have the option of expanding the triad or seventh across two octaves by ticking the complex chord box at the bottom. For example the chord C-E-G may be expanded as:
complex 1 or complex 2
For triads, the bass note is repeated two octaves higher, the other chordal tones can take other octave positions. I suggest you initially try this option in visual mode to see this effect. There are four configurations for expanding the chord, which are selected at random. In order for this exercise to work well, the range of notes for the bass should lie in the bass octave or somewhat lower using the highest pitch and lowest pitch sliders.

Learning to distinguish chords (especially in harmonic mode) is quite difficult. If you are having trouble, I suggest you limit the pitch range and stay in the higher registers. Furthermore, you should work with only two chords (e.g. major and minor). The menu button labeled select lesson allows you to chose one of the levels. If none of the choices is suitable, then you can make your own lesson by selecting the item your own. A list of all the chords built in will displayed; tick the ones you want.

lesson maker

For your reference, here is a description of the chords and sevenths.


alternate name


maj major 1 3 5
majinv1 major 1st inversion 3 5 1
majinv2 major 2nd inversion 5 3 1
min minor 1 b3 5
mininv1 minor 1st inversion b3 5 1
mininv2 minor 2nd inversion 5 1 b3
aug augmented 1 3 #5
auginv1 augmented 1st inversion 3 #5 1
auginv2 augmented 2nd inversion #5 1 3
dim diminished 1 b3 b5
diminv1 diminished 1st inversion b3 b5 1
diminv2 diminished 2nd inversion b5 1 b3
majmin dominant 7 1 3 5 b7
majmininv1 dominant 7 1st inversion 3 5 b7 1
majmininv2 dominant 7 2nd inversion 5 b7 1 3
majmininv3 dominant 7 3rd inversion b7 1 3 5
maj7 major 7 1 3 5 7
maj7inv1 major 7 1st inversion 3 5 7 1
maj7inv2 major 7 2nd inversion 5 7 1 3
maj7inv3 major 7 3rd inversion 7 1 3 5
min7 minor 7 1 b3 5 b7
min7inv1 minor 7 1st inversion b3 5 b7 1
min7inv2 minor 7 2nd inversion 5 b7 1 b3
min7inv3 minor 7 3rd inversion b7 1 b3 5
halfdim7 half diminished 7 1 b3 b5 b7
halfdim7inv1 half diminished 7 1st inversion b3 b5 b7 1
halfdim7inv2 half diminished 7 2nd inversion b7 1 b3 b5
halfdim7inv3 half diminished 7 3rd inversion b7 1 b3 b5
dim7 diminished 7 1 b3 b5 bb7
dim7inv1 diminished 7 1st inversion b3 b5 bb7 1
dim7inv2 diminished 7 2nd inversion b5 bb7 1 b3
dim7inv3 diminished 7 3rd inversion bb7 1 b3 b5

When running the chord identification in aural mode, certain chords are disabled due to their inherent ambiguity. For example C E G# -- C augmented, C E Ab -- Ab augmented 1st inversion, and B# E G# -- E augmented 2nd inversion all sound the same.

Singing Exercise

You will quickly discover that recognizing the intervals and chords is not easy. Generally, people learn to sing the intervals before their ear is tuned to identify the intervals. You should be able to recognize the minor and major thirds and fifths before tackling the arpeggiated chords. Identifying harmonic chords is a challenging problem even for professional musicians. Musicians who can play chordal instruments like a piano, a guitar or a violin develop an ear for their particular instrument; but it may not extrapolate to other instruments.

There are many ways of doing the singing exercises. First configure the lowest and highest pitch to be inside your singing range. If you set the range to include several pitches, then each time you press new you should try to sing a note which is a fixed interval above or below this note. Singing below seems to be more difficult. (It helps to keep some tunes in your head. For example to get a descending major 2nd interval, think of the first two notes in the nursery rhyme "Three Blind Mice") Next try to sing several intervals below or above the note.

If this is too hard, you can work with a fixed tonic. Set the pitch range to only one note. Using the select lesson/your own menud button, display all the major or minor intervals up to an octave. Now try to sing random intervals from the tonic while checking your results aurally.

In general, you should work slowly taking your time to sing the interval if necessary. This is something you practice a few minutes every day. You can find quite a lot of advice from various web sites. (Search on solfege or ear training.)

Rhythm Dictation

Rhythm dictation is another aspect of ear training. A rhythm is played at a single pitch, you are told the time signature and number of beats, and you are requested to write down the rhythm in music notation. This is quite difficult for beginners, since you need to keep beat while listening and try to remember sections that you have heard. The rhythm is usually played several times.

rhythm dictation 1

If you select exercise/rhythmic dictation the tksolfege console will now appear like something here. Now if you press new a random rhythm will created consisting of say 4 beats from the rhythm elements shown in the top right frame of the console. The program will give you a count of 4 beats and then play this rhythm. Your object is to write out the rhythm using these four rhythm elements. To save you the trouble of using a paper and pencil, you can click on these four buttons, and your preliminary guess will appear like this.

rhythm dictation 2

At any time you can press repeat to hear the same pattern again. You can make corrections by clicking on any of your choices with your mouse pointer. This will place an edit window on this selection.

rhythm dictation 2

Now pressing any rhythm element button will substitute a new rhythm element at that location. When you finish, you should click on the same item to deselect it.

Pressing the answer button will show the correct pattern as illustrated below.

rhythm dictation 4

The number of correct beats will also be indicated. Once you have learned to manage with these simple patterns, you are ready to advance to other levels. Press the lesson button and choose one of the lessons. There are various levels and some of them get very hard. In order to handle tied notes some of the rhythm elements contain two beats.

There is another set of eight levels in compound meter, which you can assess by pressing lesson/compound rhythm. For compound rhythm, the beat is now based on a dotted quarter note. You should train yourself to handle both duple and compound meters. At the present time, the stats button has not been implemented for rhythmic dictation.

At some point you will need to customize the lesson, by clicking lesson/your own. A selection of rhythm elements as shown below will be displayed.

own rhythm

Tick the checkboxes of the rhythms that you wish to use and the selected rhythm buttons should appear at the top of the console. If you are having difficulty with particular rhythm patterns, I recommend that you restrict the rhythm elements to those few patterns.
rhythm stats Tksolfege keeps track of your performance on the rhythm exercise. If you click the stats button the following window should pop up on the screen.
The accuracy in percent refers to the number of beats that were correctly identified while you were doing this exercise based on the number of trials displayed. The average number of repeats that you needed is also listed.

Configuring Rhythmic Dictation

rhythm configuration The time signature, tempo, the MIDI instruments and loudness are all configurable. Press the config button and the following window should appear. If you specify more than one beat per bar, tksolfege will apply an accent to the first note of the first beat of the bar. (A weaker accent is applied to the third beat if 4 beats per bar is selected.) The accent makes that note louder by double (or single) the value specified in the scale selector assuming there is room to maneuver. Since the maximum loudness level allowable is 100, the loudness + 2*accent should be less than 100 in order for this to be effective. The number of beats that may occur in a trial is limited to 18, so the number of allowable measures depends on the number of beats per measure.

As you build up proficiency, you should increase the number of beats in a trial. You may wish to experiment with different tempos. Though tksolfege allows you to change the MIDI instruments, I recommend that you leave them as they are or avoid instruments with sustained tones. The woodblock and acoustic piano are probably adequate and ideal.

Solfege Dictation

solfege dictation

This is based on the "moveable doh" system where doh represents the tonic for the particular key signature. A short random melody consisting of a few notes is played and the first note of the piece is indicated using the do/re/mi... vocalizations in the first button of a series of unlabeled buttons. Using the buttons displayed in the above row(s), assign pitch values to the unlabeled buttons corresponding to the notes in the melody. Once you have labeled all the buttons, you can correct any mistakes by pressing the button you wish to edit. The color will change to blue to indicate that it has been selected and pressing any of the upper row buttons will change its designation. You can deselect the modified button by pressing it again or selecting a different button.

The new, repeat and answer buttons behave as usual.

Once you have finalized your designations, press the submit button. The incorrect labels will be highlighted in red.

The configuration menu allows you to select the number of notes in the short melody. The tonic pitch (assuming a major scale) can also be adjusted. 60 is middle C and it goes up or down in semitones. Ticking the small intervals checkbox causes the program to limit melodic intervals to 2 or less adjacent notes in the scale selected, when the program generates a new random sequence.

solfege configuration

The MIDI pitch specifies the pitch of the tonic of the major scale.

The lesson menu button provides a choice of 10 lessons of increasing difficulty. If you select your own, the following window

sofa selector

allows you to customize the scale for your own application. Lower and higher octave vocalizations are indicated with either a comma or apostrophe respectively.

Like rhythm dictation, solfege dictation also keeps track of your score. This is accessed using the stats button. The program considers all enharmonic notes as equivalent.

Solfege singing

This is similar to solfege dictation except that now the the melody is shown in common music notation, the first note is played, and it is your job to sing it.

sofa selector

To hear the first note again, press repeat To hear the answer you press the answer button. The program does not have ears, so you must use your own judgement on whether you sang the sequence correctly.
sofa sing selector The MIDI pitch parameter in the config window allows you to control the key signature and octave. The scale used is specified by the lesson menu button. For example, in lesson level 1, the scale is restricted to do, re, me . If MIDI pitch 60 (middle C) was chosen, the scale would be C,D, and E. If MIDI pitch 65 (F above middle C), then the scale would be F,G, and A. The program automatically displays the key signature of the major scale associated with this pitch. If clef control is set to automatic the program will choose either the bass clef or the treble clef based on the value of MIDI pitch. You can override this choice by specifying a particular clef. The transpose slider allows you to transpose the audio output by the specified number of semitones. This allows you to practice with different key signatures and clefs even though it may be out of the range of your voice.

If you are having difficulty sight singing these random patterns, you should probably practice singing these regular patterns in order to learn the intervals. You can select one of these patterns using the patternselector. The pattern codes are defined as follows.






Note that these patterns are effected by the notes selected in the lesson menu, and other parameters in the configuration window.

Solfege: Pick the Bad Note

The interface is similar to the Solfege Singing exercise. The program displays a sequence of notes and plays them on your speakers. One of the notes is played in the wrong pitch. Your goal is to click on that note.

Key Signature Identification
key signature recognition This is another theory exercise. The program displays the clef with the standard configuration of sharps or flats. Your goal is to identify the key signature. Click new to start, and then click the button corresponding to the key signature. You can adjust the maximum number of flats and sharps by clicking on the lesson button. The stats indicates how you are doing. If you wish to concentrate on particular key signatures you can select the lesson / your own menu button. The exercise can be configured to use other clefs or scale modes. Click the config menu button and select one of the clefs or modes in the configuration window using the menu buttons on the right.

Scale Identification

scale recognition The program plays the sequence of notes of one of the musical scales. Your goal is to name the type of scale. In the visual mode, the program lists the sequence of musical intervals in semitone units. For example, the sequence for the major scale is 2212221. There is a choice of 20 different scales that you can select using the lesson menu item. You can play the scales in either ascending or descending mode; however, the descending melodic minor scale is not played as customary so it can be distinguished from the natural minor scale.

For your reference here are the sequences of intervals for the various scales.
ionion/major 2 2 1 2 2 2 1 dorian 2 1 2 2 2 1 2
phrygian 1 2 2 2 1 2 2 lydian 2 2 2 1 2 2 1
mixolydian 2 2 1 2 2 1 2 aeolian 2 1 2 2 1 2 2
locrian 1 2 2 1 2 2 2 harmonic minor 2 1 2 2 1 3 1
natural minor 2 1 2 2 1 2 2 melodic minor 2 1 2 2 2 2 1
blues 3 2 1 1 3 2 bebop 2 2 1 2 1 1 2 1
hungarian 3 1 2 1 2 1 2 whole tone 2 2 2 2 2 2
major pentatonic 2 2 3 2 3 suspended pentatonic 2 3 2 3 2
man gong 3 2 3 2 2 ritusen 2 3 2 2 3
minor pentatonic 3 2 2 3 2 neapolitan 1 2 2 2 2 2 1

Cadence Identification

cadence recognition

A cadence is a progression of chords which ends a musical phrase. They are classified into at least five types (see Wikipedia - musical cadence ). For each test, the program chooses a random root for the musical scale, plays the scale and then the cadence. By default, the major scale is always selected but you may change it to the minor or dorian by going to the lesson menu. You should configure the program to play the cadence in harmonic mode (rather than melodic), though this option is available for debugging purposes. This exercise is still experimental and I entertain any suggestions for improvements.

Drum Sequence Recognition

drum sequence 0

The exercise is designed for developing the skill of transcribing drum sequences. The program picks one of many drum sequences encoded in one of the files in the drumseq folder which comes with the application and plays the sequence several times. You can use the repeat button to play the sequence again and adjust the tempo using the faster and slower buttons. You can stop the drum sequence by clicking the mouse pointer below the lattice of blue rectangles on the right side of the window. Right clicking will restart the sequence. The lattice of blue rectangles shown on the left is used to represent the sequence. Clicking on one of the blue rectangles will flip it from dark blue to light blue (or vice versa) and play a strike of the particular percussion instrument. Your goal is to find the configuration which matches the sequence you heard.
drum sequence 0
The test button allows you to audition the particular configuration that you have chosen. Clicking the answer button, will mark the actual configuration and tell you what fraction of strikes you have identified correctly.
drum sequence 0
Once you are finished with this sequence, click the new button to try another sequence.

The program comes with about 20 drum sequences in the drumseq folder. You can add your own sequences using the included files as an example. The parameter dirdrumseq in the tksolfege.ini file specifies the name and path to this folder. A list of the built-in sequences is displayed when you push the config button.
list of built in sequences
Clicking on any one of these file names will test you with that particular file.

The set of drum sequences were derived from actual MIDI files and may be quite challenging. For example, it is not uncommon for an open hi-hat to strike at the same time as the Bass Drum. Beginners, may prefer to generate random drum sequences and configure the complexity by controlling the number of drums, strikes and the beats. To get to this mode, go to the lesson menu button and select randomly generated instead of from file. Now press the config button and a window similar to below will be exposed.
random drum sequence config
The items bar structure, number of drums, and drum arrangement are all menus which adjust how the random drum sequence is created and displayed. You can change the drum arrangement while the program is playing the sequence and you will hear the change immediately. The number of repeats refers to the number of times the sequence is played when you click on the new or repeat button.

The drum sequence generator tends to place a strike at the beginning of the first beat. The generator also favours the beginning of a beat to somewhere in the middle of the beat. Drum strikes do not occur at the same time. If the number of drum strikes is greater ore equal than the number of available slots, the program will automatically reduce it. Adjust these parameters to match your abilities or to provide a challenge. As usual, you can adjust the speed that the sequence is played.

If there is a particular rhythm that you like, can you save the sequence as a drum formatted file by typing S (upper case) on your keyboard. The program will allow you to browse your file system to find a suitable place to save the file. Enter the file name and be sure it has a drum extension.


The graphical user interface has been translated into Portuguese thanks to Hudson Lacerda at Escola de Música da UEMG - Universidade do Estado de Minas Gerais (in Brazil). To use this interface, edit the tksolfege.ini file and change the line
lang none
lang lang_ptBR.tcl
The next time Tksolfege is invoked it will look for the file lang_ptBR.tcl in the folder named language. This folder should be put in the same place that tksolfege is located.

Easter Egg

If you are having trouble with the interval exercise, it may help to remember the music intervals with a little tune. After you press new you can press the letter h (for hint) on the keyboard of your computer. If you are lucky, you will the hear the beginning of a short tune which starts off with this interval. The following incipits are included.
interval ascending descending
minor 2nd A Hard Days Night Fur Elise
major 2nd Silent Night Mary Had a Little Lamb
minor 3rd Greensleeves Star Spangled Banner
major 3rd When the SaintsSummer Time
perfect 4th Here Comes the Bride Oh Come All You Faithfull
tritone Am I Evil
perfect 5th Twinkle Twinkle Little StarFlint Stones theme
minor 6th Go Down MosesPlease Don't Talk About Me
major 6th My Bonnie Lies Over There
minor 7th SomewhereAmerican in Paris
major 7th Fantasy Island Theme
octaveSomewhere over the RainbowWillow Weep for Me

It was quite difficult finding catchy tunes for some of the larger intervals that occur less frequently. If you would like to substitute your own tunes, you can create a file tunes.tcl containing these samples. Tksolfege will load this file automatically if it finds it in the same directory where tksolfege was invoked. A format description of this file and a sample file is provided in the add_ons folder included with the source code distribution.

Advanced Features

Some of the advanced features are available from a configuration window obtained by pressing the "a" key on your keyboard. For other features it will be necessary to edit the tksolfege.ini file using a text editor.

If the same program is used by many students, the program should always start from a standard state rather than revert to its state the last time it was executed. Setting the variable lockconfig to a value greater than 0 will prevent the program from overwriting the tksolfege.ini file (i.e. storing the current state when the program exits).

The program uses a random number generator to pose questions for the student. Each time the program is started the random number generator is initialized with a new seed which is determined from the current date and time. When the program is used for evaluating the student, it would be desirable to be able to use the same sequence of questions. This can be done by setting the variable repeatability to a value greater than 0. When tksolfege is restarted an additional line of widgets will appear on the control window as illustrated below.

random seed

The random seed is represented by a 4 letter alphanumeric, here Ecur. (Each letter can get either a number 0-9, or a case sensitive letter A-Z or a-z). You can enter any seed in the entry box and then press the enter key on your keyboard. Alternatively, you can click the random button and a new seed will be chosen. To run the program in a repeatable mode, you should click the reset button before clicking the new button.

For operating systems other than Windows, it is necessary to specify a soundfont file. Otherwise you should enter "none" (without the double quotes). The program searches for the soundfont file in the current folder.

If the variable makelog to 1, tksolfege will create a log file called tksolfege.log of the questions and your responses. This may help you figure out where you are having problems. Presently the log has only been implemented for the chord and interval exercises. A sample log for chord identification is shown here.

   7 aug
   11 dim
   6 dim
   11 min
   18 aug
   9 dim
   3 min
The unindented entries are the chord played and the indented entries are the user's response. For example, the first chord is Edim with root E5. It took two tries to get the right answer. The first try 'aug' was made 7 seconds after the chord was first played. The second try 'dim' was made 4 seconds, later or 11 seconds after the chord was first played.

The next sample is for the chord exercise.

   2 perfect5
   1 major3rd
   2 major3rd
   2 major3rd
   3 perfect5
The first question is a perfect5 starting from C4. The user got the correct answer withen 2 seconds. Logo