On Thu, Dec 12, 2024 at 4:26 PM Dan Eble <nine.fierce.ball...@gmail.com>
wrote:

> On 2024-12-12 11:16, Trevor Bača wrote:
> > should happen in public-facing parts of the API), then why not rename
> > voltaSpannerDuration to voltaSpannerMoment instead of
> > voltaSpannerMusicLength? In other words, what's the motivation for
> > further spreading around musicLength when the underlying type is
> > presumably Moment?
>
> I have been removing user-facing moments where they have been used to
> store a time difference rather than a time point.  That is why
> #(ly:make-moment) has become \musicLength.  That is why baseMoment has
> become beatBase.  voltaSpannerDuration is on the list of properties to
> be converted.  While converting their types, I am secondarily trying to
> improve their names.
>
> That doesn't cut to the root of your "why?", but for that, I believe
> there are conversations in the list archive.  (If you have trouble
> finding an answer, please feel free to ask again.  I just don't want to
> spend the next hour composing a full explanation if the archive is
> sufficient.)
>

I am concerned by what seems to be an unwillingness to use the term
"duration" to label things in the system that are clearly durations. If
beatBase represents the amount of time a beat consumes, then beatBase
should have been named beatDuration, and the rename was a mistake.

For reasons that aren't immediately clear, it seems like "music length" has
been introduced as a synonym for "duration." This is a bad idea. Can we
please stop doing this? The terms "music history" and "music theory" and
even "music therapy" are real things in the world. But "music length" isn't
a thing, and it shouldn't be introduced into the naming conventions in
LilyPond. What are you searching for when you reach for "music length" is
"duration." The name of the \musicLength function was a mistake.

Before proceeding to change voltaSpannerDuration to something like
voltaSpannerMusicLength, please step back and think from a user's point of
view. Precisely because a "music length" isn't an actual thing in the
world, a context property name like voltaSpannerMusicLength sounds strange,
and even perhaps a touch unprofessional: voltaSpannerMusicLength is a worse
name than voltaSpannerDuration, and if you go forward with the
corresponding set of name changes, Lily's public interface will become just
a little bit worse than it is, which I'm sure isn't your intention.

There seems to be a cascading set of naming problems surrounding parameters
in LilyPond that have to do with points in time and spans of time, and
you're right that I haven't read back through the archive to understand
what's going on. The topic is important to me, and I'll make an effort to
catch up and join the discussion.

But, regardless of the contents of the mailing archive, the public-facing
parameters in LilyPond that describe a point in time should use the word
"moment" and the public-facing parameters in LilyPond that describe a span
of time should use the word "duration" because of the plain meaning of
those two words in English, irrespective of the correctness of the names of
type predicates and the like that are mostly hidden from the user.

-- 
Trevor Bača
www.trevorbaca.com
soundcloud.com/trevorbaca

Reply via email to