Skip to main content
Topic: MIDI Import has bug when part rhythms differ: not worthy of Noteworthy! (Read 4487 times) previous topic - next topic

MIDI Import has bug when part rhythms differ: not worthy of Noteworthy!

When you import a track that has been notated in two parts, which have different rhythms, it cuts off longer notes at the beginning of the next note.  I have submitted a bug report, but received no response.

This is a huge problem, and the solution provided by Noteworthy is to split the track into two staffs at particular pitch.  It will even do an analysis before you import and find the pitch that results in the fewest mistakes.  You can even set your own pitch ranges for each staff.  This helps for some kinds of music, but vocal music, and a lot of other music does not work that way.  You wind-up with each part split between staffs, which is not useful for most purposes.

I don't understand why the import can't bring in the notes as indicated by the MIDI events.  You are allowed to enter two different note values into a chord when you are manually entering the music.  Noteworthy notates it as stem-up and stem-down.  The "chord" is logically given the note value of the smaller (i.e. if you put a half with a quarter takes the horizontal space of the quarter note).  However, it will sound the full value when played as long as there are notes or rests to take up the full value of the time signature.  This should always be true.  Even if one part starts a measure with a quarter rest, and the other part with a half note, and the part starting with the rest then has a quarter note, the half note can be notated as tied quarter notes, the second of which is part of a chord with the other part.  So, you can always implicitly get a rest when needed if done in this way, even though Noteworthy does not have the full concept of parts (including rests) in a single staff. 

So, Noteworthy Composer can notate two parts with different rhythms on the same staff.  The only problem is that the printed sheet music would not explicitly show some of the rests in fairly rare cases.  However, the playback would be perfect.  Why can't Noteworthy import what it can notate?  You can try notating two parts with different rhythms, export to MIDI, import, and see what happens.

So, what excuse can the Noteworthy people have for having such a broken import?  It does not require heuristics or artificial intelligence, it is simple.  Why not just import the music as indicated in the MIDI events?  Or, at least have the option of importing as written?    As long as it has only two parts per channel, not much can go wrong.  The vast majority of vocal sheet music (as read in by PhotoScoreMIDI or another product) has two parts per staff, and therefore two parts per MIDI channel, and those parts often have different rhythms.  The provided splitting of the track by pitch is not workable.  As it stands now you have to import into one staff and then manually go through the score finding all the places where the rhythm differs and fix it.  What a headache.  Really this should be considered a bug report and not an enhancement request.

Re: MIDI Import has bug when part rhythms differ: not worthy of Noteworthy!

Reply #1
I will come to NWC's defense, at least to a point, and I welcome correction of any tech misunderstandings I make.

NWC, as any notation software, can notate whatever you key into it and split parts accurately by voice, since you are explicitly declaring which notes belong to each part, not expecting the software make the best guess from a MIDI file which does not declare to which part each note belongs, only to which MIDI channel.  If the composer of the MIDI file has not entered each voice separately, on a separate MIDI channel unique to that voice part (as is frequently the case), there is nothing in the MIDI file to differentiate one voice part from another except the pitch ranges you mentioned.  This is especially problematic in vocal parts, which are often entered not only on the same MIDI channel, but with the same instrument sound, or patch or control change, whichever term you prefer.

If the composer has been so helpful as to assign each voice part its own unique MIDI channel, then it doesn't matter if all voices use the same instrument sound.  Select in Import "Assign each MIDI channel to a new staff" to separate the voice parts.  But for one-channel, one-instrument MIDI files of choral parts, asking any music software, no matter how powerful or pricey, to separate voice parts accurately is like asking it which finger of which hand plays each note in a piano piece.  The necessary information to make the decision simply isn't there in such a MIDI file.

Re: Noteworthy does incomplete decode of MIDI

Reply #2
Fixed the subject line for you.

