Page MenuHomePhabricator

Abc notation: not able to control the beaming of notes as intended by the abc music standard
Closed, ResolvedPublicBUG REPORT

Description

List of steps to reproduce (step by step, including full links if applicable):

  • Insert following code into the MediaWiki editor and preview the site:
<score lang="ABC" sound="1">
X:1
M:4/4
L:1/4
K:G
^D | E F (G/F/) (E/^D/) | E3/2 z |
</score>
  • Copy the tune body and insert it into any other type of "abc-to-image" generator.

What happens?:
The MediaWiki score extension renders the last two eighth notes without a beam.

What should have happened instead?:
The score extension should instead render a beam between the last two eighth notes; as they are not separated by a space in the tune body. The abc music standard foresees that notes shorter than a quarter note are rendered without a beam when separated by spaces in the tune body and with a beam when not separated by spaces in the tune body. (The second and third eighth notes are righteously not beamed, as there is a space typed between those two notes inside the tune body. That is intentional.)

Software version (if not a Wikimedia wiki), browser information, screenshots, other information, etc:
Here are screenshots of different programs generating an image out of the given abc file. Note that the one by the MediaWiki score extension is the only one that does not render a beam on the last two eighth notes.

mediawiki_output.JPG (531×878 px, 57 KB)

easy_abc_output.JPG (1×1 px, 88 KB)

abcjs_output.JPG (836×1 px, 99 KB)

Event Timeline

TheDJ subscribed.

That would seem like an upstream issue in liypond... if I use another tool that is known to be backed by lilypond like: http://lilybin.com you can see the same rendering based from the same lilypond notation source. Please report to the lilypond project.

BTW. here you can see how the ABC notation was translated to lilypond:
https://upload.wikimedia.org/score/p/p/ppr4lz6sv08p4vsohpkfjxqbeh05f2s/ppr4lz6s.ly

I'm assuming that the problem is actually in the ABC to lilypond notation conversion. Note that I know very little about music and these two notations formats so I can't determine if the lilypond code is a correct translation, but from experience converting between formats is often finicky and likely to be a source for a problem like this.

That would seem like an upstream issue in liypond... if I use another tool that is known to be backed by lilypond like: http://lilybin.com you can see the same problem. Please report to the lilypond project.

I'm assuming that the problem is actually in the ABC to lilypond notation conversion.

Thanks for having a look at it! Your theory seems plausible. I will contact the LilyPond developers and share the outcome in this thread.

Okay, so I checked the documentation of LilyPond and found following statements regarding the translation of ABC bodies:

abc2ly [the software element responsible for the "translation"] ignores the ABC beaming.

I think that my "issue" is covered by that intentional ignoring; the developers would most likely turn me down. That feeling is further increased by an other remarkable statement in the corresponding section of the documentation:

Note: This [abc2ly] is not currently supported and may eventually be removed from future versions of LilyPond.

Has this been mentioned or discussed in our community? If the LilyPond developers don't maintain that translation feature or even remove it someday, that forces us to adapt. They seem to have a (legit) dislike for the ABC music standard:

The ABC standard is not very ‘standard’. For extended features (e.g., polyphonic music) different conventions exist.

Here's a link to said section of the documentation: LilyPond documentation; 4.3.3 – Invoking abc2ly

this seems interesting though...

-b, --beams=None
preserve ABC’s notion of beams

this seems interesting though...

-b, --beams=None
preserve ABC’s notion of beams

Thank you for the hint, but I'm afraid I can't figure that out. For one reason or the other, this might be the right time for me to learn how to use LilyPond itself and stop using ABC within our projects.

Sorry for wasting your time! :|