Note's Duration is too long (or too short)
At a recent meetup we ran into a problem where people could not sync to certain parts of an ABC file. The message they got in the chat window when they tried to sync the part said “Note's duration is too short” in one case and “Note's duration is too long” in another.
So I did a little research into the problem. It turns out that someone has already asked this question of the developer of SongbookBB, since the person who asked thought it might be a SongbookBB issue. Here is the post on the SongbookBB site that discusses the problem and possible solutions (go down to the bottom of the page and look in the “Responses” section for a comment by Lina dated October 8, 2016)
However, since this discussion sort of assumes that you have a working knowledge of ABC notation, I will discuss Lina’s comment in a bit more detail.
The first bit of background is that, in the ABC file, the length of a note is described as an integer or a fraction. For example:
-
the notation A4 means to play an ‘A’ note for 4 counts
-
the notation A3/4 means to play an ‘A’ note for three-quarters of a count
-
the notation z9/2 means to rest (that is, to not play any note at all) for “nine halves” of a count, which is of course equal to resting for four and a half counts.
The primary issue is that the LOTRO client will not play a note in an ABC file that it considers too long or too short. I would guess that the reason is that it causes problems for the LOTRO code to deal with such notes. So, it will not let you sync an ABC part that has notes that it considers too long or too short.
So, it’s easy enuf to describe generally what we need to do: any ABC that we want to play has to have only notes and rests in it that are not too long or too short. The trickier thing is to actually fix those issues with the tools we have:
When you get an error message due to this sort of issue, it will read something like “Note's duration is too long. Line 164, column 2.” One problem, which Lina discusses in her comment, is that the way the LOTRO client counts lines is different from the line count you will get if you are looking at the ABC file in a text editor. So, if you use your text editor’s functionality to go to line 164 of the ABC file that caused that error message, you will find that the error is actually not there but on some other line.
Since you can’t rely on the line number that LOTRO gives you as an error message, you either have to adjust the line number in the way Lina suggests in her comment, or you have to just look around in the ABC notation for the part that is causing the problem, and try to find cases where the note duration seems too long or too short. The problem here is that I don’t know what is ‘too long’ or ‘too short’ (I haven’t found any comments in the LOTRO music forum or other LOTRO music sites that discuss this either).
Assuming that you have managed to find the line that is causing the problem, you need to fix it. In her comment, Lina mentions a couple ways of fixing notes that are too long or too short. However, this involves manually editing the ABC file with a text editor, so you need to be familiar with ABC notation to do that. A potential problem with doing manual edits to your ABC is that, if you only have to fix a line or two, it’s not a big deal usually, but if this issue occurs in many places in your ABC, it will be a bit tedious to fix all of them.
An alternative to manually editing the ABC file is to try using a different midi-to-ABC converter (there are three that I am aware of: Maestro, Firefern and BRuTe). Each converter calculates the length of notes and rests in different ways, and if Maestro creates notes that are too long or too short, Firefern or BRuTe might not.
The final problem is that it might be tedious to test your fix. If you have made a fix, the only way you will know that it works is if you test the fix in game (that is, by trying to sync that part that caused the issue, and seeing if you can sync it or not after your fix). Unless you are pretty sure from the start where the problem is, and what the correct fix is, this might result in several cycles of manually editing the ABC, loading the ABC into the music folder, syncing your songbook, and then trying to sync the part until the problem is fixed.
So you recommend that we run the problem songs through BRuTe or another ABC editor and then test them in game before sending you the fixed (hopefully) file? Does it matter whether we sync the right instrument when we test or can we just test it with one instrument? What about Lina's suggestion to change the tempo just a tad?
Well, if you know which part(s) had the errors, you should be able to just see if those parts can be synched.
So you recommend that we run the problem songs through BRuTe or another ABC editor and then test them in game before sending you the fixed (hopefully) file? Does it matter whether we sync the right instrument when we test or can we just test it with one instrument? What about Lina's suggestion to change the tempo just a tad?
If you create an ABC using a different editor from Maestro, you can just send it to me and we can test it in the game at the meetup. If you want to get a quick test of an ABC that you create in BRuTe, you *can* listen to ABCs that are created by BRuTe in the ABC player, tho' sometimes the rhythm comes out weirder that it would when you eventually play it in game.
So a problem of this type affects one or more parts in the ABC file. What you need to fix and test is just those parts that cause the problems. In other words, if only the person who is trying to sync the flute part gets a message about note duration, it is only the flute part that you need to fix, and only the flute part that you need to test to see if it will sync.
Lina's suggestion of changing the tempo might work for situations where the problem is that the note duration is too short, but not for situations where the note duration is too long. You would just have to experiment and see if your change worked or not, there isn't any good way for knowing ahead of time if it will work or not.
[ Edited so that my reply was actually in English ]
Oh oh, I realized I didn't completely reply to glo's question about how to test:
So what you need to do is to test it by syncing the part that the problem is in. It doesn't matter *what* instrument you happen to be playing when you try to sync the part .. the only thing that matters is that you are trying the sync *the part that is causing the problem*
LOTRO really doesn't care one way or the other what instrument you are trying to play a part with, it only cares about what the ABC notation for that part looks like.