Noteworthy's MIDI import was originally designed to allow use of a MIDI keyboard. Lyrics and the Wizard were added years later to assist in decoding MIDI files. For MIDI keyboard capture, it decodes about all that can be sensibly decoded.

Multiple voices can be programatically inferred from MIDI files. So can n-tuplets, dynamics, dynamic variations, slurs, tempo variations and some articulations. It is hardly a bug, not to infer all of them.

Clefs, barlines, breath marks, fermatas, flow and instrument groupings are foreign concepts to MIDI. This makes it hopelessly inadequate for the exchange of musical notation. It makes little sense to put more lipstick on this pig.

Using MIDI as a bridge between scanning and notation software is a dead end. Use Music XML.

Registered user since 1996

Re: MIDI Import has bug when part rhythms differ: not worthy of Noteworthy!

Reply #3
Thanks for the responses.  Unfortunately, I did not inadequately describe the problem, in light of the responses.

I just want the note values to be what was indicated in the MIDI file, you don't have to infer anything.

Noteworthy allows two rhythms on one staff.  It puts stems up and down without any input possible from the user.  It only allows two note values in one chord, and does not allow you to mix them so that it can cleanly draw one stem up and one stem down without crossing.

As long as these rules are abided by, which is true a substantial majority of the time in vocal sheet music, there is no reason Noteworthy cannot notate it.  There is no guessing which part it is.  If the MIDI file says that it is a half note, why cut it off as a quarter? The duration is unambiguously indicated in the MIDI file, there is nothing to infer.

MusicXML would be nice, if it was supported by Noteworthy.  I have tried the contributed import program that sends Windows events to Noteworthy, but found it to be buggy and it often crashed Noteworthy.  As it stands now, there is no way to get a scanned piece of sheet music reliably into Noteworthy, without doing hours of fix up.

Re: MIDI Import has bug when part rhythms differ

Reply #4
If the MIDI file says that it is a half note, why cut it off as a quarter? The duration is unambiguously indicated in the MIDI file, there is nothing to infer.
You have much to learn about MIDI.

NoteWorthy provides only limited support for 2 voices on 1 staff. Layering is needed for most songs.
There hasn't been a change to NWC's MIDI import in ~10 years. I think the recent nwctxt ex/import was provided so that NoteWorthy could get out of the business of ex/import and concentrate on printing.

MusicXML import works for some users here. Perhaps they will assist you.
Registered user since 1996

MIDI files are not notation files...

Reply #5
G'day drdbuck,
firstly, welcome to the forum!
I just want the note values to be what was indicated in the MIDI file, you don't have to infer anything.
Actually, a MIDI file is not some kind of a notation record.  It is purely a stream of commands that create events that turn things on or off, or otherwise adjust parameters in a MIDI device, like a synthesizer.  Thus for any notation package, like NWC, to create notation from a MIDI file or data stream (E.G. playing into a song using a MIDI keyboard) it must infer whats going on. 

In fact, it goes much further than simple inference as it must interpret and interpolate...  but enough buzz words.  A MIDI file simply does not have any notation data in it.  Notation is not what its designed for so what you are seeking does not actually exist in the MIDI file.

Quote
Noteworthy allows two rhythms on one staff.  It puts stems up and down without any input possible from the user.  It only allows two note values in one chord, and does not allow you to mix them so that it can cleanly draw one stem up and one stem down without crossing.
WRT MIDI, I suspect you may be confusing Noteworthy staves with MIDI channels.  While common practice is to have one staff per channel, this is NOT a hard and fast rule.  You could easily have every staff in your song all on the same channel - not very useful but possible...

Quote
As long as these rules are abided by, which is true a substantial majority of the time in vocal sheet music, there is no reason Noteworthy cannot notate it.  There is no guessing which part it is.  If the MIDI file says that it is a half note, why cut it off as a quarter? The duration is unambiguously indicated in the MIDI file, there is nothing to infer.
Umm, MIDI does not define, say, a half note...  what MIDI defines is a note on event followed at some later time by one several possibilities that in one way or another turns the note off.  IIRC the most common are a note off, another note on for the same note* or a note on with 0(?) velocity.  As far as MIDI is concerned a "half note" is meaningless.  Therefore we again must infer the time value of the note...

