2016-10-28 1:46 GMT+02:00 Thomas Morley <[email protected]>: > 2016-10-27 13:40 GMT+02:00 David Kastrup <[email protected]>: >> >> 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
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-devel mailing list [email protected] https://lists.gnu.org/mailman/listinfo/lilypond-devel
