lilypond-user
[Top][All Lists]
Advanced

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

Re: Sending around contexts


From: Valentin Petzel
Subject: Re: Sending around contexts
Date: Sat, 21 Nov 2020 21:50:20 +0100

Hi Kieren,

Specifiying the context name is easy, that’s just a markup:
toDyn =
#(define-music-function (music1 music2 context) (ly:music? ly:music? markup?)
   #{
     << #music1 \new Container \new Notes { \change Container = #context 
#music2 } >>
   #})

For the other thing I do not think it is possible. Tweaking would tweak a 
property of the music, and Lilypond only allows for post events, but not for 
postscript functions. So I do no think it would be possible to get both music 
parts into parallel.

Valentin

Am Samstag, 21. November 2020, 21:14:24 CET schrieb Kieren MacMillan:
> Hi Valentin (et al.),
> 
> Oh, this is so great…!!  =)
> 
> FAIRLY MINIMAL EXAMPLE:
> 
> %%%
> \version "2.20"
> 
> \layout {
>   \context {
>     \name "Notes"
>     \type "Engraver_group"
>   }
>   \context {
>     \Voice
>     \accepts "Notes"
>   }
>   \context {
>     \name "Container"
>     \type "Engraver_group"
>     \accepts "Notes"
>     \accepts "Voice"
>   }
>   \context {
>     \Staff
>     \accepts "Container"
>   }
>   \context {
>     \Dynamics
>     \accepts "Container"
>   }
> }
> 
> toDyn =
> #(define-music-function (music1 music2) (ly:music? ly:music?)
>    #{
>      << #music1 \new Container \new Notes { \change Container =
> "piano_dynamics" #music2 } >> #})
> 
> piano_upper = {
>   c'4\p d' e' f'
>   \toDyn g'1 s1\mp
>   g'4\f f' e' d'
>   c'1
> }
> 
> piano_lower = {
>   \clef bass
>   c1
>   g,1
>   g,1
>   c1
> }
> 
> \score {
>   <<
>     \new PianoStaff <<
>       \new Staff \piano_upper
>       \new Dynamics \new Container = "piano_dynamics" s1
>       \new Staff \piano_lower
> 
> 
>   %%%  layout mod to show the centred dynamics
>   \layout {
>     \context {
>       \PianoStaff
>       \override VerticalAxisGroup.staff-staff-spacing.padding = #10
>     }
>   }
> }
> %%%
> 
> Question: Can the interface be made into a \tweak-able function, where the
> parameters are [only] the name of the target context and the music being
> sent there?
> 
> Very exciting!
> Kieren.
> ________________________________
> 
> Kieren MacMillan, composer (he/him/his)
> ‣ website: www.kierenmacmillan.info
> ‣ email: kieren@kierenmacmillan.info

Attachment: signature.asc
Description: This is a digitally signed message part.


reply via email to

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