Applying tweaks to one voice in \partCombine: Difference between revisions
Appearance
m Replace version="2.24.0" with version="2.24" now that the LilyWiki extension supports auto-selecting the latest release in a stable series |
mNo edit summary |
||
| (3 intermediate revisions by the same user not shown) | |||
| Line 1: | Line 1: | ||
When using <code>\partCombine</code>, commands applying to a <code>Voice</code> context affect both parts since when are merged in the same Voice. This snippet defines a music function to apply tweaks to all elements of a certain kind in a music expression. This can be used to apply modifications to all grobs caused by elements of a music expression regardless of the context structure. Possible values for the <code>event-class</code> argument are listed at the [ | When using <code>\partCombine</code>, commands applying to a <code>Voice</code> context affect both parts since when are merged in the same Voice. This snippet defines a music function to apply tweaks to all elements of a certain kind in a music expression. This can be used to apply modifications to all grobs caused by elements of a music expression regardless of the context structure. Possible values for the <code>event-class</code> argument are listed at the [{{LILYSTABLEDOC}}/internals/music-classes Internals Reference] | ||
<lilypond version="2. | <lilypond version="2.26"> | ||
% | % LSR https://lists.gnu.org/archive/html/lilypond-user/2021-06/msg00242.html | ||
tweakEverywhere = | |||
#(define-music-function | |||
(parser location event-class property value music) | |||
(symbol? symbol-list-or-symbol? scheme? ly:music?) | |||
(for-some-music | |||
(lambda (m) | |||
(if (music-is-of-type? m event-class) | |||
(begin | |||
(set! (ly:music-property m 'tweaks) | |||
(cons (cons | |||
(if (symbol? property) | |||
property | |||
(apply cons* property)) | |||
value) | |||
(ly:music-property m 'tweaks))) | |||
#t) | |||
#f)) | |||
music) | |||
music) | |||
soprano = { des' ees' fes' ges' fes' ges' aes' bes' } | soprano = { des' ees' fes' ges' fes' ges' aes' bes' } | ||
tenor = { des' ees' fes' ges' des' ees' fes' ges' } | tenor = { des' ees' fes' ges' des' ees' fes' ges' } | ||
\partCombineUp \soprano | |||
\partCombineUp \soprano \tweakEverywhere rhythmic-event font-size -3 \tenor | \tweakEverywhere rhythmic-event font-size -3 \tenor | ||
\partCombineUp \soprano \tweakEverywhere note-event Accidental.color #red \tenor | \partCombineUp \soprano | ||
\tweakEverywhere note-event Accidental.color #red \tenor | |||
</lilypond> | </lilypond> | ||
[[Category:Simultaneous notes]] | [[Category:Simultaneous notes]] | ||
[[Category:Snippet]] | |||
Latest revision as of 04:32, 6 August 2026
When using \partCombine, commands applying to a Voice context affect both parts since when are merged in the same Voice. This snippet defines a music function to apply tweaks to all elements of a certain kind in a music expression. This can be used to apply modifications to all grobs caused by elements of a music expression regardless of the context structure. Possible values for the event-class argument are listed at the Internals Reference
\version "2.26"
% LSR https://lists.gnu.org/archive/html/lilypond-user/2021-06/msg00242.html
tweakEverywhere =
#(define-music-function
(parser location event-class property value music)
(symbol? symbol-list-or-symbol? scheme? ly:music?)
(for-some-music
(lambda (m)
(if (music-is-of-type? m event-class)
(begin
(set! (ly:music-property m 'tweaks)
(cons (cons
(if (symbol? property)
property
(apply cons* property))
value)
(ly:music-property m 'tweaks)))
#t)
#f))
music)
music)
soprano = { des' ees' fes' ges' fes' ges' aes' bes' }
tenor = { des' ees' fes' ges' des' ees' fes' ges' }
\partCombineUp \soprano
\tweakEverywhere rhythmic-event font-size -3 \tenor
\partCombineUp \soprano
\tweakEverywhere note-event Accidental.color #red \tenor