Learning how to play music with anki

I've been playing music for half of my life. But while I was enjoying sight reading partitions, and sometime practiced a little bit the boring part (scales, arpeggios), I have been stuck. Here is a list of what changed:

  • The most frustrating thing for me being that I relied on partitions. Which means that if you gave me a piano or guitar without a partition, I wasn't able to play anything. I found that ridiculous, and anki helped me solve that.
  • Similarly, I played classical guitar, and I didn't know how to read tab. Because, honestly, they are so many chords, I keep forgetting them. Which means that, if you give me a song with tab, as they are hundred of thousands of them, I couldn't play it, because it was not written in a way I can easily read. I don't know every single chord yet (and I'll probably never know them all), I know far more chords today than what I knew before I started anki, and it clearly helps learning songs and doing improv.

The example in this post are related to ocarina, guitar, piano, harmonica and tin whistle. I will explain what differs and what is similar for all of those instruments. Some explanation may not always be clear, if you don't know the instruments I'm talking about. But don't worry, if you don't understand, just read the next paragraph, you should be able to get the general idea.

This article will be illustrated using almost only cards that I have really seen the day I was writing this article. You can find here my [piano], [guitar] and [ocarina] decks. They are far from being perfect, some typos may still be in them. But it may help you to understand what I write here. And maybe you can find them useful in your collection.


I should emphasize that I've been playing music for half of my life. So those advices may not be interesting for total beginners. And some part of learning music are entirely omitted. For example:

  • I don't know how you could practice rhythm with anki. After all, I believe you need that someone, or a specialized program, tell you whether you really keep the rhythm, or whether you are accelerating/decelerating.
  • I don't consider musical theory here. Knowing what are the intervals in each scale/arpeggio may be important. But since it is general theoretical knowledge, you can use whatever you usually use to learn a definition. So I don't see the point of considering this in this article.
  • I don't explain how to learn how to read a partition. I guess you could do it the same way you learn a foreign alphabet. But as I've done this a decade before I discovered anki, I don't want to speak about it here.
  • I don't explain how to practice improv. Because honestly, I don't know. I'm extremly bad at it.

I first consider the notes which requires me to have an instrument with me, to practice. I'll consider solfège later.


Music piece

I start by explaining how I learn music piece. Honestly, that's not the first thing to learn, but that's certainly the most interesting.

I've got a note type «musical type», which contains the following fields:

  • tempo
  • key
  • Name
  • Compositor
  • piece: which contains the whole piece
  • part 1, part 2, part 3, part 4: the piece is divided into up to four part.
  • chunk 1 1, chunk 1 2, chunk 1 3, chunk 1 4, chunk 2 1,..., chunk 4 4. Each part is divided itself in up to four parts.

The note's card asks me to play:

  • chunk 1 1
  • chunk 1 2 (given chunk 1 1)
  • chunk 1 1 and chunk 1 2
  • chunk 1 3 (given chunk 1 1)
  • chunk 1 2 and chunk 1 3
  • chunk 1 4 (given chunk 1 1 and chunk 1 2)
  • chunk 1 3 and chunk 1 4
  • part 1
  • chunk 2 1 (given part 1)
  • chunk 1 4 and chunk 2 1
  • ...
  • part 2
  • part 1 and 2
  • ...

  • whole piece

  • Music

That is, I have to learn small chunk, then consecutive chunks, then one part, then consecutive parts.


In order to practice this way, a few conditions must be met.

I practice those cards when I can play my instrument. My goal is not to see whether I theoretically recall the chunks, but whether I can play them. Since anki gives me the part before what I have to recall, it means that I can rely on my muscle memory to move on in the music even when the music is not written.

I should be able to play those chunks with the partition before learning how to play them without the partition. Some music may be technically complicated, because you have to blow in a really special way, or you have to move you hand extremly quickly. It's useless to practice such a music this way, until you have mastered the technically complicated part. However, if you know how to do this thing slowly, anki may help you, because the more you'll see this card, the more you'll have practiced it, and so you can eventually become quicker.

This is not really a problem because a lot of folk song, a lot of music, especially in the beginner's method, have no or very few technically complicated part. Often, my goal is to learn by earth a piece I already know to play. And anki is perfect for that. Assuming, of course, that I accept to take some time learning it. After all, if I see one new card by day, and bury sibling cards, then it takes more than a month to see all of the cards mentioned above. But this seems acceptable since I can still learn multiple pieces simultaneously. To be even more honest, it mostly seems acceptable because, for the first time in my life, I am able to play some piece on guitar and ocarina by heart. I don't have a piano anymore in my house, so I can't test this method on piano. But I can tell you that if you have access to a piano only a week every two months, then this method does not work (which is what I was expecting, but it was worth a try)

This may not work to learn very long music, because you can't divide everything in 16 small parts. But, it seems to be enough for the music pieces I find in musical textbook, small Zelda themes (I mean, why else would I play ocarina ?), and most song.

Part of the piece being repeated

