[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: GSoC Follow-Up
From: |
Urs Liska |
Subject: |
Re: GSoC Follow-Up |
Date: |
Thu, 1 Mar 2018 09:59:39 +0100 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Thunderbird/52.6.0 |
Hi Ed,
Am 01.03.2018 um 05:01 schrieb Kieren MacMillan:
Hi Ed,
I’d love to hear everyone’s opinions about doing a project with stylesheets,
which seems to be the project I plan on applying with. What would everyone
want to see in the project?
I think I can piggy-back on Kieren's post to add some thoughts:
Here are some thoughts (stream-of-consciousness):
1. I want to be able to arbitrarily mix and match styles, in any order, without
triggering conflicts and other problems. Currently in Lilypond, depending on
which order you set the global font size versus load a stylesheet, initial
settings can get overwritten/lost for what seems like no good reason.
Obviously, there has to be some sort of determination of precedence — I'm
assuming [like CSS] it would be cascading, and last-applied-wins.
One thing that may be challenging on a conceptual and implementational
level is how to address and include style sheets.
I think we will want to have both public, shared, and local stylesheet
"repositories".
A "style sheet repository" will have to have one fundamental property
(presumably the "house" part of "house style"), with all the defining
subcomponents (e.g. paper, score set-up, etc.) enclosed. I assume that
the loading functions will look up that root directory and find their
way down from there.
What I mean is, you could have local repositories (e.g. "client-1",
"client-2"), then you could have repositories shared in a project and
hosted on some Git servers, and finally I hope we'll have a
community-maintained public library. Finally there may be components
built into LilyPond itself.
We will need a reliable way to address any of these, "mixing and
matching" without issues.
2. I would like graceful fallback options (cf. CSS font-family lists), so that
sharing stylesheets isn't a nightmare (e.g., if the person you share with is
lacking the font you call for). Currently in Lilypond, the fallback situation —
especially font-related — borders on catastrophic.
I've once worked on font handling, back in 2015, after Abraham added the
possibility to use alternative notation fonts. Unfortunately I tried to
fix two things at once, and one of these didn't work (for external
reasons), with the result that none of it was actually integrated. I
have just pushed a few of my local branches from then:
dev/urs/font-selection, dev/urs/font-exists, and dev/urs/font-handling.
You may have a look at these, but it may not be too much fun. As said
they are quite old, and it didn't work to simply rebase them on the
current master, so I didn't bother making that work.
I'm telling this because it might be useful to reconsider these things
or at least some of them and include them in a project.
The first thing I tried (and IIRC actually succeeded with) is making it
possible to load notation and text fonts individually instead of all at
once. So you could, for example in a base file of a style sheet, load a
set of fonts, and later in a user document change, say, only the sans
font, without resetting all the other, text and notation, fonts.
I think this worked out quite well, and this would probably be a huge
step regarding Kieren's with 1) above.
The second thing, which I should really have tackled independently, was
trying to enable LilyPond to use notation fonts that are installed as
system fonts (rather than loading it from its own installation directory).
IIRC I actually made this work - but only "work for me", for an annoying
reason I had no control over, namely fontconfig's failure to fail.
If you ask fontconfig for a certain font it will *always* return a font
and won't notify you if it didn't find the requested font. At least this
was the case in 2015, maybe (hopefully) this has changed by now. This
means if you ask fontconfig for "Adobe Garamond Pro" and this isn't
installed it might return Times New Roman instead, or whatever it
consideres the best match. More inconveniently, the fallback font may be
different on another user's installation.
So my approach was to ask for a given notation font and fall back to
Emmentaler if it isn't found. But instead fontconfig *did* return a
font, but if "LilyJAZZ" isn't installed it could return you Arial
instead. So the idea of an automatic fallback may make some use in
*text* fonts but definitely not with *notation* fonts.
Llooking into this matter (maybe also by asking fontconfig for
improvements or workarounds) is probably optional but might be a really
useful enhancement to the project idea.
3. Naturally, Lilypond should use the new system "100% natively" (which is why
you’re on board), not as some sort of add-on that requires an additional library (e.g.,
OLL).
But if there's anything in OLL that may be useful or required (from
oll-core or the notation-fonts package) this can very well be moved into
LilyPond as part of the project - if it meets the expectations of the
reviewers community, of course.
Best
Urs
That's it for now. If I think of anything else, I'll send another response.
Best,
Kieren.
________________________________
Kieren MacMillan, composer
‣ website: www.kierenmacmillan.info
‣ email: address@hidden
_______________________________________________
lilypond-devel mailing list
address@hidden
https://lists.gnu.org/mailman/listinfo/lilypond-devel
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- Re: GSoC Follow-Up,
Urs Liska <=