Jump to content

Creating “real” parenthesized dynamics: Difference between revisions

From LilyPond wiki
m New category
mNo edit summary
 
(One intermediate revision by the same user not shown)
Line 20: Line 20:


[[Category:Expressive marks]]
[[Category:Expressive marks]]
[[Category:Scheme]]
[[Category:Text]]
[[Category:Text]]
[[Category:Workaround]]
[[Category:Workaround]]
[[Category:Included in the official documentation]]
[[Category:Included in the official documentation]]
[[Category:Snippet]]
[[Category:Snippet]]

Latest revision as of 13:55, 3 December 2025

Although the easiest way to add parentheses to a dynamic mark is to use a \markup block, this method has a downside: the created objects will behave like text markups, and not like dynamics.

However, it is possible to create a similar object using the equivalent Scheme code (as described in the Notation Reference), combined with the make-dynamic-script function. This way, the markup will be regarded as a dynamic, and therefore will remain compatible with commands such as \dynamicUp or \dynamicDown.

\version "2.24"

paren =
#(define-event-function (dyn) (ly:event?)
   (make-dynamic-script
    #{ \markup \concat {
         \normal-text \italic \fontsize #2 (
	 \pad-x #0.2 #(ly:music-property dyn 'text)
	 \normal-text \italic \fontsize #2 )
       }
    #}))

\relative c'' {
  c4\paren\f c c \dynamicUp c\paren\p
}