IFR and ABC Music Notation

My goal is to create my own library of tunes in the IFR notation from the book, which shows melody and chords by bar. No lyrics. I’ll use this to play the tunes in all keys, and I hope start to remember better what different phrases sound like (I want to say, “aha, that’s a descending arpeggio from the 6th over the 4 chord, etc.”)

I’ve attached my first stab at creating these in GOODNOTES on my ipad (it’s an $8 app), instead of pencil and paper. It took a couple of hours to learn the basics of GOODNOTES, and I decided to use music paper as the background, only because it makes it easier for me to line up the little numbers.

If you saw my handwriting you’d immediately know why I want to use a simple graphics tool. But beyond that, I think using pencil/paper or a simple graphical tool will make you actually focus better on the tune as you construct the tonal trascription, as David Reed calls it. I expect with a little more practice, GOODNOTES will be just like pencil/paper to me.

Great stuff! I tried doing that but my technical skills weren’t up to it. Instead, I have been trying to visualise standard notation melodies directly in IFR rather than writing down the numbers. It turns out to be fairly logical. So in the key of F with one flat, I see the C as 5 so all lines above and below are therefore the odd numbered scale notes. I’m not good at it yet but I have a feeling it will be more rewarding for me than trying to add IFR numbers physically to music notation. So it’s just sight reading IFR (instead of solfa) rather than adding it as an extra line of notation.

Welcome @slingaya, and thank you to everyone else who has contributed to this thread. I’m far behind all of you in my adoption of these tools. Our current system is taken directly from the Flintstones. On the surface it looks automated but inside the machine is a tiny dinosaur (actually a human named Jessé) who creates most of our graphics using a font that we created (called the IFR font).

Standardizing on the IFR font was a step forward. Having a library of templates and recycled illustrations certainly helps too. But whenever we need to write out a whole new song in tonal numbers, this is still a painfully slow, inefficient manual process.

My own needs for a solution align with what @DavidW and @hender99 described. But in my case, I don’t need the translation from traditional sheet music or from audio recordings. So we don’t need a tool of harmonic analysis. Honestly it would be a huge step forward for us to simply have a tool of harmonic dictation. In other words, even in cases where we already know the tonal numbers to a song, it would be wonderful to have a tool that allows us to input this data without having to use clumsy image editing tools like Illustrator.

What we’re doing today is the musical equivalent of type setting from the early days of newspaper publishing. Every time we wish to publish a song, someone needs to drag and drop every tonal number into its place in an image. Surely this can be updated!

It’s easy to fantasize about very sophisticated solutions which would make use of voice recognition and pitch recognition to automate this entire process for us. But at this point, even just having a simple program to automate the placement of the numbers on the page would be a step forward.

So for example, imagine that I already know the tonal numbers to a song, and I merely want to dictate these tonal numbers to the program. For this purpose, I don’t even need to sing the pitches because I can just type the numbers. I only need the program’s help with two things:

  1. placing each number vertically based on its value relative to the other numbers
  2. placing each number horizontally based on its rhythm (which measure, which beat)

That’s really all we need. And for this purpose, the data entry tool could be the keyboard. The natural notes 1 though 7 could just be the keyboard keys 1 through 7. And whenever we need to express an outside note like b3, this could just be the letter key directly below keys 2 and 3 on a standard computer keyboard. (I’m talking about the letter W if you want to look at your keyboard to see what I’m picturing.)

When I type this letter W, by default the program could place the note b3 on the page. Then after the entire song has been entered, there should be some easy way to mouse over that note b3 and convert it to #2 if I prefer to express it that way. (And of course there needs to be an easy way to select and manually correct any of the entered notes, because mistakes will happen.)

The scheme above solves the problem of how to tell the computer which tonal numbers we want written. The next question is the vertical placement of these notes based on their pitch. This is a bit more complex because the program will have to make some judgments about this only AFTER all notes have been entered. But I think there must already be algorithms created to distribute objects vertically within a given region based on their values. If not, it should be a straightforward thing to code.

The only remaining problem is the distribution of the notes horizontally based on their rhythm. For this, we just need the input process to be a live recording. There should be a parameter to let the user specify a tempo, and the program should provide a metronome beat. There should be a record button. When you press record, the program should start with two measures of count-in. Any keys pressed during these two measure of count-in should also be recorded, and should be understood as pickup notes that are played before measure 1 officially begins. And until the record button is pressed again to stop the recording, the user should be able to type notes on the keyboard, and these notes should be displayed on the page at the exact moment in which they are typed. So for example, if I press the number 3 on my keyboard roughly on the first beat of measure 2, then a number 3 should be printed on the page as the first beat of measure 2.

