lilypond-user
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Lilypond document reformatting script?


From: Devon LePage
Subject: Re: Lilypond document reformatting script?
Date: Thu, 30 Mar 2017 12:26:58 +0000

Rémy—

Whenever I use musicxml2ly on a MusicXML file generated by Smart Score X2, I get LilyPond code that looks something like this:

{
    a4 b4 c4 d4 e4 f4
    g2 g8 f8 e8 d8 c8
    b8 \times 2/3 {
        a8 b8 c8
    }
}

I would like to create a Python script that would reformat the code to look like this:

{
    a4 b4 c4 d4 |
    e4 f4 g2 |
    g8 f8 e8 d8 c8 b8 \times 2/3 { a8 b8 c8 } |
}

Please see my response to Urs for more information and more examples of “messy” code generated by musicxml2ly.

-Devon.


On Thu, Mar 30, 2017 at 5:20 AM Devon LePage <address@hidden> wrote:
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.

On Thu, Mar 30, 2017 at 3:20 AM Urs Liska <address@hidden> wrote:



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



Thanks,
-Devon.


_______________________________________________
lilypond-user mailing list
address@hidden
https://lists.gnu.org/mailman/listinfo/lilypond-user

_______________________________________________
lilypond-user mailing list
address@hidden
https://lists.gnu.org/mailman/listinfo/lilypond-user

reply via email to

[Prev in Thread] Current Thread [Next in Thread]