IFR sheet music library and tool for converting your own sheets

(This is a continuation of Tool for converting sheet music to IFR notation)

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:

On this website: http://www.integerbook.com/ you can convert sheets from my personal library into IFR notation and you can also convert your own sheets by uploading them.

The following options are currently available:

add lyrics:

color the notes according to the circle of fifths:

show the chord tones:

analyze the song from the perspective of the (natural) minor scale:

view only the chord tones:

There is also an option to visualise bass lines:

When you are converting your own sheet, the format should be .musicxml. You can control which note is recognised as the “1” by setting the key of the song in the musicxml file.

I hope this is useful to some of you here. Feedback and questions are very welcome and donations can be made here.

3 Likes

I’m currently learning Bach’s Prelude No 1 in C major, BWV 846, on piano, and doing a bit of IFR analysis as well. How easy would it be to get this into a form where I could your tool to generate an IFR version?

I’m not familiar with musicxml, but am quite tech savvy. I have an aging laptop running Ubuntu, where might I start, or is it a lost cause on my outdated technology?

I’ve had a look on your website, and looks like I need a .musicxml file for the music. I’m not a subscriber for MuseScore, are there any other such sites which might allow me get hold of one?

1 Like

I have a file from mscorelib.com of (what I think is) the music (WT1_1A.mxl) and gave it as an input to your converter. It seems to have only plotted the treble (clef) notes, which is very useful, but not the bass notes.

I can’t read the file (I’ll try on my laptop later), but I wonder if your software is confused by how the bass part is written (?). I think, in the usual music score, it’s written in two voices (bass and tenor voice maybe), with the tenor voice starting with a short rest. The first note in the bass clef is written as a semiquaver/sixteenth note rest on top of a C note minim/half note.

It is very easy. The only thing you need is a musicxml file of the score you want to convert.

Since the code is running on a server, the only thing your laptop needs to do is have internet access. so no further requirements on your laptop.

on google you should also be able to find some alternatives. There is also this initiative that is trying to make the sheets musescore freely available for everyone: https://github.com/LibreScore/app-librescore which you might want to check out.

1 Like

The program is currently ignoring the notes in the bass clef. The reason for this is that many sheets have some kind of accompaniment in the bass clef that I prefer not to have in the output. I might make an option in the future for selecting whether you want to plot the bass clef or not.

For now, I think this is what you are looking for right?
Prelude_I_in_C_major_BWV_846_-_Well_Tempered_Clavier_First_Book.mxl.pdf (233.1 KB)

2 Likes

I think it would be a useful option to have.

Yes indeed, thank you.

1 Like

This is very cool, thanks Jesse and all. I’m new to IFR and I have a question though. In IFR are minor keys always number-notated in the relative major key? When I see Summertime I’m used to thinking of the 1 as A in the key of Am.

Hi Herb, thanks for reaching out.

Yes, in IFR minor songs are usually analyzed from the relative major scale. Have a look at this post: Q&A - Best way to analyze standards in a minor key

In my notation system there is however also an option to have the root as 1 for minor songs. This can be done by selecting the option minor when generating the pdf. See also the fourth example in the first post in this thread how that would look like for the first line of Summertime.

1 Like

Thanks once again, Jesse. That link is very helpful. Plus I can see where your notation system is going to be a great tool to use as I get more and more familiar with the IFR method. Great job!

@HerbSmith In IFR, we base everything on the key signature. So if we are in A-, we are using the key signature where C=1, and A=6. The relative minor of C is the 6th mode or in IFR language, Harmonic Environment.

Looking at the relative minor this makes it much easier to see how all 7 notes that are in play relate to each other. Regardless of the harmonic environment, or mode, 7 notes and only those 7 notes are in play. The chord provides the harmonic backdrop using 3 or 4 of those same 7 notes. And keeping them numbered in relation to the major root makes it much easier to see that relationship.

3 Likes

I need a .musicxml file for the music. I’m not a subscriber for MuseScore, are there any other such sites which might allow me get hold of one?

Musicxml is a standard file format for sharing scores and not tied to MuseScore, though it supports them (open source and open standards go together). So you should find other sources

There is an experimental pdf score converter on the musescore Web site. I had some success with it

Note also musescore is an app as well as the website with the same name and you can create your own scores

1 Like

Yes please to bass clef option.

A problem with 1 based minor scales is you have to alter some of the numbers. Eg add flats for relative/natural minor (and sharps for harmonic or melodic minor). In solfeg this means using new syllables from chromatic solfeg which vary if you go up or down in pitch. Ugh!

6 based minor avoids this completely. Phew! It also fits with the major scale modes if that ever becomes of interest.

2 Likes

This looks really good and I will try.

I notices musescore has an option to show solfeg syllables in note heads and wondered if it might do numbers also. But it’s really not very readable. unlike your solution.

Thanks for sharing your code. I starred and followed on github.

2 Likes

Very good point, Steve, thanks

At last, the MuseScore app is now MuseScore Studio. No more confusion!