* if you have, say, a series of "C"s.  Maybe a mix of crotchets (1/4) and quavers (1/8), each note on after the first one would be interpreted by the synth as a note off for the previous note.  If the series were diferent notes, say "A"s, "B"s and "C"s then each note on would need to be followed by a note event that would explicitly turn it off (eg Note off or note on with 0 velocity) or it would continue to sound after the next note on (for a different note) was sent...  E.G. Note on for an A, then note off for the A then note on fo a B then note off for the B then note on for a C...   will give A,B,c...  Note on for an A, note on for a B and note on for a C will also give A,B,C BUT this time the A and the B and the C will all keep sounding, making a rather discordant chord... hope this makes some sense...)

Quote
MusicXML would be nice, if it was supported by Noteworthy.  I have tried the contributed import program that sends Windows events to Noteworthy, but found it to be buggy and it often crashed Noteworthy.  As it stands now, there is no way to get a scanned piece of sheet music reliably into Noteworthy, without doing hours of fix up.

Nicholas Hatier's MusicXML import has never caused a problem for me...  Nor have I heard of other reports of it crashing NWC - could it be that your PC may have a problem?  Some time ago I evaluated SharpEye2 and found it to be very good.  Scan into SharpEye, perform some rudimentary edits just to tidy up the XML to be exported, do the XML export and then import to NWC with Nicholas' user tool - I never had a problem and it saved me hours of keying.

The only reason I'm not still doing things this way is my need for that kind of transcription has diminished - should it come back, I would most certainly purchase SharpEye and mentally thank Nicholas every time I used his program.

While I agree that a native MusicXML import/export would be wonderful, the publication of the NWCTXT specification makes it possible for someone (anyone?) to write an application to do the conversion outside of NWC.

<edit> I agree that NWC's MIDI import is far from perfect, but then, as I've tried to indicate above, MIDI is not the best vehicle for trying to transfer notation from one product to another.  IMHO MusicXML is currently the best tool for that task.

If you want to re-visit MusicXML import I would be happy to try and help.
I plays 'Bones, crumpets, coronets, floosgals, youfonymums 'n tubies.

Re: MIDI Import has bug when part rhythms differ: not worthy of Noteworthy!

Reply #6
I use Sharpeye and am pretty happy with it.  It has its limitations, but it generally does a good job of reading a part and converting it to music notation.  It isn't supersmart if the image it's reading is inadequate, but whatever it generates can then be exported to XML. 

After using mxml2nwcc.exe I find the import needs tweaking.  Primarily this is where Sharpeye couldn't read a marking of some sort, so it converts in NWC2 into a bit of white space with a barely visible little red dot in the middle.  I just delete all of those and fill those bars in note by note.


Re: MIDI Import has bug when part rhythms differ: not worthy of Noteworthy!

Reply #7
Quote
Nicholas Hatier's MusicXML import has never caused a problem for me...  Nor have I heard of other reports of it crashing NWC

So do I.

Quote
mentally thank Nicholas every time I used his program.

So do I this too :-)

Quote
A MIDI file simply does not have any notation data in it.

Not completely true, Lawrie.
Being that the overall concept you exposed is correct, in special mode when you say "MIDI is not the best vehicle for trying to transfer notation from one product to another", in reality a little bit of data for notation is present.
For example, unless recorded without a metronome or purposedly garbled, every MIDI file has the TicksPerQuarter parameter that helps recovering the note duration to write.
There is also the (optional) 'Key Signature' event that, differently from NWC that loses this information, keeps the difference between minor and major.
And then there are the XF extensions (not very diffused, in reality) like the ChordName event...

I can guess your comment: pedant! You're right, Lawrie. Sorry.