Sorry, meant to include this: %{TB65-66%} ef4~ ef16 f16) g8 f4. af8 | %new TBk doesn't have the whole note. \new Voice = "Tenor" { \voiceOne { \TTj \TBk g1~ | g1 } } \new Voice = "Bass" { \voiceTwo { \BBj \TBk s1~ | s1 } }
On Wed, Apr 4, 2012 at 1:29 AM, Mark Mathias <d8val...@gmail.com> wrote: > (1) Try altering your TBk variable to not include the tied whole note, > then add the whole note to one Voice and add a space instead of a whole > note to the other Voice. > (2) Someone else will have to help you with your second question. > May I suggest that you carve your sample down to a Very Tiny Example? It > will make it easier for someone to help you. > Best Wishes, > Mark > > On Tue, Apr 3, 2012 at 11:50 PM, MING TSANG <tsan...@rogers.com> wrote: > >> Two questions: >> (1) how can I have partcombine works on whole note - refer to bar #6 of >> png file? >> (2) how can I have slash on the grace notes beam - refer to piano RH - >> bar #4? >> >> Appreciate the help. >> >> <><><><>snippet >> \version "2.14.2" >> \include "english.ly" >> #(define (rest-score r) >> (let ((score 0) >> (yoff (ly:grob-property-data r 'Y-offset)) >> (sp (ly:grob-property-data r 'staff-position))) >> (if (number? yoff) >> (set! score (+ score 2)) >> (if (eq? yoff 'calculation-in-progress) >> (set! score (- score 3)))) >> (and (number? sp) >> (<= 0 2 sp) >> (set! score (+ score 2)) >> (set! score (- score (abs (- 1 sp))))) >> score)) >> #(define (merge-rests-on-positioning grob) >> (let* ((can-merge #f) >> (elts (ly:grob-object grob 'elements)) >> (num-elts (and (ly:grob-array? elts) >> (ly:grob-array-length elts))) >> (two-voice? (= num-elts 2))) >> (if two-voice? >> (let* ((v1-grob (ly:grob-array-ref elts 0)) >> (v2-grob (ly:grob-array-ref elts 1)) >> (v1-rest (ly:grob-object v1-grob 'rest)) >> (v2-rest (ly:grob-object v2-grob 'rest))) >> (and >> (ly:grob? v1-rest) >> (ly:grob? v2-rest) >> (let* ((v1-duration-log (ly:grob-property v1-rest 'duration-log)) >> (v2-duration-log (ly:grob-property v2-rest 'duration-log)) >> (v1-dot (ly:grob-object v1-rest 'dot)) >> (v2-dot (ly:grob-object v2-rest 'dot)) >> (v1-dot-count (and (ly:grob? v1-dot) >> (ly:grob-property v1-dot 'dot-count -1))) >> (v2-dot-count (and (ly:grob? v2-dot) >> (ly:grob-property v2-dot 'dot-count -1)))) >> (set! can-merge >> (and >> (number? v1-duration-log) >> (number? v2-duration-log) >> (= v1-duration-log v2-duration-log) >> (eq? v1-dot-count v2-dot-count))) >> (if can-merge >> ;; keep the rest that looks best: >> (let* ((keep-v1? (>= (rest-score v1-rest) >> (rest-score v2-rest))) >> (rest-to-keep (if keep-v1? v1-rest v2-rest)) >> (dot-to-kill (if keep-v1? v2-dot v1-dot))) >> ;; uncomment if you're curious of which rest was chosen: >> ;;(ly:grob-set-property! v1-rest 'color green) >> ;;(ly:grob-set-property! v2-rest 'color blue) >> (ly:grob-suicide! (if keep-v1? v2-rest v1-rest)) >> (if (ly:grob? dot-to-kill) >> (ly:grob-suicide! dot-to-kill)) >> (ly:grob-set-property! rest-to-keep 'direction 0) >> (ly:rest::y-offset-callback rest-to-keep))))))) >> (if can-merge >> #t >> (ly:rest-collision::calc-positioning-done grob)))) >> global = {\key c\major \time 4/4 \tempo 4 = 63} >> TTj = \relative c { >> %{TT61-62%} ef2 r8. bf16 ef8 ef8 | ef4( c4 d8) d16 d16 b8 b8 | >> %{TT63 %} c2~ c2 | >> } >> BBj = \relative c { >> %{BB61-62%} bf2 r8. g16 g8 g8 | af2( g8) g16 g16 g8 g8 | >> %{BB63 %} c2( c2) | >> } >> %------------------------------------------------------------------------------ >> TBk = \relative c { >> %{TB64 %} r2 r4 ef8 d16 ef(~ | >> %{TB65-66%} ef4~ ef16 f16) g8 f4. af8 | g1~ | g1 >> } >> PianoRH = \relative c' { \global >> %{rh61 %} <ef g bf>4~ q8 <g bf ef g>16 <af ef' af>16 <bf ef bf'>8. ef16 >> <ef g bf ef>8 <d g bf d>8 >> %{rh62 %} <c ef af c>4 c,16 g16 af16 c16 <f, a c d>4 <d' f d'>8 <d g d'>8 >> %{rh63 %} <<{ <g c ef>4~ q4 <af ef'>2 }\\{ ef4~ ef8 ef16 r8 af,8 <c~ g'>8 >> <c f>8 }>> >> %{rh64 %} <<{ r8 bf''16 af16 ef16 df16 bf16 af16 ef8[ \grace{ bf16[ ef16] >> } bf8] <ef, af ef'>4 }\\{ <f bf ef>2. s4 }>> >> %{rh65 %} <g bf ef>2\stemUp <af c f>2 >> %{rh66 %} <g bf ef g>2 <c ef f af>2 r1 >> } >> >> %------------------------------------------------------------------------------ >> PianoLH = \relative c { \global \clef bass >> %{lh61 %} <<{ r16 bf16 ef16 f16 s2 r16 ef16 bf'8 }\\{ ef,,4 g'8 <ef bf' >> ef>16 <f f'>16 <g bf ef g>4 g,4 }>> >> %{lh62 %} <<{ s4 <af, af'>4 <g g'>4 s4 }\\{ <af' ef' c'>4\arpeggio s2 <g >> d' b'>4\arpeggio }>> >> %{lh63 %} <<{ r16 g16 c16 d16 ef16 g16 c8 <f, c'>2 }\\{c,2 r4 c'4 }>> >> %{lh64 %} <df, af'>2. <cf gf'>4_- >> %{lh65 %} <<{ bf'2 bf2 }\\{ bf,4 bf4 bf4 bf4 }>> >> %{lh66 %} <<{ bf'2 bf2 }\\{ bf,4 bf4 bf4 bf4 }>> r1 >> } >> %%%%%%%%%%%%%%%%% SA_TB seperate + piano staff >> % { >> \score { >> \new GrandStaff = "GrandStaff_score" << >> \new ChoirStaff << >> \new Staff \with { \override RestCollision #'positioning-done = >> #merge-rests-on-positioning >> }<< >> \clef "bass" >> \global \partcombine >> \new Voice = "Tenor" { >> \voiceOne { \TTj \TBk }} >> \new Voice = "Bass" { >> \voiceTwo { \BBj \TBk }} >> >> >> >> >> \new PianoStaff << >> \set PianoStaff.connectArpeggios = ##t >> \new Staff = "RH" { \global \PianoRH } >> \new Staff = "LH" { \global \clef bass \PianoLH } >> >> >> >> >> \layout { indent = #'0 >> \context { \RemoveEmptyStaffContext } >> \context { >> \Staff >> \override TimeSignature #'style = #'() >> } >> } >> \midi { >> \context { } >> \context { \Staff \remove "Dynamic_performer" } >> } >> } >> >> <><><>end >> >> Blessing in+, >> Ming. >> >> _______________________________________________ >> lilypond-user mailing list >> lilypond-user@gnu.org >> https://lists.gnu.org/mailman/listinfo/lilypond-user >> >> >
_______________________________________________ lilypond-user mailing list lilypond-user@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-user