import of chord symbols from midi files should correspond with the formal note spelling

• Feb 4, 2017 - 16:04
Reported version
3.0
Type
Functional
Severity
S5 - Suggestion
Status
closed
Project

The import of chord symbols from midi files should correspond with the formal note spelling of MuseScore (C instead of Cmaj, C7 instead of C7th), see:

https://musescore.org/de/node/36166#note-spelling
https://github.com/musescore/MuseScore/pull/1719/files

In Musescore 2.0.3 an the nightly 2.1 these extensions were ignored too.

refers to:

https://musescore.org/en/node/39511

came again:

https://musescore.org/de/node/167066


Comments

Status (old) active needs info

I'm not understanding the request - what is a "formal note spelling"? Are you saying the MIDI file contains a particular spelling of a chord symbol and MuseScore is spelling it differently than what is actually in the MIDI file? Or that MuseScore is honoring the spelling in the MIDI but you want it to *change* the spelling to some other spelling you prefer? MuseScore doesn't really have any particular set of preferred spelling, so there really isn't any way for it to automatically change spellings of chords to something else. But if we're not honoring the spelling in the MIDI file, we should be able to improve on that.

To explain better, maybe you could attach a sample MIDI file and explain precisely what you would like to see different about the import.

Again, see:

https://musescore.org/de/node/36166#note-spelling

With "standard" I mean, I want to see for example the following chord symbols : A, Bb, B, C, C#,...

When I import the midi file below (in Musescore 2.0.3 or 2.1, in 3.0.0 it doesn't work; I hope it's in the sense of the user who upload the file) I get these chord symbols:

Cmaj (instead of C), Dmin7 (instead of dm7) and so on.

Attachment Size
Swing low.MID 1.29 KB

Hello, perhaps it is helpful to explain in English what I meant in the German Forum.

In short words: I miss another chord table (formal note setting) in Musescore, that automatically is able to change the actual chord view as mentioned below.

Importing a midifile, major chords are written CMaj, C#Maj, DMaj, ....
minor chords Cmin, C#min, Dmin, ...
and 7th chords C7th, C#7th, D7th, ...

In Germany we are not used to add the Maj, min or th.

We only write
C, C#, D, ... for major chords
Cm, C#m, Dm, ... for minor chords
and C7, C#7, D7, ... for 7th chords.

Much shorter, as you can see.
A score is clearer with this writing - not so long names!

If I import a midifile, all chords are written with maj, min and 7th.
So I have to correct each chord name by hand.

Would there also be a formal note setting, I could change the chord names by one click.

Best regards, Marion

From an old RHP file (whose I have only pdf prints) the importation in Finale yields guitar chords one major third higher.
I attach RHP, pdf and mus (hidden as txt)

The mus file, which is the result of the import menu of finale is erroneous. So the problem is not specific to musescore

Attachment Size
courte.xml 49.32 KB
courte (copie).txt 52.62 KB
courte chanson.pdf 43.57 KB

What I still don't understand is exactly what the MIDI file contains - is it text or some sort of code for major versus minor etc? If the former, shouldn't we simply preserve the spelling actually contained in the file? And if the latter, how should we know which of the many common abbreviations to use? For major triads I agree it is standard to use no abbreviation at all, and for dominant seventh a simple 7. All else is subjective though. For major seventh some use Maj7, others Ma7, others ma7, others a triangle. For minor some use min, others mi, m, or a minus sign.

You should not think about the content of midifiles!
Cause the chords are already recognized by Musescore!

It would be enough to have a new chord formal setting one can change the chord names.

That is not up to only midifiles.
It is also important for all scores that are written with other formal chord settings.

Compare it with the font you read my words.
it could also be written with Arial, Helvetica, Verdana.....

Same with the chord spelling!

:-)

So further: I'm not familiar with midi files, so I don't know what the midi file contains. But in the attached example, what is meant whith a Cmaj7 chord?
When a Cmaj chord is a C Major chord, is a Cmaj7 chord a C major chord with a minor or a major 7? There I see confusion.

Here the notes for those chords:

C maj: C-E-G (=C)
C7th: C-E-G-Bb (=C7)
C maj7: C-E-G-B (=CM7)

C min: C-Eb-G (=Cm)
C min7: C-Eb-G-Bb (=Cm7)
C min Maj7: C-Eb-G-B (=CmM7)

Yes, not so easy... ;-)

MuseScore recognizes *lots* of variations. It recognizes Cmin, Cmi, Cm, and C- as all meaning the same thing. none of these is any more correct than any other. Normally you type chord symbols in and MuseScore simply accepts what you type. if you like Cmin, then type Cmin and MuseScore is happy. If you prefer Cm, then type Cm and MuseScore is equally happy. It has no preference of its own - it simply obeys what *you* tell it.

