[Top][All Lists]

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

GSoC 2020 update, Aug 15 (the final stretch!)

From: Owen Lamb
Subject: GSoC 2020 update, Aug 15 (the final stretch!)
Date: Sat, 15 Aug 2020 15:17:40 -0700

Hi all!

This week, I encoded the rest of the Feta glyphs, giving them SMuFL names
and alternate/ligature information. Only Parmesan is left without SMuFL
names for the time being.

Some of our glyphs, I noticed, needed to be encoded in more than one spot
in the specs, so I added a new separator, &, to my
SMuFL-name/alternate/ligature definition strings. If a string has any &s,
each string between them counts as a new character entry as far as SMuFL is
concerned. A glyph receives alternate codepoints as needed to fill in these
values. (This caused a bit of a problem for LilyPond trying to figure out
which of these charcodes a particular glyph index should map to and vice
versa, but I fixed that today.)

I also found that many name entries were of the form
glyphNameStyle;glyphName, which could get verbose pretty fast, so I added a
little syntactic sugar. Now all you have to say is glyphName+Style for the
generation script to recognize that the glyph's name is glyphNameStyle and
it's a stylistic alternate of glyphName.

(I removed the whole note variants of our shape notes, which should result
in the only change to regular LilyPond functionality: Walker whole notes
may vary in direction. If we need to discuss this more, I can revert/skip
that commit.)

Finally, I added a /smuflglyph markup command, usable in the same way
/musicglyph is used.

(I brought back the LILF table, because I wasn't able to find out in time
where it's really used. It now resides in the "lily" metadata object as a

I cleaned up my TODO's, removing any that have become moot because of later
commits/knowledge. I guess this is as good a time as any to open them up to
input. If you'd like to suggest any solutions or ask any questions about
them, you'll find them in my branch--just search for GSoC-2020 TODO.

I believe now is the time for a "feature freeze," if that's the right term
for it. I don't plan to add any new code to the official GSoC project;
instead, I'll be focusing on making my code easily reviewable, updating
docs, and summarizing my work.

That said, summarizing looks like it'll be a beast. I suppose if I'm going
to start from scratch with a new commit history, I'll try to put what I've
done in this order:

   1. Emmentaler
      - Add SMuFL names & corresponding codepoints to Emmentaler (well,
      just Feta for now)
      - Generate .json metadata file from .mf logs and place in LilyPond
      font directory
      - Make stylistic alternates actual stylistic alternates
   2. LilyPond
      - Locate glyphs by SMuFL name instead of LilyPond name when possible
      - Use new .json metadata file instead of old metadata tables for stem
      attachment, etc.
      - Stop requiring old metadata tables
      - (Back to Emmentaler for a sec) Remove old metadata tables
   3. Miscellaneous
   - Remove whole shape noteheads from Emmentaler; update LilyPond
      accordingly to use half noteheads when applicable. (Again, this
is the only
      commit that should change anything about regular LP usage. Maybe it's
      better to leave this one out for now?)

This order of operations should make my work easy to follow and keep
LilyPond fully functional after each commit. Does it look good to you guys?

I'll be unavoidably out of commission for a few days next week. During that
time, I'd appreciate it if any of you has time to give my TODO's a look.

Thank you all for the help you've given me so far! Here's hoping I can make
the deadline. :)


reply via email to

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