Online Ear Training with Intervals, Melodies, Jazz Chord Progressions (2023)


The sample exercises are all based on exercises that I have used in my own practice routine.You can use them as-is, or you can customizeand save them in your account as new exercises.

If you're looking for a new ear training exercise, I'd suggest trying a few of the sample ear training exercises until you find one thatchallenges your aural skills, but without being totally beyond your current capabilities. I'd then add that exercise to yourdaily ear training routine and stick with it for several weeks/months, or howeverlong it takes for your accuracy to improve.

If all of the exercises are too challenging for you,you could start with the first "Intervals: Melodic" exercise.I'd then select only major and minor 2nds as the "Intervals to Play."Once you learn to distinguish the sounds of those two intervals, you can add Major and Minor 3rds,and repeat the process until you've learned all of the interval sounds.

Another good exercise for beginners is "Intervals: Cadence + Note." That is a fairly well known exercise,attributed to the legendary jazz educator Charlie Banacos.By playing a cadence, followed by a note, it teaches intervals by relating the sound of a note to a C major key center.The sound of a minor sixth, for example, will occur when the single note is an Ab.


This ear trainer can be used in a variety of ways. It was originally designed to be used in a call-and-response fashion, where it plays an exerciseand you try to play it back on your instrument. Over the years, however,I have added support for sight singing, as well listening-only exercises,where the goal is to identify something you've heard (e.g. the "Intervals: Cadence + Note"sample exercise). I recommend incorporating a varietyof these approaches in your ear training. This will help to ensure that you aren't overlookingany weaknesses as you progress.

I also suggest that you practice over a wide range of octaves ("Key center" has options to change the octave).In my own practice, I initially neglected lower and higher octaves, and consequently Ihave much more difficulty identifying those pitches, intervals, etc. I've been working on them moreas of late, but I certainly wish I had started sooner.

When learning intervals (a common starting point), some people like to use song associations (e.g. "Here Comes the Bride" for an ascending perfect 4th). I originally used song associations to learn some intervals, but now I focus on the sound of the interval alone. If you choose touse song associations, your goal should be to get to a point where you caninstantly recognize the sound of each interval, without having to think of the song.

Ear training takes time, as you gradually teach your ears/brain to recognizevarious sounds.Everyone proceeds at a different rate, but with daily practice, you should notice progress over time. Don't give up!

When playing along with your instrument, be sure to set the "Key Center" to your instrument's key (Bb: trumpet, clarinet, tenor sax,Eb: alto sax, etc) so the notes and pitches will match yourinstrument... unless, of course, you'd also like to work on transposing!You can also change the staff to bass clef by clicking the small arrow beneath the clef.

As you become more familiar with how the ear training tool works, you'll probably want to use the automatic looping function for many of the exercises. This is donesimply by selecting one of the "Auto" Play Modes.

Looking for more material to play by ear? If so, be sure to check out my simple song randomizer.


  • Spacebar ⋅ Play/Pause the ear trainer.
  • Down Arrow Key ⋅ Plays the next exercise. If Repeat Count is more than one, it will play a fresh exercise and reset the repeat count.
  • Right Arrow Key ⋅ Plays the next exercise. If Repeat Count is more than one, it will move to the next repeat.
  • Left Arrow Key ⋅ Repeats the current exercise.
  • Left Arrow Key + Shift Key ⋅ Repeats the current exercise, omitting the starting cadence (if any).
  • Period Key ⋅ Plays a middle C


The scratchpad, located under the custom tab, allows you to create your own ear training exercisesusing a combination of melodies, chords, and jazz chord progressions.The scripting method for the scratchpad is based on ABC notation(I think this section of the docs is the most useful).ABC notation can be a bit daunting at first, so you can also create a wide variety of scripts using a simpler format that I created.Following are some scripting examples to get you started with the scratchpad:


This sample includes 3 octaves of notes, starting from G below the staff and ascending chromatically.As you can see, if you want a melody comprised of quarter notes, you can just list the individual notes.Also notice the use of a natural sign ( = ) to cancel the use of a previously used sharp ( ^ ) or flat ( _ ).

G, _A, =A, _B, =B, C ^C D _E =E F ^F G _A =A _B =B =c ^c d _e =e =f ^f g _a =a _b =b =c' ^c' d' _e' =e' =f' ^f' g'
copy to scratchpad

When a script is played in a key other than it's original key, the notes are automatically transposed to the new key.You can force one or more notes to always play as written, however, by surrounding the note(s) in "absolute" tags <abs></abs>.In the example below, regardless of which Keys to Play you have chosen, the ear trainer won't transpose the first C.

<abs>C</abs> F A c e
copy to scratchpad


To play multiple notes simultaneously, enclose the notes in brackets ( [ ] ). By default, the notes will sound for one beat, but you can add a number after the closing bracket if you want to hold the notes for alonger period of time. The following example starts with a C major cadence and then it rests for two beats (lowercase z rests for one beat, and uppercase Z rests for one measure) beforeplaying each note of a G7sus4 chord. Finally, it plays a G7sus4 chord and holds it for 4 beats.

