Urs—
Here are 2 gists that contain “messy" excerpts from a MusicXML file:
These are from a transcription of a John Coltrane performance, unrelated to my main project. When I use musicxml2ly on any MusicXML files created in Smart Score X2, I have similar issues. As you can see:
—there is not a bar-check after every measure
—bar-checks occur infrequently and in more-or-less random locations within the document (in the full document, they occur at bars 62, 65, and 68, but then not another until bar 105!)
—sometimes bar-checks appear as “\barNumberCheck” followed by the expected bar number, but these checks also seem to occur at random
—the first notes of a measure do not reliably appear at the beginning of a line of code
—tuplets are always spaced across 3 lines
—inconsistent whitespace around braces, especially tuplets (look at the final one in the 2nd gist)
-Devon.
Am 30.03.2017 um 10:45 schrieb Devon
LePage:
I’m currently working on a project that involves
importing a lot of music into LilyPond via MusicXML. (Before
this, the music is scanned and OCR-ed in Smart Score X2, if that
is relevant.)
Unfortunately, the resulting LilyPond code is a bit messy
and difficult to read. I'd like to reformat these files so
that there’s only one measure on each indented line.
Doing this by hand takes up a significant amount of time,
so I’ve been trying to create a python script that uses the
ly.lex package to do this. Has anyone already done this? I
couldn’t find anything, so I tried to do it myself. But after
four hours of frustration I'm starting to think that I might
be too much of a novice to figure this out. There are just too
many moving parts for me—I’m having a hard time just figuring
out how to add a newline in the middle of a small lilypond
document. I’m also unsure how to incorporate tuplets into the
determination of a measure.
I’m wondering if there’s a wizard here on the mailing list
who might be able to help me out? (Another dream would be to
have a function that adds a second newline after every group
of N-measures.)
At the very least, maybe someone could point me in the
right direction: what do I need to read/understand to figure
this out? How would one go about doing this?
I've only tested one random MusicXML file, so I can't fully comment.
But it seems that musicxml2ly generates barchecks ("|") for every
measure. So you can simply use *these* to identify possible line
breaks, without actually going down the road of analyzing the
content.
But my converted file actually *did* place one measure in a line, so
I don't see your problem. Could you please share some of that
"messy" LilyPond code?
Urs
_______________________________________________
lilypond-user mailing list
address@hidden
https://lists.gnu.org/mailman/listinfo/lilypond-user