So what I am *still* struggling to understand is, what is actually in the MIDI file? If it literally contains the characters "Cmin", then that is exactly what MuseScore *should* display - just as it does if you *type* "Cmin". If, on the other hand, the MIDI file contains some sort of numeric code that indicates a minor chord but doesn't actually specify a particular spelling, there really is no way for MuseScore to know which spelling you want. Some uses prefer min, others mi, others m, and others "-". No matter which MuseScore picks, some users will be happy, others not.

It *looks* from the code like the latter is the case here - the MIDI file does not contain the actual spelling but just a numeric code and MuseScore needs to convert it to something. So as I said, any spelling we choose will make some people happy and others not.

That said, if we are truly choosing to spell a major triad as "Cmaj", then I agree this will make almost no one happy and we should change that one at least. Same with 7th instead of 7 for dominant sevenths. After that, though, it becomes subjective.

I agree that one may be happy with spelling maj and the other not.
Don't know about codes cause I am no programmer.

What I don't understand:

Musescore is able to recognize the chords, cause after import you can read them in the score.
It writes down another spelling as it comes from keyboard. But that is no problem!

Please do me the favor and import my "Swing Low" midifile in Musescore.

And then try to change the formal setting into German.
You will see that the maj or min spelling is NOT deleted.
But exactly this should happen.

OR there should be a new formal setting that deletes this "maj", "min" or "th" settings.

Oh is it really so difficult to explain?

;-)

So no matter which spelling comes from the midifile:
There should be a way to change the spelling into the preferred chord formal settings.

What till now is not possible!

:-)

Now I set some chords by hand in a new score - not by midifile.
As it seams, the German formal spelling only influences what happens with Bb, B and H.

But there is no influence what stands behind the letter, so with maj, min, 7th ect.

So there should be a way that you can also the common spelling in a sheet what shall be used for major, minor, 7ths, dim, ...

This would be a great new basic setting for the whole Musescore programme, I think!

Only an idea...

Most people prefer MuseScore to *not* force them to use one particular spelling. But if you happen to prefer to have everything you type automatically be "corrected", you can get this effect by creating a custom chord description file that contains your preferred spellings. then everything you type will be checked against the list and converted if possible. Perhaps some day we'll figure out a way to make this work for imported MIDI files as well.

" then everything you type will be checked against the list and converted if possible. "
Does it actually make a difference if the score is imported by midifile - or set by hand?

It would not be so important if a correction is done while importing the midifile.
It also can be done after the import.

And aaaaah...... that's new to me!
Perhaps I didn't discover this automatical correction till yet - same with the possibility to create an own chord description!

Where do I find that?

If I knew where to change the spelling into the attached spelling all will be ok!

I am sure in future many of German players will be happy abot that.
Specially those who play Yamaha keyboards - cause that is the spelling of them!

Attachment Size
midi file chord spelling.jpg 19.32 KB

The German spelling option in MuseScore is only about the note names (for roots and bass notes). There is nothing specifically German about the abbreviations used. Some American musicians prefer "m", others prefer "mi", others "min", and others "-" and the same is true of German, French, and Italian musicians. For instance, jazz musicians tend to prefer either "mi" or "-" regardless of nationality. So, when you switch to the German option, it changes the note names - just as it was designed to - but does not change anything about the rest of the chord.

The custom chord description files will change the spelling of chords you type. It won't work for MIDI because you have to have loaded the chord description file *before* you enter the chords, and there is no way to do that with MIDI. Also, be aware that chord symbols are *not* part of the standard MIDI definition - as far as I know, it's a special proprietary Yamaha extension.

If you need further help using MuseScore, please ask in the Support forums. Creating a custom chord description file to coerce chords you type is not terribly difficult, but there are more people on the forum who can help, and more people will see the discussion and be able to benefit from it.

Hello Marc,

yes, I understand what you wrote cause I found out the same yesterday.

It is always difficult to be newbie and know about such things like different handling of abbreviations and note names.

Thanks for your tipp to write in the support forums - hopefully there will be someone who wants to create such a custom chord description.

Best regards, Marion

Again, MuseScore has no preference. There is no sense in which MuseScore thinks of "m" as being better than "min" or "mi" or "-". They are all accepted interchangeably. So there is no particular basis for MuseScore enforcing any particular preference. This proprietary Yamaha extension is the only context I know where we have to construct our own chord names. MusicXML has specific ways of transmitting spelling of, BIAB defined its own standard, etc. So we have to arbitrarily pick some spelling, nut any spelling we pick will make some happy and others unhappy. It's not our fault Yamaha failed to define this better in their own spec, but as with all things MIDI, it simply was not designed to convey notation information well.