[CEG] [FAC] [B,GD] [CEG]
z2 G, C D F [G,CDF]4
copy to scratchpad


If you want chords without a melody (ideal for improvising), begin with a N:chords line. This tells the system that you want to use an abbreviated chord notation.The actual chords should be separated into measures with a pipe ( | ) symbol.

F | F | E-7b5 | A7+9 | D- | D-| C- | F7 |
Bb | Eb7 | F | D- | G7 | G7 | G- | C7 | F | F |
copy to scratchpad

While the above will use one chord per measure, you can also have 2 chords in a measure,where each chord lasts for 2 beats. In the following example, the first 2 measureshave 2 chords each and the last measure has a single chord.

C A7b9 | D- G7 | C |
copy to scratchpad

The following example shows all of the currently supported chord types.-^7 is a minor chord with a major 7th.

C | C6 | C+11 | C+ | C7 | C7b9 | C7+9 | C7b5 | C7+5 | Csus | C- | C-6 | C-^7 | C-7b5 | Cdim |
copy to scratchpad


This 2-measure sample includes chords and a simple melody.When combining chords and melodies, chords should appear in quotation marks, with the melody notes appearing afterwards.In the second measure, we add a 4 to the 'C' to indicate that it should be held for 4 beats.Note that while melody notes use ABC notation, chords use a standard sharp and flat notation (e.g. F#7, Eb-).

"G7" G F E D | "C" C4 | "C-" _E2 "F7" A2 | "Bb" _B,4 |
copy to scratchpad


By default, each note is treated as a quarter-note in 4/4 time.If you want to treat each note as an eighth-note, start with a L:1/8 line.

"Gm" F C F A ^F D F A |"C7" G A _B G ^G e d _d |"F" c4 z4 |
copy to scratchpad


By default, the ear trainer will use jazz swing rhythms for eighth and sixteenth notes.If, however, you have a stand-alone melody that you want to play with even rhythms, add R:even to the beginning.Additionally, to support sixteenth-notes, you can add a L:1/16 line.

A4 e4 c6 B2 | A2c2B2A2 ^G2B2 E4 | A2E2B2E2 c2BA B2E2 | A2EA B2EB c2BA B2E2 | cBAc BA^GB A4 z4 |
copy to scratchpad


Use the following syntax to randomly select from a list of sequences:

{randomSequence1; randomSequence2; randomSequence3;}

The following example will play a C, followed by either an F or a G. Afterwards it will play a C for two beats,followed by an E, Eb, or a D major triad that's held for two beats.

C {F; G;} C2 {E2; _E2; [D^FA]2;}
copy to scratchpad

By default, the ear trainer will play only one of the random options within each set of curly braces.You can control how many of the options are played by adding a number {3: or {all: immediately after the first curly brace, followed by a colon.In the example below, the exercise will play a C, followed by both F and G (in random order), and then a C for 2 beats.After that, randomization is used within the simultaneous note brackets to randomly select three notes to play at the same time.

C {all: F; G; } C2 [{3: C; D; E; F; G;}]
copy to scratchpad

To make the random options easier to write, you can use carriage returns in the script, as follows:

| D- | G7 |;
| E- | A- |;
| C | C |;
copy to scratchpad

If you want to include a chromatic range of notes, you can use an ellipsis ( ... ) as a shortcut to writing all of the individual notes.The following will play 3 simultaneous notes for 4 beats, choosing from 5 octaves of a C chromatic scale. After resting for 2 beats, it will play 4 notes chosen from an Eb to C# chromatic scale, holding each note for 2 beats. This examplealso shows how you can specify ascending ( asc ) and descending ( desc ) directions for a random sequence of notes.

[{3 asc: C,,;...c''; }]4 z2 {4 desc: _E2;...^c2;}
copy to scratchpad


You can use the modulation tag ( [M] ) to change the key during a sequence.If you set "Keys to Play" to "Orig," the following example will play a C major cadence, two beats of rest, and thena major seventh arpeggio in a random key. This example also shows how you can surround specific notes with "hide" tags ( <hide> </hide> ), in order to prevent them from appearing in the displayed results.

<hide>[CEG] [FAC] [B,GD] [CEG]</hide> z2 [M] C E G B
copy to scratchpad

The standard modulation tag ( [M] ) will choose a random key, however you can also specify the number of half steps to move up or down. For example, [M1] will modulate up by half steps, [M-1] will modulate down by half steps.If you set "Keys to Play" to "Orig," The following example will play a ii-V7-I cycle 4 times (note the use of the repeat colons |: :4|.After playing it in C Major, the [M5] tag will modulate up a perfect fourth (5 half steps) prior the each of the subsequent repeats.

|: D- | G7 | C | C [M5] :4|
copy to scratchpad

You can also force the modulation to select from your chosen "Keys to Play" with [MK] modulation. If you set "Keys to Play" to just C and F#, and run the previous example with [MK] instead of the [M5],then the modulated keys will be either C or F#. Lastly, you can stop modulation with [M0] and return to the written pitch.

If you want to force the ear trainer to play the written pitch, despite the current modulation key, you can use the "absolute" tags (<abs></abs>).In the following example, the ear trainer will modulatedown by half-steps, but it will always play the "absolute" C's as written.

| "C" z2 <abs>c2</abs> [M-1] | "C" z2 <abs>c2</abs> [M-1] |
copy to scratchpad


You can repeat a section of your custom script by placing a starting and ending repeat colon around the repeated section (the colon must be directly adjacent to a |).In the following example, I'm repeating the last measure one time, so it will last for two total measures.

D- | G7 |: C :|
copy to scratchpad

You can also specify the number of times for the repeated section to be played by putting a number after the closing colon. In this example, the last 3 measures will be played 4 times.The [M] will also cause it to modulate to random keys on each repeat.

C |: A7 | D- | G7 [M] :4|
copy to scratchpad


A variable can be used to specify a sequence that you want to reuse later in your script.This is particularly useful if you want to repeat the same sequence multiple times, but in different places within a single script.Following are examples of how to declare a variable and set its value. Note that variable names must be preceded with a dollar sign,the names must be alpha-numeric (letters and/or numbers, no spaces, no hyphens),and each variable must be declared on its own line.

$cadence = [CEG] [FAC] [B,GD] [CEG]
$x = CEGB
$y = { FAce; GBdf; }

Once a variable has been declared, you can use it within that same script as many times as you want, simply by typing the variable name.Below we have the same variables as above, but now we are actually using them.

% variable declarations
$cadence = [CEG] [FAC] [B,GD] [CEG]
$x = CEGB
$y = { FAce; GBdf; }

% now we can use the variables!
$cadence $x $cadence $y $x $y $cadence

copy to scratchpad

In the following example, a variable represents a chord progression. Note that the variable declarations must be located below items like N:chords L:1/8, L:16, and R:even,since those items must appear at the very beginning of a script.


% variable declaration
$251 = D-7 | G7 | C | C

% now we can use the variable!
| C | $251 | A-7 | $251 | C |: $251 :|

copy to scratchpad


The ear trainer has the ability to say various words aloud. The supported words and their tags are as follows:

<a> <b> <c> <d> <e> <f> <g> <sharp> <flat> <doublesharp> <doubleflat> <root> <minor2nd> <major2nd> <minor3rd> <major3rd> <perfect4th> <tritone> <perfect5th> <minor6th> <major6th> <minor7th> <major7th> <octave> <major> <minor> <dominant> <halfdiminished> <diminished> <augmented> <sus> <2> <3> <4> <5> <6> <7> <9> <11> <13> <15> <17> <down> <up>
copy to scratchpad

When using chord progressions, you can also use special tags to say various items like the current chord's key and chord quality.The following example will play various progressions and speak each of the available options.

"D-" <#chord> | "G7" <#chord_short> | "Cdim" <#chord_quality> | "C" <#chord_key> |
copy to scratchpad


If you'd like to learn more about ear training, here are some recommended articles from my jazz blog:

Learning To Improvise - Introduction:This article discusses my jazz education and the odd absence of adequate ear training.

Learning To Improvise - Ear Training:This article discusses the importance of ear training in jazz improvisation.

:This article discusses some of the principles behind the Suzuki Method andhow those principles help students learn to play by ear.

Dave Douglas on Ear Training: Jazz trumpeter, Dave Douglas, shares his thoughts about ear training.

John Murphy - Ear Training Interview: In this article, I present an interview I did with University of North Texas professor, John Murphy.

I built the first version of this online ear trainer in 2004, as a Java applet. Back then, Java applets were fairly common, and they offered the best performance for audio sequencing in a web browser.

I wanted to move away from Java for my ear trainer for some time, but I couldn't accomplish the fine-grained sequencingdirectly in HTML prior to the advent of HTML5. In 2015, with the power of HTML5 and MIDI.js,I could finally create a version of my ear trainer that runs without any additional plugins!

In 2021 I finally added some new piano sounds, thanks to the free soundfonts at soundfonts4u.

This ear training application performs best in recent versions of Chrome, Opera, and Firefox web browsers.Performance is fine in Safari, but the audio quality isn't quite as good.If you find any bugs, please let me know.

Top Articles
Latest Posts
Article information

Author: Dean Jakubowski Ret

Last Updated: 11/06/2022

Views: 6287

Rating: 5 / 5 (50 voted)

Reviews: 81% of readers found this page helpful

Author information

Name: Dean Jakubowski Ret

Birthday: 1996-05-10

Address: Apt. 425 4346 Santiago Islands, Shariside, AK 38830-1874

Phone: +96313309894162

Job: Legacy Sales Designer

Hobby: Baseball, Wood carving, Candle making, Jigsaw puzzles, Lacemaking, Parkour, Drawing

Introduction: My name is Dean Jakubowski Ret, I am a enthusiastic, friendly, homely, handsome, zealous, brainy, elegant person who loves writing and wants to share my knowledge and understanding with you.