2016-10-28 1:46 GMT+02:00 Thomas Morley <thomasmorle...@gmail.com>:
> 2016-10-27 13:40 GMT+02:00 David Kastrup <d...@gnu.org>:
>>
>> This concerns << ... \\ ... \\ ... ... >>
>>
>> If we have more than one voice, voices are assigned in order:
>>
>> 1/2, 1/2/3, 1/2/3/4, 1/2/3/4/5, 1/2/3/4/5/6 ...
>>
>> while the documentation is quite explicit that, ordered from top to
>> bottom, assignments should be more like
>>
>> 1/2, 3/1/2, 3/1/2/4, 5/3/1/2/4, 5/3/1/2/4/6 ...
>>
>> namely keeping the small voice numbers for the inner voices.  Now I am
>> sort of afraid that changing this is likely to end pretty disruptive to
>> existing scores.  Even though I don't know how many really use the
>> original ordering unchanged as well as intentionally.
>>
>> Thoughts?
>>
>> --
>> David Kastrup
>
>
> I remember the time I was a lilypond-starter, I was pretty confused
> about the order...
>
> I'd vote for doing it better even if it breaks previous user codes.
> Ofcourse we should document all thoroughly and ofcourse there will be
> some complaints on the list, which needs to be adressed.
> We did things like that before, I remember the change with the bar-lines ...
>
> my 2 cents,
>   Harm

I'd wish more users would participate in this discussion.

To make it more visible I coded a small snippet annotating some info
to NoteHeads in
<< .. \\ .. \\ ... ... ... >>-constructs.

Output attached.
I attach the coding as well, if someone is interested, though be aware
it's not fully elaborated, just enough for purpose.

HTH,
  Harm

Attachment: atest-46.pdf
Description: Adobe PDF document

\version "2.19.49"

%% creates a StringNumber-grob, which then prints info about context/voiceXxx
annotateVoiceInfo =
#(lambda (ctx)
   (make-engraver
     (acknowledgers
       ((note-column-interface engraver grob source-engraver)
         (let ((nhds (ly:grob-array->list (ly:grob-object grob 'note-heads)))
               (stem (ly:grob-object grob 'stem))
               (stem-dir-shift-list
                 ;; obviously incomplete..
                 '(((1 . 0) "One")
                   ((-1 . 0) "Two")
                   ((1 . 1) "Three")
                   ((-1 . 1) "Four")
                   ((1 . 2) "Five")
                   ((-1 . 2) "Six")
                   ((1 . 3) "Seven")
                   ((-1 . 3) "Eight"))))
           (for-each
             (lambda (nh)
               (let ((new-grob 
                       (ly:engraver-make-grob engraver 'StringNumber '())))
                 (ly:grob-set-parent! new-grob Y nh)
                 (ly:grob-set-property! new-grob 'side-axis Y)
                 (ly:grob-set-property! new-grob 'direction UP)
                 (ly:grob-set-property! new-grob 'X-offset 7)
                 (ly:grob-set-property! new-grob 'stencil
                   (grob-interpret-markup new-grob
                     (markup 
                       #:fontsize -3
                       #:vcenter
                       #:normal-text 
                       (format #f 
" This context has the id: \"~a\",  with settings equal to: \\voice~a" 
                         (ly:context-id ctx)
                         (car
                           (assoc-get 
                             (cons (ly:grob-property stem 'direction) 
                                   (ly:grob-property grob 'horizontal-shift))
                             stem-dir-shift-list '("-none" . "")))))))))
             nhds))))))
        

\layout {
  \context {
    \Voice
    stringNumberOrientations = #'(right)
    \consists \annotateVoiceInfo
  }
}

%% needed for third example, see NR
voiceFive = #(context-spec-music (make-voice-props-set 4)  'Voice)
voiceSix = #(context-spec-music (make-voice-props-set 5)  'Voice)
voiceSeven = #(context-spec-music (make-voice-props-set 6)  'Voice)

{
	
  <>^"In the order the Docs advice, iiuc"
  << c'''2 \\ c' \\ g'' \\ e' \\ e'' \\ g' \\ c''  >>
  
  <>^"Ordered as descending pitches"
  << c'''2 \\ g'' \\ e'' \\ c'' \\ g' \\ e' \\ c' >>
  
  <>^"Ordered as descending pitches with custom voiceXxx-settings"
  << 
  	c'''2 
    \\ 
    { \voiceThree g'' } 
    \\ 
    { \voiceFive e'' }
    \\ 
    { \voiceSeven c'' }
    \\ 
    { \voiceSix g' }
    \\ 
    { \voiceFour e' }
    \\ 
    { \voiceTwo c' } 
  >>
}
_______________________________________________
lilypond-user mailing list
lilypond-user@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-user

Reply via email to