In existing music dictation programs, much of the complexity comes from the notation of rhythm. For example, if somebody types a note just a millisecond too late, you don’t want the program to interpret that as a “64th rest” followed by a tie of 63 separate 64th notes making up the rest of the beat. But for IFR, I would propose that we simply sidestep all of that complexity by avoiding any rhythmic notation whatsoever. All we want from the computer is help with the initial dropping of the numbers on the page. If we can just get each number into the right place both vertically and horizontally, any errors in horizontal placement can be fixed very quickly with a simple drag and drop of the mouse.

As you can see, I’m not looking for a program that “understands” the music in any way. We just need a program that allows us to enter data in time through the mechanism of a “record” button, and that spaces out this data horizontally according to the time in which each keystroke was entered. And then we want that program to also distribute these objects vertically based on the values entered. As for the question of multiple octaves, this could either be solved at the moment of data entry using different keys (which I personally don’t like) or it could be solved after all of the data is entered. To fix the octaves after the recording is finished, there just needs to be an easy way to select a bunch of notes with the mouse and choose to raise or lower them by one octave.

And again, remembering that this is only a data input tool, the program should then turn control back over to the user to make any manual adjustments or additions. If this program could somehow interface to Adobe products like Photoshop and Illustrator, that would be incredible. But does that even exist?

I don’t mean to hijack the conversation. I just wanted to add one more set of requirements, just to give another vision of how a tool like this might be useful. But I appreciate that other people have other requirements, and perhaps we’re talking about different tools altogether.

I wonder if the Musescore software might be of assistance @ImproviseForReal ? I’ve only tinkered with it and am barely even a beginner let alone an expert, but I think I read somewhere that you can set up custom note heads? If it was possible to have your font as note heads that could be amazingly useful!

Yes, that’s a great suggestion, @DavidW. We’ll definitely explore all technology options before the next time that we need to mass produce tonal sketch drawings. For now we’re just kind of limping along, but I appreciate the conversation and I would like to be smarter about these things.

@ImproviseForReal re. MuseScore.
I did a quick search…

There are various notehead options (https://musescore.org/en/handbook/3/noteheads), but I’m not sure that’s necessarily helpful.

‘Notehead schemes’ look more relevant (Notehead schemes | MuseScore).

Those give a different look for each note/scale degree, and include a moveable do solfege option.

The obvious (to us!) omission is actual IFR like scale degree numbers. :frowning:

However, since at least some of these styles originated as a ‘plug-in’ facility (this one, maybe) in an earlier version, maybe there’s a way given someone with appropriate skills (or perhaps suggest it to the developer community)?

I’m not certain, but I suspect that various other parts of what is normally visible in Musescore could be made invisible one way or another to get a more IFR like view?

If you could get a Musescore based solution close to what you want, input might be as simple as using a MIDI keyboard! https://musescore.org/en/handbook/3/note-input?

N.B. I am not an expert, this is speculation on some just stuff I found using the excellence of modern search engine technology. :wink:

Hello IFR friends,
I’m back again with a revised version of my adaptation of Jef Moine’s ABC Notation Extension Module to use in the IFR world. (s. original posting of Jun’22).

My Javascript-module is named STCN for Standard - Tonal - Chordal - Notation.

The first area shows the melody in standard music notation, with the lead-sheet chords (eventually with extensions and alterations) right above it.
The original rhythmic notation is preserved (duration, ties, slurs, triplets,…). The current key is also shown.
(Caveat: I have not thoroughly tested modulating to another key yet …)

The next area shows the real analysis stuff.
D-Line:
The lead-sheet chords shown IFR-wise as degrees in the current key, respecting the chord quality and using the slash to denote non-root bass.
T-Line:
This line shows the melody notes in the TONAL map of the given Major key, and marks them according to their appropraite octaves:
unmarked for the basic register, a '-superscript for the next higher octave,
a ,-subscript for the lower octave, and so on.
Tied-notes are shown in a slightly smaller font with a sort of underscore.
Rests are displayed as small square irrespective of duration, but in sync with the rest-marks in the standard notation.
C-Line:
This line shows the melody notes in relation to the root of the current chord. I call this the Chordal system - for a few beats I am now living in the world defined by this chord.
Same remarks apply to ties and rests as for in the T-line.
Q-Line:
As a beginner I have found it most supportive for playing Chord melody to know at a glance the quality of the world/chord I am currently living/playing in. Thus this line is restricted to basic triads or tetrads.

My ABC-notation for Guitar Chords supports some additions eg
“CM7: #x1 /G” leads to the C Maj7 chord with a #11 extension and with G in the bass.
However the spelling in the Q-Line will show only the basic Triad or Tetrad.

The ABC-script to render the song in a local browser is:
ifr_abc

Is this approach still of interest at all? Would anyone want me making the module available to others? (I’m still looking to package in a self-containing app under Windows 10 - that could take some time …)
Anyway,suggestions or hints for improvement are most welcome.
Friendly yours,
Stenio L.

Wow! That is both fascinating, impressive (& comprehensive. Well done.

The only advance I could think of would be some form of ‘melody contour’ for the T-Line melody note numbers, i.e. vertical position within the line varies (at least a little) with number, as IFR do in their charts, but I appreciate that could be very complicated. What you already have is a great advance.

I’m moderately technical but at present I’d have no idea how to integrate it into an ABC renderer, so access to the module would only be of any use if it also included notes on that integration process (or a pointer to where that information can be found).

I can’t say for certain that I’d use it (I’m moderately happy with informal my hand written charts, and pretty busy with other stuff), but if I found the time it would be a very interesting possibility to investigate.

Thank you very much for sharing this glimpse at the work in progress.

I’ll tag David Reed @ImproviseForReal so this gets bumped for him.

@slingaya
Would it be possible for you to write up 1) step by step installation/setup instructions and 2) a step by step user guide for getting a song rendered? I’d certainly be happy to see that.

