Tool for converting sheet music to IFR notation

Hi all,
For the past few years I have been developing a tool that converts conventional sheet music to IFR notation. Currently the output of the tool looks like this:

I have converted around 1800 songs to IFR notation so far and uploaded them to this website:

There is also the possibility of converting your own sheets to IFR format. This does however require some basic programming skills like installing python packages and using a command line interface. have a look at my github page: if you are interested.

I am very curious to hear what you think, and if you have any questions, suggestions for improvements or other comments please let me know!

Edit to Add (2023-04-06): @jessevoostrum is working on a web application to convert the sheets online, so that people don’t have to do any installations themselves. This feature is first discussed in this post below

For more info on the chord symbols used:


Edited to Add:
N.B. This and the next few posts were moved from where this discussion originally started in Topic IFR and ABC Music Notation at this post. That original post was a little differet to the one above (it didn’t mention the Nashville Numbers System).

Welcome to the forum @jessevoostrum

Your example looks very promising. It pretty much fits the description of my “ideal” as described above. :smiley:

musicxml would be rather more complex than ABC to hand code, but I imagine that becomes irrelevant because it can be produced direct from scores by using software such as musescore?

That sounds very interesting. I’ve never used python, but I’ve been programming in C++ for decades & command line was all we had when I started, so I’d hope to have the technical skills - I just need to find some time. :smiley:

Well @jessevoostrum at the risk of much reduced practice time I’ve installed python (on windows), worked out what I needed to do to add matplotlib & music21 using pip, then collected your repository.

The first ‘’ failed as it could not find the module ‘colorcet’. After I used pip to add that, the script ran fine & produced this PDF of ‘All of Me’ just as your documentation said it would. :slight_smile:

All Of Me.pdf (20.8 KB)

1 Like

Welcome @jessevoostrum

This is so cool, I love the simple looking output, just the numbers are chords, and how you’ve drawn the extended lines to indicate note duration, like a piano scroll. Can you explain the chord notation?

I assuming the little 7 is a chord with a b7, does that mean that if there is no 7 then its a triad?

Also, the minus “-” looks superscipted, is the minus just the minor chord in IFR terms?

1 Like

@jessemusical I think I’ve understood the chord notation. I assume that the second chord in Summertime is a half diminished seventh 7 chord, i.e. what we’d usually describe in IFR as a 7-b5 (minor seventh flat five 7 chord)?

Is there a reason you opted for the ‘half diminished’ notation, or is it just showing the chord names as stored in the musicxml that the page was built from?

If I was on my main computer I might try taking a look at the code, but can’t do that from where I’m writing this.

Thank you for the warm welcome @DavidW and @mem! It is very nice to hear that you are positive about it.

Since this is actually no longer about the ABC notation I requested to open a new thread for questions and comments about my program there. I suggest that we discuss future comments and questions there. I will however reply to your previous comments below.

And also good to hear that the program is working on your machine @DavidW. You are the first person besides from me to have converted a sheet using my program :-). Thank you also for the feedback of needing to install colorcet. I have now actually modified the code so that this is no longer necessary.

yes exactly. musescore allows you to directly export to musicxml format.

I am using the nashville number system for notating the chords. Have a look here for more explanation:

Yes exactly


Yes indeed!

This was indeed a conscious choice. I aim to make this program useful for both IFR and non-IFR students. Therefore I tried to choose notation that is most commonly used. As a reference I used the chord notation from the iReal Pro app.
However I am considering making a specific option for outputting IFR chord notation, if there is much demand for this.

The response posts above this point were moved from where this discussion originally started in Topic IFR and ABC Music Notation at this post.

The first post in this topic mentions that @jessevoostrum uses the Nashville Number System for chords, but the original intrdouction post didn’t mention that, hence the questions about chords from @mem & myself.

Posts below here are new content.

1 Like

@jessevoostrum You can certainly consider me as voting for an IFR chord notation option. :smiley:

1 Like

:+1: for IFR chord notation, I’m not familiar with the Nashville system, I know it uses numbers too, but IFR I know well.

1 Like

Hi. What version of Python is suggested for use here? (My last install was 2.710, it’s been awhile!)

@sj1 As I didn’t have an existing install I used a fresh download of the latest version (3.10).
I can’t readily see a minimum required version mentioned on the website or in the download (I’ve not examined the code), so it’s probably only the developer @jessevoostrum who can give a definitive answer?

1 Like

Very creative effort! For improvisation purposes, is it possible to show the “circled” tones for each chord and differentiate those from the melody?

Does anyone know of a repository of Jazz Standard Chord Progression (not lead sheets) written in the Melody Path format?ie with each chord, chord tones circled, etc?

Awesome Work!

I recommend using python 3.8+


Thanks Jesse!

Python 3.11.2 installed.

I’ve also sent you an email.

Thanks for mentioning your steps DavidW. I just did it too!

this is super cool! I hope I can understand programming…thanks

I’ve also gotten some requests for a place to make donations. This can be done via this link.

if you want to contact me directly, you can reach me at

thanks again for all the positivity!

Hi @jazzyotter, that is a very good idea. What do you think of something like this?

1 Like

I think that display is very in-sync with the IFR way of presenting “melody paths”. Nicely done!

I’d only add that somehow the flexibility of ShowMelody: On/Off and ShowChordTones: On/Off is very desirable to be available to the user as well, both as a matter of program output choice, and when using the web site.

Excellent work @jessevoostrum! Is there a way or option to place the tonal center (the 1) at the bottom?
However, not sure if the melody can still be highlighted without going above/below a single octave.
Then it’s consistent with how the IFR Melody map is constructed…incredible thought and effort on your part!