Re: conditional parenthesis

Walt North <[email protected]> Sun, 5 Jul 2026 14:55:30 -0700
Newsgroups gmane.comp.gnu.lilypond.general
Message-ID <[email protected]>
AH.... ok that explains it.  Good to know for future reference.

On 7/5/26 11:33 AM, Timothy Lanfear wrote:
> On 05/07/2026 18:04, Walt North wrote:
>> But that leaves the mystery for a later date about using relative 
>> with tags in a function. I have experimented with 
>> \resetRelativeOctave but that seems a bit cumbersome.
>
> When music is written using \relative, converting from relative to 
> absolute pitch happens before filtering tagged music. So in your 
> example there are two cs, resulting in the following music being an 
> octave too low. The solution is to use the rather obscure 
> make-relative macro as below. The function par should operate 
> correctly with both \relative and \absolute note entry.
>
> \version "2.26.0"
> \language "english"
>
> par = #(define-music-function (note) (ly:music?)
> (make-relative (note)
>   note
>   #{
>     \tag #'(piano) { $note }
>     \tag #'(guitar) { \parenthesize $note }
>   #}))
>
> music = \relative c' { r8 b16 cs gs'4 b,16 cs gs'8 \par cs,8 <a cs e>~ |}
>
> \score {{
>   \keepWithTag #'piano {\music}
> }}
>
> \score {{
>   \keepWithTag #'guitar {\music}
> }}
>
> -- 
> Timothy Lanfear, Bristol, UK.