Four years of sight reading practice

I’ve been doing relatively frequent sight reading practice using an iPad app for four years. Here’s how I’ve automated some of the steps and what I’ve learned from the experience.

Note: This post featured on Hacker News and from what I can tell spent a bit of time on the front page. There are quite a few insightful comments. If you are coming to this story after having read some of the comments, the most important thing you should know is that I do more than just this random note reading excercise to engage with music. Jump to the end to see it.

Some back story

I’ve been playing the guitar since an accoustic guitar was delivered to our scout hall by accident in the early 1990s. There was a piano at home, but for a variety of reasons, I didn’t play it. When my folks moved to a smaller house in 2021, the piano came to live in my study/music studio. I figured it would be a shame if I didn’t learn how to play it. I understood the basics of sheet music, but the decoding process was always very laborious, not helped by the fact that I had learned guitar mostly from tablature, which felt like a very different skill.

Hardware and software

I am constantly aware of fighting GAS by trying to use the things I already own. So I have been using the same M-Audio Axiom 49 key MIDI keyboard for years.

I have a WIDI Master connected to its MIDI ports, so that I can connect to it via bluetooth on my iPad.

This works flawlessly. The app I am using has gone through a few renames. It is as of 2025-05-11 it is called “NoteVision“. I can’t claim to have done a particularly exhaustive evalauation of music learning apps. This one just seemed to click for me due to the rapid feedback.

NoteVision’s Grand Staff practice has options to set the range of notes (which I’ve set to match the limited range on my MIDI keyboard), a key signature selection, a “Chords” mode that switches between just single notes to showing common chords (basically triads, 1st and 2nd inversions), and a “Sharps and Flats” toggle that adds accidentals.

The setup screen

Once you click the play button, you get a full-screen staff and randomly selected notes, the bar moves as you play.

The play screen
The summary screen

The routine

I have written a little interface in Pythonista that I can start directly from my home screen. It selects a key for me to input into the iPad app, as well as tracking the other two options in the sight reading screen (whether there are full chords and accidentals in the generated notes). I’ve found it quicker to use the sliders than to input the numbers.

Pythonista GUI for capturing results

The app sends a REST request to my server which inserts the values into a MySQL database. This part of my music practice session takes about 10 minutes.

Dashboard

I have built a dashboard using D3 to visualise the data captured by the Pythonista app. I will release a separate post about the mechanics soon. I’m still learning D3 and figuring out what I can do, but I quite like the layout that I have converged on. The left hand panel shows the metrics over time. You can see some distinct phases in my approach on the chart below

  1. I started out focusing on the basics. C major. This is just the white notes on the piano, and I improved rapidly. There is a bump halfway through this phase where I turned on accidentals. At this time I was just keeping notes on an Excel spreadsheet.
  2. Next it was time to start with different signatures. I chose G major since I was also learning a piece in G major (a beginners piano version of Haleluja).
  3. It was clear that I needed to shake things up a after having hit a bit of a plateau on G major. I moved my spreadsheet over to Airtable and tried to choose a different key every day. I found myself favouring the sharps and struggling with the flats.
  4. I wrote the phone interface which helped me to randomise across all keys and took the approach that I just had to play what the app said. This was quite motivating as I could start to see the results coming in quickly. I also worked with my visualisation to identify keys that I was doing poorly in, the app slightly favours those keys in the randomisation. I update this periodically.
  5. As I got faster, I found that I could do more repeats in the same time. I am now doing 6 repeats instead of the 5 that I was doing at the start.

On the right of the dashboard, I show the progress per key. It’s clear I’ve put in many more sessions in C and G. These days I rarely practice those keys, trying to get the others to catch up. I prioritise in my randomisation the keys that I have fewer sessions in and the ones I have lower accuracy in.

The relevant part of the code is here.

if random.random() < 0.6:
	keys = [
	    'C',
	    'G',
	    'D',
	    'A',
	    'E',
	    'B',
	    'Db',
	    'Ab',
	    'Eb',
	    'Bb',
	    'F'
	]
else:
	# pareto front  
	keys = [
		"E",
		"Eb",
		"Db"
	]

