Hi Ming,

On Fri, Feb 14, 2014 at 4:09 PM, MING TSANG <tsan...@rogers.com> wrote:

> As the sample from David Nalesnik that combine three set of variables into
> one, I try to do the same to combine two sets into one.  I have problem to
> let the combine code to recognize a list that is to be passed to the
> variable.
>

See attached.

HTH,
David
\version "2.18"


#(define solfege (circular-list "d" "r" "m" "f" "s" "l" "t"))
#(define numbers (circular-list "1" "2" "3" "4" "5" "6" "7"))


#(define (Ez_noteheads-engraver lst )

   (list
    (cons 'acknowledgers
      (list
       (cons 'note-head-interface
         (lambda (engraver grob source-engraver)
           (let* ((context (ly:translator-context engraver))
                  (tonic-pitch (ly:context-property context 'tonic))
                  (tonic-name (ly:pitch-notename tonic-pitch))
                  (delta (- 7 tonic-name))
                  (solfege-base lst)
                  (solfege (take (drop solfege-base delta) 7))
                  (note-names (apply vector solfege)))
             ; (display solfege)(newline)
             (ly:grob-set-property! grob 'note-names
               note-names))))))))



EzON = {
  \easyHeadsOn
  \override Staff.StaffSymbol.staff-space = #1.5  
  \override Staff.StaffSymbol.line-thickness = #1.5  
  \override Staff.NoteHead.font-size = #+3.25  
  \override Staff.Clef.font-size = #+1.35  
  \override Staff.TimeSignature.font-size = #+1.35  
  \override Staff.Accidental.font-size = #+1.35  
  \override Voice.NoteHead.font-size = #-5.25  
}


EzNum = \with { \consists #(Ez_noteheads-engraver numbers ) }

EzSol = \with { \consists #(Ez_noteheads-engraver solfege   )  } 
  

% {

global = {  \key c\major \time 4/4 }

muxI = \relative c'' { \global  
 c1 d2 e2 f4 g4 a8 b8 r4 \break
 \key f\major     f1 g2 a2 b4 c4 d8 e8 r4  
}

muxII = \relative c'  { \global  
 c1 d2 e f4 g a8 b8 r4 
 \key f\major f1 g2 a  b4 c  d8 e8 r4 
                    
}


\score {
   
  \new Staff 
    <<
     \new Voice = "sop" \EzNum
     { \voiceOne \EzON  \muxI }
     \new Voice = "alt" \EzSol
     { \voiceTwo \EzON  \muxII }
    >>
  \layout {  }
}
%}


_______________________________________________
lilypond-user mailing list
lilypond-user@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-user

Reply via email to