Doesn’t have to be fancy… just accurate and easy for the less technical of us.

@slingaya Hi Stenio, thank you for sharing this with our group. And thank you @DavidW for tagging me. It’s very interesting to see how you’re approaching this problem. Whatever the technical details or logistical issues are, the important thing is the creativity and thought that you’re putting into framing the problem in the first place and imagining solutions.

But because you mentioned that your intention is to create something for use “in the IFR world”, let me paint a picture of some of the issues on our side.

  1. COPYRIGHT. For us to be able to recommend (or possibly even distribute) a tool like this, all song content would have to be input by the user somehow. We can’t distribute a tool that already contains information about song melodies, because these melodies are now “owned” by a handful of parasitic “publishing companies” who for some reason have not yet gone extinct. If the logic of the free market prevails, eventually these companies will die a painful death because they add no value. But ownership is a pretty sacred principle in the modern world, and for the moment these companies have been able to buy up and monopolize vast swaths of our musical culture. So this is an issue that is paralyzing an enormous amount of teaching, art, and new innovation. But it’s our current legal reality, and it’s directly relevant to the applications for this kind of tool.

  2. SUBJECTIVITY. Music is an abstract art form. We can study its raw materials in the controlled environment of a teaching method like IFR. But the goal of this teaching is not to develop a methodology for classifying every sound in the world and giving it a persistent, objective label. So music is not like chemistry, where we have a finite number of elements that we can classify in a periodic table. It’s more like mathematics or philosophy, where any given concept can be analyzed from multiple points of view. So the goal of the IFR method is not to give our students a formula for converting written notes into tonal numbers. The goal is to give our students the personal resources to relate their OWN feelings to the tonal numbers. But the same note that feels to you like a 6 could feel to me like a 2. Especially if the other notes of the song do not fit neatly into any single major scale, then there is no mathematical way to establish which point of view is “better”. This doesn’t diminish the utility of the tool you’re developing. It can still be an incredibly valuable teaching tool. But its greatest value would be to permit the user to quickly switch between multiple points of view, allowing the USER to decide which point of view to adopt. For example, let’s say that the user has already input all of the notes to “Summertime” (to build on your example), using absolute note names like C#. The next step should be that the user can select a key center from which to analyze the song. For example, given the notes and chords to Summertime, the key of C is an obvious choice. So what happens when I tell the app to analyze the melody and chords relative to C as the key? Okay, that’s interesting. But since the main tonal center is Am, next I would like to see a complete analysis in tonal numbers where note 1 = A. That will produce the familiar concepts of a “minor scale”. For example, that first Am chord will now be shown as 1-. While this is not the primary point of view that we would teach first in IFR, it is a valid and interesting point of view. And of course there can be others. So ideally, this tool should help the user perform his or her own harmonic analysis. It shouldn’t attempt to analyze a song for the user. Instead it should assist the user in quickly visualizing the consequences of any particular point of view.

  3. DESIGN. The final issue is the simplicity and beauty of the final result. I realize that this is a WIP and that the presentation layer can be perfected later. But for this to be useful to IFR students, you would have to use the actual IFR symbols, and we would have to find a way to present the content that is much easier to understand and process at first glance. But I realize that all of this can be designed later, and that perhaps the issues above are more relevant to deciding which direction you want to go.

So those are some of the issues that I see with the development and adoption of a tool like this. But if all three of these issues can be solved, then I think it could be incredibly useful (and great fun) to have a tool like this to facilitate instant harmonic analysis using parameters input by the user.