When I create the notes, I should check for repetition. Good partition uses signs to tell «play this twice/thrice»... But some badly written partition just copy past a part of the partition. In this case, I give a name to a chunk/part. I just write «A=partition image», and then when this chunk should be played again, I write «A» instead of pasting the chunk a second time.

Often, a musical piece repeat a few measure and just change the last note. In this case, I write «A=Part of the measures repeated (part which changes)». Then when I need to play A again, with the small part changed, I write «A(part changed)». I assume that this notation is more clear for software programmer, since it looks like a function definition with a paramater which have a default value.

How to start

Usually, playing any chunk is not complicated. Because when I play the measures shown by anki, it triggers my muscle memory, and I can easily recall the part asked by anki.

This does not work for chunk/part 1. Because there is nothing to play before the piece starts. Hence I have nothing to trigger my muscle memories. Instead, I asks anki to play the music, so that at least, I recall how it sounds like. It seems to work, and allow me to recall how to play the music I hear. This is why I've got a «music» field. If I learn a piece from a musical method, I can take the music they provide on the CD. If I learn a song, I can put the original version of the song, or a youtube guitar cover.

Note that, ideally, when I'm not lazy, it means I should edit the music, because I only need to listen to the first measure. And since anki does not easily allow to stop the music, it means that I should either listen to everything, or turn off the sound of my computer.

I also have a card which, given the music, ask me to give its name. It's mostly useless for songs, but it helps me to recall the music I want to learn from the guitar/ocarina method, since those are musics that I may not be familiar with.

Fields and card type

Note that I've got 28 fields and 46 card types. I used the add-on that I wrote, to generate those cards automatically. Otherwise, it would have been far too long to do it by hand.

Some fields are redundant. Indeed part1 is only the concatenation of chunk 1 1, chunk 1 2, chunk 1 3 and chunk 1 4. However, it still useful to have both the part, and the chunks. When I'm learning chunk 1 2, I need to be able to see the three other chunks. However, when I'm learning chunk 2 2, I can use the field Part 1 instead of using the chunks. It's more clear.

I should also note that, some parts can not be divided into four chunks. If a part is small, one or two chunks are enough. I also had to deal with that.

Pieces I don't want to learn

Sometime, I just want to practice regularly a piece, but not to learn it. For example, I've the book Guitare classic, volume A, which contains fifty pieces, from very easy to more complicated. I won't learn those 50 pieces, but I want to be able to play them. To for each such piece, I've got a card with the partition. It shows me the partition. If I can play it smoothly I press «good», otherwise, I press «again» or «hard». So I'll now I'll practice it kind of regularly, and also will see more pieces. I'll do this as long as I find most partitions easy, and the day where I can't play a piece anymore just by sight reading, I'll use the note type described above to practice each part separately.


The first thing you need to learn is: where are each notes on the instrument.

I have a note type «Fingering» with fields: «Instrument», «note», «fingering», «fingering2» and «Fingering3». This allow, in each note, to state to which instrument it corresponds. Each anki note is associated to a musical note. It is usually represented either as a note on the scale. Finally, each «fingering» field contains one of the possible way to play the note.

If you want to learn piano, each note has exactly one fingering, so you never need to use fingering 2. If you learn ocarina, tin whistle, flûte, most notes admits a single fingering. But some notes admits two distinct fingerings, which is why I added «fingering2». When they are two fingerings, I actually have three questions. Given one fingering and a note, which is the other fingering. And given a note, what are the fingerings. Reciprocally, given a fingering, one card asks which notes it is. While in real life, you never have to see a position on the guitar/harmonica/ocarina ... and tell someone what note was played, in fact, it still helps to learn the instrument.

On the guitar, I first used the deck guitar note, but each question contains too much information. The question «where are the A», needs to recall 6 positions. I can't tell anki that I know only some of them. So I need to create cards which, given a note and a string, asks me «how to play this note on this string». Note that, for guitar, I can't use «Fingering 1», «Fingering2» etc... Because the fingering on string 1 is always five fret away from the fingering of string 2, which is five fret away from the fret of string 3... Which means that, if I give one fingering, the other ones suddenly becomes far too easy.

Instruments existing in distinct keys

You can find harmonicas in the twelve keys. Some ocarinas exists in multiple keys. Saxophone exists in two keys. For those instruments, knowing a «note» may not be a good idea. This is why, instead of learning that blowing the forth hole of my harmonica is a C, I learn that it allows to play the tonic of the scale/degree I.

When I started learning harmonica this way, it was complicated. Because I'm clearly more used to reading a C on the partition than reading «tonic». But nowadays, it's kind of ok. And if I want to play on a G harmonica, I'll now that «blowing the fourth hole makes a tonic» and not «blowing the fourth holes makes a C».

Scales and arpeggios

Scales and arpeggios are quite useful if you want to do improv, or to be able to play quickly some pieces. I assume that you should eventually learn which notes are in each scale you may want to use (major, minor natural, minor chromatique, minor harmonic, blues...) I actually have a note type «guitar scale» and «piano scale», because both kind of scales necessitate to consider different kind of questions.