Yes, it is clear that musicians have their own preferences.

But - looking into the Musescore "stdchords.xml" file (one can find in the installed Musescore programme) gives a hope that a user is able to change the chord applications to his own spellings.

Or am I completely wrong?

As I said above, we should definitely remove the Maj from triads (also sixth chord) and the "th" from seventh chords. Probably some other cleanup would be possible non-controversially. But it descends into subjective territory very quickly. For instance, I would prefer any of 7aug or 7#5 or 7+ over aug7. And Maj(9) is ambiguous at best to me so I would not know for sure what to change it to. I also know there is a not insignificant contingent of musicians who prefer parentheses on things like 7(b9). We do have to make a call on these, but it is by no means obvious what that should be. Only that whatever we choose, some will be happy, others not. Unfortunate, but I guess that's just how it will be.

As for stdchords.xml, this is an old file for 1.3 compatibility only. But yes, that shows how it is possible to define a chord list that will automatically "correct" anything you type. If it were somehow possible to force a user-specific chord description file like this to be loaded *at time of MIDI import*, it would in principle be possible to have this work for MIDI as well. but that would be a bit of work, and I'm not convinced it is worth it just to support a poorly designed proprietary file format that is not a good choice for notation in the first palce. better we encourage people to use formats like MusicXML if they care about notational details like how their chord symbols are spelled.

@ Jojo,

yes, this would also be ok.

The thing why I investigate so much here is mainly the application lenght.
What is bette to read for you above the stuff?

C E G7 Dm F/E ...

or

Cmaj Emaj G7th Dmin Fmaj/E

?

As you can see it needs much more space for the lower version!
The upper one is much faster ro read.

Allthough the result are the same chords!

------------

@ Marc

I would like to do this work if I had the the chord description file that can be alternated with the standard chord description file.

There are so many keyboard playing people worldwide!

And it will me more that will use Musescore in future.
My keyboard girlfriend creates a very good tutorial these days about midi file import in Musescore.

I agree, I like the shorter version better too, but others may differ...

For that "Maj" and the "th" of "7th" there seems to be some consensus though to get rid of them.

Let's see whether there's some consensus about a few more...

We would never please all, but if we can please the majority, it should be done

Reg. chord description file: have a look at the files in "C:\Program Files (x86)\MuseScore 2\styles\" (if you're on Windows)

Jo-Jo, we don't have to try to please all.

If there would be different chord description files one could alternate each one would be able to take the one he prefers!

It is like a font in a document.

One prefers Arial, the next one Helvetica.

Why not offering the choice - meaning several fonts (in our case several chord description files!)

Yes, once again, we are all in agreement that Maj for major triads is not needed, nor is the "th" for seventh chords. it is after that point where things get subjective. You say you prefer "m" for minor chords,. but you shold be aware that the closest thing we have to an international standard for chord symbols - Brandt/Roemer - says one should not do this, and I as well as most other musicians I know (from a variety of different countries) agree. It it to easy to confuse "m" with "M", so that Cm7 and CM7 look too much alike. People may ignore that advice in their own charts for their own purposes, but I do not believe MuseScore should be making that particular error itself, at least not by default.

We got rid of the need for these chord description files in 2.0 (they were needed in 1.x), but you can still use them. See above for where to find them, and have a play with them

True - I was responding to #27 (which was basically reiterating the original request).

Yes, we could add a new feature to MuseScore allowing this to be user-specified. I personally feel this effort should be very low priority for reasons I have already explained: XF is a proprietary format, MIDI is a bad choice for notation in the first place, , etc. I feel development effort could be better spent elsewhere. But if someone feels like this is important enough to them to want to work on, I certainly won't object.

Marc, which one is the actual standard chord definition Musescore actually uses?

Cause there are different ones in C:\Program Files (x86)\MuseScore 2\styles\

Just wanna try what I can reach ... only for myself! ;-)

Also with NO midi file import!

What about having a "musescore internal denomination", and an "external" one (to be chosen by the user), in fact the same system than the one used for instruments....

Simplest is bestest.

I prefer to get rid of all superfluous markings in all circumstances.

Personally I like m, circled 7 for ma7, 7, +9,-9,+11, alt (or flat 13), 13 for 1/2-whole dim., circle with slash for half dim.

Btw. I vote also for a pure major chord without the abbreviation maj and a tetra chord with a minor 7 without the abbreviation 7th - but I'm a German user too, so the opinion from other countries would be nice.

