lilypond-user
[Top][All Lists]
Advanced

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

Re: Manipulating instrument names and staff group names


From: Jean Abou Samra
Subject: Re: Manipulating instrument names and staff group names
Date: Wed, 3 Nov 2021 23:52:18 +0100
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:91.0) Gecko/20100101 Thunderbird/91.1.2

Le 03/11/2021 à 22:16, Lukas-Fabian Moser a écrit :
Hi,

Well, I would say it depends on what you intend to
do. Help out in implementing this particular feature?
The StaffCollection ancestor to StaffGroup might be
a good first contribution. For completeness you could
also add the intermediate type StaffMonoid.

I already have this ready in a branch, along with some cleanup of ly/engraver-init.ly (but didn't feel much of a hurry to create a merge request).

Now I see why you asked about context definitions on the devel list.

But I'm at a bit of a loss about your notion of a StaffMonoid. All sorts of math puns aside (a CommutativeStaffRing of nonzero characteristic especially for engraving _Le Spec de la Rose_ by Berlioz) - what do you mean by a StaffMonoid?

There is absolutely nothing besides the math pun. It was too tempting given that I know both Kieren and yourself have some background in that.


To be clear: I have a StaffCollection such that the definition of StaffGroup boils down to

\context {
  \StaffCollection
  \name "StaffGroup"

  \consists "Span_bar_engraver"
  \consists "Span_bar_stub_engraver"
  \consists "System_start_delimiter_engraver"

  systemStartDelimiter = #'SystemStartBracket

  %% The default for DynamicText.extra-spacing-width causes dynamics to
  %% be placed across span bars, so switch it off:
  \override DynamicText.extra-spacing-width = ##f
}

(and I still wasn't sure if the Span_arpeggio_engraver should be in StaffCollection or rather in StaffGroup).


I would put Span_arpeggio_engraver in StaffCollection. It makes sense for something intended at logically grouping staves, and doesn't harm after all: as long as the user does not \set StaffCollection.connectArpeggios, it has no effect.

Also, don't forget \alias StaffCollection in the definition of StaffGroup so users can write commands as \set StaffCollection.whatever = ... or \override StaffCollection.Whatever.whatnot = ... and have them work in all contexts that group staves.

So StaffMonoid, if it's not meant as a joke, should be some subset of this?

https://gitlab.com/lilypond/lilypond/-/issues?scope=all&state=opened&label_name[]=Doc

Now if what you want is really coding, there are
heaps of open issues waiting for you. Here are a
few that I believe (NB no warranty) would be feasible
for a power user with some minimal understanding of
Scheme:

Wow, this is very valuable. Thanks much for this list!

You are welcome. It's one of the cases where one can say: I hope it will not stay valuable too long.

PS. And also thanks for the comments on the Instrument_name_engraver; I'm afraid I won't have time before the weekend to really think about your comments.

There is no rush at all.

Best,
Jean



reply via email to

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