On 60 % of days I’ll play a completely random key. On the other 40 % I’ll play only the keys on the Pareto front. At this point I’m just eyeballing these, but I’d like to implement an automated Pareto front. I’m also not happy with the overlapping labels on the chart, but I’ll get around to that, later.

What I’ve learned

You don’t need to name notes to play them

With the rapid feedback I get from the app, I quickly found that I was going directly from the annotated notes to the finger movements, without spending time decoding the note names on the way there. That means while I was learning to play the notes shown in any key signature, I was not learning to name the key signatures. This is because I am mostly counting the number of sharps and flats and translating that to the keyboard through a pattern I figured out early on. The sharps “activate” from left to right across the groups of black notes, starting with F♯, alternating between the two groups of black notes. This is easier to get into your fingers than any other memorisation technique.

The order for flats is mechanically symmetrical – you just start from the right and move left, again from the “first” note in the group of three, which in that case is B♭. I am still not quite sure how other people are learning this, since most of the materials I’ve seen have focused on learning the actual names by rote, using mnemonics like “Father Charles Goes Down And Ends Battle”, but that still needs to be translated to fingers. I realised I needed a whole other drill for the naming, and settled on Anki.

There is still progress, after four years

I am surprised that I am still getting faster after all of this time. I guess another way of saying this is that my progress has been slow, but early on I was spending only around 10 minutes on these sessions and not doing much other practice most days. I have become significantly more confident in my sightreading ability when learning new songs. There is now no significant barrier between my eyes and my fingers when reading the music, although I still encounter issues outside the range I’ve practiced. It’s hard to tell how much of the additional progress I’ve made is down to other things I’m doing like playing songs (see later for my full routine).

I would have liked an 88 key keyboard

Due to the limitations of my MIDI keyboard, I only cover the middle range of the keyboard. This means I am considerably less fluent in the upper and lower range of the piano. I find myself having to work down octaves mentally, when I have to play low bass.

Randomisation is excellent

When I was selecting keys myself, it was clear that I mentally avoided the hard ones and was drawn to an easy C major day when I wasn’t feeling great. The randomisation means I don’t have that decision to make and makes sure I don’t zero in on wrong patterns. I suspect there is some difficulty on days where I shift from several days of sharp key signatures to flats, which I would still like to analyse.

An extended practice routine

For those of you thinking that I should do more than just random sight reading, of course you are right. I have a larger 30 minute plan which I am trying to get better at doing consistently, although I must admit I don’t get to it all most days.

  1. Sight reading practice (sets “key of the day”)
  2. Scales and arpeggios in the key of the day
  3. Theory and memory drills using Anki. I go through note names, key names and scales/modes
  4. Notation and transcription. This could be transcribing a random song from my Apple Music playlists or composing and annotating
  5. Ear training. I’m still researching a good iPhone app for this, but I try to work on playing songs by ear each day
  6. Repertoire practice. I have several pieces that I am trying to learn, so I choose one and work on a few bars every day.

Comments