I hope these comments add something to your assessment of the landscape. Whichever directions you decide to explore, I hope you’ll continue to let us know about your progress. And even if you decide that you need to develop your tool in a way that doesn’t quite fit what we do in IFR, remember that the world is much, much bigger than IFR, and there are many different ways that you can make an important contribution to the world’s understanding and enjoyment of music. So above all, I just encourage you to keep going, and to think deeply about which direction YOU want to go with this idea. And if we can help in any way, just let me know.

I like to use ABC notation, but like to keep things looking simple and clean. And while technology can be useful, it sometimes pays dividends to sit quietly with a piece of paper and a pencil and draw rising and falling sequences.

What drew me to IFR was the simple way it lays out melody and harmony using the numbers, and I have been combining ABC notation and IFR numbers when notating some of tunes I’ve been learning.

@slingaya , what @mem writes above pretty much describes my situation too. I’m not seeking for fancy multi-dimensional analysis.

My ideal would be a straightforward way (& ABC style notation fits that bill) to prepare IFR number based melody contour diagrams as a better version of what I currently draw by hand (neater, easier to organise, archive , share, etc.,).

1 Like

Hi all,
This weekend @ImproviseForReal brought this thread under my attention. For the past few years I have been developing a tool that converts conventional sheet music to IFR notation, which is I think similar to the stuff you have been discussing here. Currently the output of the tool looks like this:

I have uploaded all the songs I have converted so far to IFR notation to this website: integerbook.com

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: https://github.com/jessevoostrum/music-visualisation 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!

2 Likes

5 posts were merged into an existing topic: Tool for converting sheet music to IFR notation

That is a very good idea @jessevoostrum .

The topic ‘Tool for converting sheet music to IFR notation’ can be found here.

N.B. The responses to @jessevoostrum 's original post, and @jessevoostrum 's reply have been moved to the new topic * Tool for converting sheet music to IFR notation *

This is a dream come true Jesse. I’ve played with a plug-in on MuseScore for a while using Jianpu (numbered musical notation). But the results were nothing like what you have. You did an awesome job!

1 Like

Hello IFR friends,

Based on the several comments and suggestions I have received in the past weeks, I have decided to “simplify” my STCN module
This IFR module does NOT do any any automatic analysis of the Melody with respect to the current Key, and even less, does NOT do any decoding of the Melody w.r.t. th current Chord/Harmony.

Although IFR uses the Standard ABC-Notation as far as possible, I have had to minimally extend the ABC Chord-Notation which is then displayed ad verbatim in the Chord-Line above the Standard Staff.
The first section expresses the Basic Harmony (Triad/Tetrad) as letter-names.
The optional second Section (Prefixed by a colon :slight_smile: lists any extensions/alterations numerically. Finally a third Section (optional - prefixed by a slash /) to list the Bass note.
This chord specification is then translated to David Reed’s IFR-Notation.

I have put together a minuscule User’s Guide (this preliminary version attached here).
IFR_STCN_UsersGuide_V.0.1.pdf (910.0 KB)

Furthermore, I have packaged the whole collection to run as a stand-alone app under Windows 10 and the Firefox Browser. The User’s Guide has a section detailing the installation of this package.
Link to my Dropbox:

Please let me know about any errors and let me have your suggestions for improvements.
But for now and the next months, it’s back to the practice corner for me -
as the gurus always say: to learn Guitar Playing, you have to PLAY the guitar…
Regards,
S.L.

Thank you very much @slingaya . I followed those instruction, loaded in an unmodified ABC file I had handy and it came up just fine (including the option to ‘play’ it).

I am now trying to get to understand what I need to do to adapt the unmodified file. I already have some of it worked out, thanks to your documentation.

I was getting an error stack at first and no analysis, but I discovered that was because my file didn’t have any chords defined! As soon as I added a chord that error went away. :slight_smile:

Thanks again.

I now need to go & do some real playing practice you mention. :wink:

Tagging David Reed @ImproviseForReal

@slingaya I think it would be good to mention in the documentation that ‘IFR’ & ‘STCN’ style abc files for the Clare De Lune examples are available in the ‘ABC_Trad’ folder (ClaireDeLune_IFR.abc & ClaireDeLune_STCN.abc).

Are you aware that if a lyric line (i.e. w:) is included in the STCN version the lyrics clash with (i.e. occupy the same space as) the ‘D’ & ‘Q’ data?

WIth IFR style lyric lines seem to be okay, other than that they are duplicated (as they are with STCN). It would be nice if there was a mechanism to allow for the lyrics to be present for just one of the voices?

I’ve had the occasional error stack after an edit. Typically that has disappeared if I save, close the page, then restart. I’ve not noticed anything repeatable I can report.

I appreciate you are busy with other things, but you did ask for reactions.

Overall I think it look like a very useful & flexible system.