What I don't understand is, I think the import chords from should orientate with the note spelling of "standard", "German", "Full German", "Solfeggio", "French" without any abbreviation and so on.

If someone want to use these further abbreviations, a custom chord description file should change this.

The default chord description file in 2.0 and beyond is chords_std.xml. But as you will see, it does not define a list of specific chords. It merely defines a few rules for how specific font characters should be handled. As I have been saying, MuseScore no longer has a built in list of chords - it parses and understands whatever you type.

But that supports only people that create notation from zero.
Not those who only want to change settings they don't like.

Right. As I have said, MIDI is really a poor choice for importing notation because it lacks a lot of information - the inability to specify chord symbols is only a small part of this. And this proprietary extension doesn't do you any favors here. I am not sure how you are creating your chord symbols in the first place, but it would almost certainly be more efficient to do it within MuseScore rather than relying on Yamaha's proprietary and very limited extension.

But yes, as I have also said, some day some program may well decide to add a feature to provide more control over the import of this format., It probably still won't be as efficient as simply entering the chords in MuseScore, though.

From my side thanks for the reponses and the discussion. Yes, maybe someday someone enthuastic who read this thread will improve the rules of midi import from chord symbols or program/create a special selection filter therefore. It would be maybe a minor feature request but a feature request fewer.

It's clear - you must see notation with other eyes as the keyboard playing world.

But!

Midi is a mightier "instrument" as you probably think, although it has its limitations.

It is wonderful for composers cause you can directly record and play tracks and listen immediately to the results. And you have the chance to change each midi event after recording.
There are millions of midi files available worldwide - free or from professional sellers.

Was is not recognized till now - and that is the reason that my girlfrind creates a Musescore midifile import tutorial these days:

All people that search notes for their favorite songs and don't get them have a further chance!
Cause there are all those midi files that often are much more up to date than music sheets.

Each midi file contains notes, chords and lyrics.
And Musescore can be the bridge for all those unhappy sheet-searching musicians to get what they search!
Cause they can open midi files by Musescore, create their own music sheets and print them!

Perhaps that will open your eyes why I am so persistent!

Best regards, Marion

What I am saying is that however you entered those chords in the MIDI file, it wold be easier to simply enter them into MuseScore. Then they will be spelled however you prefer, right from the beginning.

MIDI has its uses, no doubt.

Hi Jojo,

how wonderful to see that you already started!

What really hurts in my eyes is that

minMaj7(9) instead a simply
mM7(9)

I know, leaving the old standard with a long written min and Maj there's no chance to change that.

Nevertheless it hurts. Specially in bars with many chord changes.

But thanks for your effort.

Best regards, Marion

Hi Jo-Jo, is there a way to contact you per mail - I just would like to talk in German with you cause perhaps it is easier to understand.

This is captured from the most important sequencer programme for Yamaha Keyboard players, named XG Works.
It is very old but still the most important programme for those who create midi files with Yamaha keyboards.

Also the professional keyboard software sellers still use it.

@MarionH: cou can contact me via "Send a message", seens when selecting my name here.
However, it might be better to kepp discussion public.

Better, in my opinion, would be provide a facility that benefits *all* users, not just the subset importing from a proprietary format. So, instead of a facility that allows you to control import ot these files specifically, a facility that automatically respells all chord symbols in a score according to some sort of list you provide. This could also be combined with a facility for controlling the actual layout of the chord symbols - superscripting, etc. It's a big project, and I think it important not to make the job more difficult by adding the extra complexity of more Yamaha-specific code.

Meanwhile, it remains the case that one is far better off entering the chord symbols directly into MuseScore rather than entering them into a proprietary sequencer program and then exporting to MIDI and importing to MuseScore and hoping that somehow the process will happen to guess the spelling you prefer despite the fact that the MIDI file simply does not contain any such data. By entering the chord symbols directly into MuseScore, you will be guaranteed to get exactly what you want the first time.

I agree that a facility should benefit all useres - or the majority.
The more cause Musescore is used worldwide.

I'll be calm now and watch your progress - and also the wishes of other Yamaha keyboarders.
They will come, I think.

Best regards, Marion

Status (old) patch (code needs review) fixed

Fixed in branch master, commit 590083df66

fix #167196: change some MIDI XF chord symbol spellings

to not take the strings from the MIDI XF spec but look more or
less like what MuseScore's old stdchords.xml did

Fixed in branch 2.1, commit 3baff93bfa

fix #167196: change some MIDI XF chord symbol spellings

to not take the strings from the MIDI XF spec but look more or
less like what MuseScore's old stdchords.xml did