lilypond-user
[Top][All Lists]
Advanced

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

Re: "Quote" Chord Track in another Staff


From: Thomas Morley
Subject: Re: "Quote" Chord Track in another Staff
Date: Sat, 8 Feb 2020 13:42:01 +0100

Am Sa., 8. Feb. 2020 um 13:23 Uhr schrieb <address@hidden>:
>
> Hi,
> thank you for this solution.
> I only made a very small adjustment and now at least I would call it 
> "elegant".
> I put all the commands needed to "quote" from the chord track into a 
> function, so now I only have to type one command instead  of three.
> I'm not versed enough in using Lilypond to know if this can be shortened even 
> more or if there are some situations where it won't work at all, but I'm 
> going to stick with it because it's still more elegant than what I used 
> before.
> Thank you.

Glad I could help.

Some remarks:

>
> %%%%%%%%%%%%%%%%%%%
> \version "2.19.83"
>
> chordTrack = \chordmode {
>   \repeat unfold 2 {
>     c1 d e f |
>   }
> }
>
> %% make 'chordTrack' quotable
> \addQuote "chrds" { \chordTrack }
>
> notes = \relative c' {
>   \repeat unfold 8 {
>     c4 d e f |
>   }
> }
>

This relies on matching context-names, so you have to care about them manually

> quoteChord = #(define-music-function

No need for 'parser location' in music-functions for 2.19.x, you could
delete them

>     (parser location music)
>     (ly:music?)
>     #{
>       \context ChordNames = "chrds-2"
>         \quoteDuring "chrds" {

I'd use $music instead, refer to the Extending manual for the difference.
Although I doubt it makes a difference here, I'm used to be a paranoiac ...

>           \context Staff = "2" { #music }
>         }
>     #}
> )
>
> otherNotes = \relative c' {
>   c1 d e f g a \quoteChord { b } c
> }
>
> \score {
>   <<
>   \new ChordNames \chordTrack
>   \new Staff \notes
>   %% initiate a ChordNames-context which may be filled form 'otherNotes'

Likely more robust to do:
  \new ChordNames = "chrds-2" { #(skip-of-length otherNotes) }

>   \new ChordNames = "chrds-2"
>   \new Staff = "2" \otherNotes
>   >>
> }
> %%%%%%%%%%%%%%%%%%%

Cheers,
  Harm



reply via email to

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