ssb22 / jianpu-ly

Jianpu in Lilypond
http://ssb22.user.srcf.net/mwrhome/jianpu-ly.html
Apache License 2.0
77 stars 19 forks source link

Solve abnormal rest figure "0" #65

Closed unbored closed 2 weeks ago

unbored commented 2 weeks ago

"0" and dash followed displays abnormally because \tweak NoteHead.stencil doesn't apply on rests. Also add explicit positioning of articulations "^\" and "_\"

ssb22 commented 2 weeks ago

Thanks. This isn't working on old Lilypond 2.18 (fails to compile), but then old Lilypond 2.20 is currently failing with a Scheme error if there are grace notes in the input (I'm not sure why yet); I'm seriously thinking we should just change the minimum Lilypond version to 2.22 so that we don't have to keep worrying about so many old versions. On the Mac: Lilypond 2.22 can be installed on Mac OS 10.7 from 2011; it's only 2.24 that can't be installed on old Macs. On popular Linux: Lilypond 2.22 is in Ubuntu 22.04 LTS. A few people might still be running Ubuntu 20.04 LTS, which has Lilypond 2.20 and doesn't EOL until April 2025, but I expect that number to be very small, because if they're doing "only upgrade when we have to" then they'll probably have upgraded from 14.04 to 18.04 in 2019 and then from 18.04 to 22.04 in 2023, skipping 20.04. So it's probably small enough to say "if you're stuck on 20.04, use an old version of jianpu-ly for now" and set the main jianpu-ly to require Lilypond 2.22 or higher.

ssb22 commented 2 weeks ago

oh what am I saying: we already have a "grace notes requires Lilypond 2.22+" warning, I just didn't put it into \version and should have done. Maybe we should just set the minimum requirement to 2.20 then.

unbored commented 2 weeks ago

If the compile failure occurs when there is a tweak of Rest.stencil or Rest.text, we have an alternative solution by replacing the placeholder "r" with a normal pitch like "c" in jianpu part.

ssb22 commented 2 weeks ago

yes but that means extending the use_rest_hack and inRestHack logic to cope with other note values and non-beamed situations (because any time we use a note instead of a rest, if there are lyrics we have to do something to make sure a word is not assigned to that rest). Dropping 2.18 is probably easier: I can think of reasons why people are still stuck on 2.20 (because old Ubuntu LTS) but I'd be surprised if anyone's still stuck on 2.18 now (and if they are, they can use an old jianpu-ly version, just like with 2.14 through 2.16 which jianpu-ly dropped some time ago)