On Wed, 25 Mar 2026 at 19:39, Tina Petzel <[email protected]> wrote:
> Hi Vaughan, > > thank you for trying! > > > All the notes and lyrics were in the right places. Recently I got excited > > > by Lilypond’s automatic placement of lyric extenders, and deleted all the > > > "__" from my score, so the XML version has no lyric extenders. A > > > previous version of the file has the extenders so I could use that, but > > > future scores would be less likely to include explicit extenders. > > Actually that is not an issue of you removing __. I designed the system > the way I did so that it is actually compatible with what engravers are > doing, such as Completion_heads_engraver and stuff (which is the reason why > instead of interpreting the music I react to the grobs created by the > engravers). This means this could work with automatic syllabic lines, just > that these I have not implemented yet (because I consider them somewhat of > a lower priority. They are very easy to implement, and you can do so > yourself. Essentially: > > LyricExtender stores spanned heads in (ly:grob-object grob) heads. Via > these we get access to the note-column xml-reference, and thus access to > the base note. We can then add to each such note a <lyric><extend/></lyric> > node. > > So it is ~ 15 lines of code or something. But as I said, I did not > consider it that important and rather implemented some other things. If it > is important to you I can quickly add it. > > > Text scripts were great, but one came out as "mezza voce †", so > the > > > ASCII alias wasn’t replaced. > > Currently the whole thing is yet missing proper xml-escaping. The only > thing currently implemented it that " in attributes is replaced by \". This > is something on my list, but I wanted to check if there is already a scheme > module for this that can be used. If not I will add a general replacement > for <, >, &, " and ' by the correct xml-replaces. That will also be quite > fast to implement, in any case. > > > An anacrusis bar was achieved with hidden rests after the notes, which > > > didn’t look great. > > This is probably caused by the importing software. I’m missing still some > small logic to (in case of anacruses) set the `implicit="yes"` attribute, > which probably causes your software to interpret this as underful measure > and fills it with rests. Will also be fixed. > > > So overall it exported this piece excellently. It would require very > little > > > cleaning up to be publishable. Well done! > > Thank you very much, and thank you for trying and all of the input as well! > > Before adding new features though I want to make sure the existing ones > are working fully correctly and well, which means I’ll need to fix things > like > > https://codeberg.org/tinapetzel/ly-mxml/issues/3 > > first. > > Here it is really important for me to get your support, since I do not > have access to every notation software and musicxml workflow out there, so > I cannot test everything myself. So again, thank you very much. > > Cheers, > > Tina > > Hi again, > Here it is really important for me to get your support, since I do not have access to every notation software and musicxml workflow out there, so I cannot test everything myself. So again, thank you very much. You’re welcome. Personally, I am lucky to be able to do ~95% of my workflow in Lilypond, so I am not in a hurry for anything (until I am, haha). Out of curiosity I tried exporting a more complicated piano piece. The results again were very impressive. Here’s what I found (though possibly some of the errors are in MuseScore, my MusicXML is not good enough to tell): - Cross-staff lines were missing. - Dynamics were missing, probably because I used a Dynamics context. - Tempos were missing (also in the choral piece, which I didn’t notice). - \laissezVibrer ties were missing - I prefer my music to be beamed 8 [8] 8 [8] in 4/4 rather than 8 [8 8 8]. In Musescore it came out as the latter, and at the moment it looks like changing Time Signature Properties is bugged. - In an example of b8\rest, the rest ended up a long way below. - 8va signs were missing - The ends of cross-staff slurs don’t seem to anchor properly, so they can last for several lines, I was able to fix all of these issues except for the beaming in Musescore with a bit of Googling. I wouldn’t expect to send anything to a publisher without going through it thoroughly, so this would not be an issue for me. Out of all these, reinserting dynamics would probably take the longest. Again, well done! Cheers, Vaughan