8 responses to “Four years of sight reading practice”

  1. Nick Avatar
    Nick

    Thank you for sharing this! I have tried to do something similar but I have run into a big hurdle – latency. Every app I’ve tried on tablets has terrible latency and made them effectively unusable. Have you encountered this and/or found a way to remediate? Thanks!

    1. alchemyst Avatar

      To be honest I’ve only ever experienced latency issues with Bluetooth headphones. I started with a fully wired connection of my keyboard to my iPad using the camera adapter and USB from the keyboard, with wired headphones or just using the built-in speakers. I experienced no latency at all with any of the apps I was using. I then switched to the WIDI master and didn’t find that to introduce any noticible latency either. I don’t think I can tell the difference between the WIDI master and a direct wired USB link. I know that Android used to have a huge latency issue with audio, but AFAIK that has been fixed.

  2. Slippin Fall Avatar
    Slippin Fall

    This post deserves many, many comments, but I don’t see any. Let it be known that I was here, I read this, and it was awesome.

  3. Noel Avatar
    Noel

    The pattern of sharps across the two groups of black keys is an eye-opener for me, although I have been playing for quite a bit now. Thanks for sharing.

    1. Greg Avatar
      Greg

      The pattern of sharps is also visible in the circle of fifths. Look it up, it helps locate the relative keys and the cadences.

  4. throwaway Avatar
    throwaway

    I’ve played for decades. I was taught the wrong way when I was very young for a decade, starting at 4 or so my parents claim), and had a horrible time unlearning the bad habits which I see you seem to be doing as well.

    I don’t mean to demean or diminish your effort but you are just starting to pick up on things my competent teacher covered and completed in the first 6 months of study, which was just an hour long once a week.

    You don’t really state what your actual goals are here, but if its to play fluidly off paper by sight from something you’ve not seen before, this rarely happens, and its rarely ever perfect outside a few outstanding talents (my teacher being one of the top performers in industry at the time). Most pianists will have played the piece several times before an actual performance.

    You really need an 88 key piano and paper sheet music.
    There is a lot more to the art than just the notes.

    As you’ve noted, you don’t *need* to know the key name to play, but you do need to know the key to play without interruption for pieces with any amount of complexity (where the signature and timing change regularly).

    The sequence of sharps and its opposite, the flats are always in the same uniform order. FCGDAEB, that order follows the circle of fifths in music theory, and flats are simply that order reversed.

    There are compositions that use more interesting relationships that don’t necessarily follow the 135 rule. Augmented Perfect Minor/Major and/or Diminished Perfect Minor/Major, Enharmonics, and other intervals.

    The primary reason most people are told to practice scales is to learn proper fingering for reference by feel so they can close their eyes for brief moments of time; nothing is worse than blinking and losing your place mid-performance.

    With a short keyboard, the absence of this will reflect in your playing, and while many people don’t have perfect pitch, quite a good number of people do and they can immediately tell; its quite irritating for some of us. Perfect pitch by definition includes perfect tempo.

    The problem with using a digital app rather than actual sheet music is you can’t practice correctly. You only get half the practice you need (from staff to key), and it becomes unbalanced missing out (key to staff). The recognition given a key or a staff should be near instantaneous. The timing also determines emphasis.

    The second half typically are exercises in music theory, and a big part of that is writing and composition (the latter part of association). Usually you get a practice piece, break the timing and keys down by measure, and then play.

    When looking at music theory as a whole in one place, it can be quite overwhelming but learning each part to mastery improves overall performance.

    Here is an overview index of it.
    https://musictheory.pugetsound.edu/mt21c/index-1.html

    For the stubborn it can also be quite easy to over-practice, and injury care and recovery are something you’ll need to know as well.

    Just so you know, I’m not a music major, though I could have been by the time I was old enough to attend college (literally overnight). I really haven’t played in almost a decade now, as I no longer have a piano (the upkeep can be quite high).

    Also developing perfect pitch makes it all the more irritating when things are ever so slightly out of tune from temperature/humidity changes, and even moreso on digital synthesizers that adjust their tone, but you generally can’t forget anything you spent roughly two decades actively learning.

    1. alchemyst Avatar

      I don’t know if you missed it in the write-up, but the whole activity here was kicked off by me getting a full-size piano as a gift. The sight reading practice on my MIDI keyboard is only one part of my music practice. I do the scales and arpeggios and full piece playing on the real piano from paper music sheets. I also improvise, transcribe my compositions and things like that. I am familiar with the circle of fifths but have found it hard to memorise in an operational way (such that I have ready access to the next or previous item in the cycle from any given one), that’s what I’m working on with flash cards. One of the interesting observations I make here is how you can learn things apart that people often learn together (like playing the notes from paper without knowing their names). I learned that on guitar the opposite way – I knew chord names and translated that to shapes on the fretboard quite fluently without being able to name any of the notes I was playing. Now I am going through the process of learning the fretboard in a different way.

  5. Alec Windmill Avatar
    Alec Windmill

    Karl, hello and thanks for your article!

    Regardless of the music – “dashboard, I show the progress per key” with Accuracy and Count is great in itself. I’ve always been impressed by such ways of visualizing progress. This is a great inspirational example. Thanks for the work and publication!

Leave a Reply

Your email address will not be published. Required fields are marked *