Thank you Noeck.

Your explanation makes sense and I feel it might be close to explaining the
issue, although in the log it appears as though the edition-engraver only
sees two voices, not three, thus refering to them as Voice.B and Voice.C
instead of A and B doesn't work either.

Most intriguing to me is that if I explicitly create the voices as you
showed, so that no voices are created implicitly, like here:

> \new Staff \with { \editionID LH } {
>   \new Voice = "Implied" {
>     \clef F <<
>       \new Voice = "LH_A" \relative c' { \clef F \voiceOne e8 d c4  d8 c b4 | 
> c8 b a2 g4 }
>       \new Voice = "LH_B" \relative c { \voiceTwo f2 e | d g,4 c | }
>     >>
>   }
> }
>
> Then I can't tweak the first note of either "LH_A" or "LH_B", but I *can*
tweak any of the following notes.

Anyways, at least now I can use a structure that works properly, which was
the intent behind my original question. Although I'm still curious as to
what is the reasoning behind this behavior, it is clear that it far exceeds
my (lack of) understanding of the inner workings of Lilypond. So it's
unlikely I'll be able to find an explanation on my own. If someone finds it
I'll be more than grateful to hear it!

I attached the full example of what I described above in case it is useful
to someone.

To the openlilylib guys, since I'll be learning to use your tools, tell me
if I can be of use somehow.

Thanks!
Stéfano

2018-01-26 16:07 GMT-03:00 Noeck <noeck.marb...@gmx.de>:

> Hi Stefano,
>
> if you write
>  { \clef F <<
> as in your file eetest-not-working.ly you have this in your Staff
> context: \clef F and then afterwards two voices at the same time.
> More explicitly, your code is interpreted as somthing like:
>
> \new Staff {
>   \new Voice { \clef F
>     <<
>       \new Voice ...
>       \new Voice ...
>     >>
>   }
> }
>
> The \clef F can not be without bottom context so a Voice context is
> created automatically. This is your voice A but it does not contain notes.
> Your explicit voices are probably named B and C (I have not checked) so
> you can address them via B and C.
>
> Or you can put the clef inside the first explicit voice which is then A
> again.
>
> HTH,
> Joram
>
>
> _______________________________________________
> lilypond-user mailing list
> lilypond-user@gnu.org
> https://lists.gnu.org/mailman/listinfo/lilypond-user
>
\version "2.19.80"
\language "english"

\include "oll-core/package.ily"
\loadPackage edition-engraver

\addEdition test

%When the voice with the \clef F is created explicitly, sub-voices appear to be inaccessible on the first note of the first bar
\editionMod test 1 0/4 Piano.LH.Voice.B { \once \override NoteHead.color = #green }
\editionMod test 1 0/4 Piano.LH.Voice.C { \once \override NoteHead.color = #green }
%Yet they are accessible later
\editionMod test 1 1/8 Piano.LH.Voice.B { \once \override NoteHead.color = #green }
\editionMod test 1 2/4 Piano.LH.Voice.C { \once \override NoteHead.color = #green }

\consistToContexts #edition-engraver Score.PianoStaff.Staff.Voice

\score {
  \new PianoStaff \with { \editionID Piano } <<
    \new Staff \with { \editionID RH } <<
      \new Voice = "RH_A" \relative c'' { \voiceOne c4. d8 d4. g8 | e4.( d8 c b g4) }
      \new Voice = "RH_B" \relative c'' { \voiceTwo a2. g4~ | g f2 e4 | }
    >>
    \new Dynamics { s1\mp }
    \new Staff \with { \editionID LH } {
      \new Voice = "Implied" { 
        \clef F <<
          \new Voice = "LH_A" \relative c' { \clef F \voiceOne e8 d c4  d8 c b4 | c8 b a2 g4 }
          \new Voice = "LH_B" \relative c { \voiceTwo f2 e | d g,4 c | }
        >> 
      } 
    }
  >>
}
_______________________________________________
lilypond-user mailing list
lilypond-user@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-user

Reply via email to