The most difficult part on piano is to learn what is a fingering. Thus, I've got one note by scale, for example A major, F blues, ... Each note has plenty of cards, for practicing with a single hand, then with both hands, on one or two octaves. Ascending, descending and both. So the difficulty is progressive.

The answer shows the partition with fingering, so if I had trouble playing a partition, I can check what the fingering was. I actually wrote a program generating an acceptable fingering for each scale, and imported it into anki.


On guitar, a major scale is a major scale, independently on whether you are starting on a E, a G, etc... What is important is on which fret you start, and whether you want to move up or down the fret. So, my cards say «starting on string 1 fret 2, how do you play a major scale ascending» or «starting on string 6 fret 4, how do you play a blues scale descending on two octaves». Once again, I wrote a program which generated all of those notes, and the tablature which shows how to play those scales. I first practice on one octave, and then on two octaves.

Other instrument

On harmonicas and ocarinas, you can't easily play all scales. So what is actually important is knowing what scale you can or can not play on your harmonica, and how to play them.

Since, most of the time, each note admits a single fingering, it's not really usefull to have any indication to help you learn the scale. Anki is only here to help me decide whether I need to practice this particular scale more or less. The back of the card does not really matter. Anki also allow me to plan to practice octave 1, octave 2, octave 1 and 2, octave 3, octave 2 and 3, and finally octave 1, 2, 3, so that I can practice a small part before practicing on the instrument's gamut. Note that on those instruments, practicing on every octave and scale is quite useful, because contrary to piano, when you add an octave, you don't just have to move hand and repeat the same move. And contrary to guitar, the way to play a scale depends on the starting note.


Another important part of playing guitar is knowing how to play the chords. A guitar beginner spends a lot of time learning plenty of chords.

I've got two decks of chords, one for open chord, and one for transposable chords.

I've got a note type «guitar chords» with the following cards:

  • Given a chord, it asks to state the base of the chord. (For example, if it shows the chord of C major, you must answer C)
  • Given a chord, it asks to state the quality of the chord. (For example, if it shows the chord of C major, you must answer Major)

  • Given a chord, it asks to state the interval of the chord. (For example, if it shows the chord of C major7, you must answer 7)
  • Given a chord, and given it's name, it asks to find which string is used to play the tonic.
  • other cards asks similar question for the 3rd, the 5th and potentially the 7th. This kind of question is quite important, because if you want to know how to switch between a major and a minor chord, you need to know where is the third. If you know how to play a min 7 chord, and you want to play a min Maj7 chord, it allows you to find this chord easily.

  • When a chord can be played in two distinct ways, given the name and one chord, it asks for the other one.

  • Given the name of a chord, and the position of the lowest note, it asks you to play the chord.

I have two version of each chord. A black version, and a colored version. In the colored version, I use black for the tonic, pink for the third, red for the fifth and green for the 6th or 7th. I have not yet created card with more complicated chords, so that was not useful. It allows me to quickly understand how the chord is constructed while I look at it. I also show the chord represented on a standard partition, where each note is colored similarly. It also allows me to quickly see which string is used to play each note. Of course, all of those were generated using a program, which tested every tabs which can be played by a hand, and whether each tab corresponds to a chord. This program has not considered reversed chord yet, I don't know enough about them to consider them seriously.

Other instruments.

On harmonica, there are a few chords you can easily play, but it mostly consits in blowing in a bunch of holes simultaneously, so I won't consider it there.

I don't know what you could learn on piano about chords, so I've not made any notes related to piano chords.


The notion of intervals is mostly interesting on guitar I believe. Because, on guitar, if you want to play a fifth on the strings 1 and 2, you don't care where is your finger on string 1. You always know that, to play a fifth, you need to have the finger on string 2 two frets below the finger on string one. Or, if you want to play it on strings 1 and 3, you need to have your finger on string 3 three frets above your finger on string 1. I find that knowing this information by heart really helps me when I need to practice new chords or new scales.

Thus, I have notes, which, given two notes on the guitar, ask me what intervals it is. And which, given two strings, ask me to play a given an interval.

I've not created similar notes for the other instrument, because on most instrument, you can't just move your hand and keep playing the same interval. On piano, I can't just say «play a fifth», I'd need to give you also one of the two notes. So the question would be quite useless, it would be mostly equivalent to the solfege question «what is the fifth above A ?».


I've discovered anki after more than ten years playing classical piano. Thus I did not use anki to practice sight reading. Hence I can't help you if you want to learn this task.

However, I can still tell you that anki is quite usefull to learn answer to questions such as «what is the third minor aboute A#» or «what are the notes in Bb minor harmonic». I can always compute this, but, thanks to anki, this kind of question became more intuitive. Having a good intuition about scales helps a lot when I want to practice those scales on piano (on melodica, to be honest). Because, I just have to concentrate on the fingering, and not on recalling which notes I should play. Similarly, if I want to play an A# minor, for some reason, then I almost immediatly knows that it's «A#, C, E», and can play it quickly.