On 2019-03-27 4:19 pm, Kieren MacMillan wrote:
That’s great… But essentially all of the documentation has \relative
at the top-level. So what is a newbie to think, other than "My code
should look like
\paper { … }
\header {…}
\relative c' { … }
But then they start to cut and paste code bits, or switch the order of
voices, or any of a dozen other natural and intuitive operations that
don’t imply ‘I’m destructive!!’… and then wonder why their music goes
off the deep end.
Truly it is not "destructive", to be fair. It at best is "chaotic",
where there is a perfectly deterministic behavior behind the scenes that
simply is not obvious at first glance.
And, that's a fault of the documentation but also the end user. As with
most things with computers, it is ultimately the responsibility* of the
user to be willing to understand how a system works. \relative is
documented clearly enough that anyone who asks "Why is my music
switching octaves?" is not honoring their side of the contract. The
notes shift because \relative depends on context; and
cutting-and-pasting is going to change that context.
That said, I fully agree with advising folks who intend on moving music
around more fluidly to avoid \relative since it adds a maintenance chore
that would otherwise impede the creative process. And there does seem
to be an over-reliance on \relative in the documentation, to the extent
that folks are certainly biased to use it.
Largely, I adopted \relative simply because pitches on the treble staff
would otherwise require at least one apostrophe. I have considered
dropping \relative in my own works, replacing it with something like
"\transpose c c'" so that I can at least minimize the use of octave
punctuation. So while I can definitely see the advantage of being more
explicit with octaves, I desire more to avoid excessive redundancy.
(* Side rant: One of the worst offences the computer industry committed
was convincing people that computers were better than humans. Over the
decades, users have been trained to accept the computer "knows best" and
not to employ their own reasoning. Much (proprietary) software out
there relegates users to be slaves to the machine--George Jetson pushing
his button. In an ideal world, the computer is a tool to help us do our
jobs more effectively; but that necessitates that we are the master.
But with that role comes responsibility to understand how things work.
Granted, not all of us have the time to devote to the idiosyncrasies and
minutia of managing individual computers much less a large network,
which is why good IT will still be critical to success. But the end
user must be encouraged and empowered to own their device. At the end
of the day, the computer must work for the person; not the other way
around.)
-- Aaron Hill
_______________________________________________
lilypond-user mailing list
lilypond-user@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-user