lilypond-user
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Openlilylib edition-engraver. I need help understanding how to refer


From: Stefano Troncaro
Subject: Re: Openlilylib edition-engraver. I need help understanding how to reference contexts.
Date: Fri, 26 Jan 2018 12:55:36 -0300

Thank you Jan-Peter, that's really useful!

In regards to the first problem, I experimented with it a little. Using the same snippet as before, It turns out that if I write this line like this:
\new Staff \with { \editionID LH } { \clef F <<
Then the path to Piano.LH.Voice.A doesn't seem to work and the note isn't colored. This is the output of the logfile:
[context-counter] Piano/LH/Staff: (0 . #f)
[context-counter] Piano/LH/Staff/A:
[context-counter] Piano/LH/Voice: (1 . #f)
[context-counter] Piano/LH/Voice/A:
[context-counter] Piano/LH/Voice/B:
[context-counter] Piano/PianoStaff: (0 . #f)
[context-counter] Piano/PianoStaff/A:
[context-counter] Piano/RH/Staff: (0 . #f)
[context-counter] Piano/RH/Staff/A:
[context-counter] Piano/RH/Voice: (1 . #f)
[context-counter] Piano/RH/Voice/A:
[context-counter] Piano/RH/Voice/B:
[context-counter] Score: (0 . \new)
[context-counter] Score/A: \new
(Piano LH Staff A) ""
(Piano LH Voice A) ""
(Piano LH Voice B) ""
(Piano PianoStaff A) ""
(Piano RH Staff A) ""
(Piano RH Voice A) ""
(Piano RH Voice B) ""
(Score A) "\new"

On the other hand, if I write it like this:
\new Staff \with { \editionID LH } { << \clef F
Now that the \clef F is inside the << >> the path to Piano.LH.Voice.A works properly. This is the output of the logfile:
[context-counter] Piano/LH/Staff: (0 . #f)
[context-counter] Piano/LH/Staff/A:
[context-counter] Piano/LH/Voice: (1 . #f)
[context-counter] Piano/LH/Voice/A:
[context-counter] Piano/LH/Voice/B:
[context-counter] Piano/PianoStaff: (0 . #f)
[context-counter] Piano/PianoStaff/A:
[context-counter] Piano/RH/Staff: (0 . #f)
[context-counter] Piano/RH/Staff/A:
[context-counter] Piano/RH/Voice: (1 . #f)
[context-counter] Piano/RH/Voice/A:
[context-counter] Piano/RH/Voice/B:
[context-counter] Score: (0 . \new)
[context-counter] Score/A: \new
(Piano LH Staff A) ""
(Piano LH Voice A) ""
(Piano LH Voice B) ""
(Piano PianoStaff A) ""
(Piano RH Staff A) ""
(Piano RH Voice A) ""
(Piano RH Voice B) ""
(Score A) "\new"
Which is exactly the same as before. Yet one works and the other doesn't. Is there a way to have more specific logging in order to better trace the issue?

I attached a .ly for both examples in case you find it more convenient.

Thank you for your help!
Stefano

2018-01-26 4:06 GMT-03:00 Jan-Peter Voigt <address@hidden>:
Hello Stefano,

I can't reproduce the misbehaviour/error you mentioned first. The overrides are applied irrespective of the clefs placement. If the error persists, you might send the <document>.edition.log file.

To reduce the redundancy you mentioned you can create variables:

LH = Piano.LH
RH = Piano.RH

Then you can use them like this:

\editionMod test 1 0/4 \RH.Voice.A { ... }

Internally the modifications are stored in a hierarchically structured manner before the targets are known. Thet is the reason the full path is needed.

HTH
Jan-Peter


Am 25.01.2018 um 23:35 schrieb Stefano Troncaro:
Hello everyone! So, I'm learning to use the edition-engraver, but there are some behaviors that I can't figure out.

Take the following snippet:

    \version  "2.19.80" \language  "english" \include  "oll-core/package.ily" \loadPackage  edition-engraver

    \addEdition  test

    \editionMod  test1 0/4  RH.Voice.A{ \once \override  NoteHead.color  = #green } \editionMod  test1 0/4  LH.Voice.A{ \once \override  NoteHead.color  = #green } \consistToContexts  #edition-engraver Score.PianoStaff.Staff.Voice

    \score  { \new  PianoStaff  << \new  Staff  \with  {  \editionID  RH} << \new  Voice  \relative  c''{  \voiceOne  c4.  d8  d4.  g8  | e4.(  d8  c b g4)  } \new  Voice  \relative  c''{  \voiceTwo  a2.  g4~  | g f2  e4  |} >> \new  Dynamics  {  s1\mp  } \new  Staff  \with  {  \editionID  LH} { << \new  Voice  \relative  c'{  \clef  F  \voiceOne  e8  d c4 d8  c b4  | c8  b a2  g4  |} \new  Voice  \relative  c{  \voiceTwo  f2  e | d g,4  c |} >> } >> }


In the left hand staff, if I move the \clef F from inside one of the two voices to the outside, like in the following example:

    \new  Staff  \with  {  \editionID  LH} {  \clef  F  << \new  Voice  \relative  c'{  \voiceOne  e8  d c4 d8  c b4  | c8  b a2  g4  |} \new  Voice  \relative  c{  \voiceTwo  f2  e | d g,4  c |} >> }

then I can't find a way to reference the voices contained in the Staff. Why does this happen?

Secondly, if I give an \editionID to the PianoStaff, then I can only reference the staves by giving a full route. For example, if I gave it the ID Piano I would have to write Piano.LH.Voice.A to reference the first voice. Is there a way to avoid this redundancy?

In relation with the last question, I have tried and I can't figure out how to give an ID to a Voice context so that I can reference it directly, without having to "walk to it" from a reference to a Staff. Is this possible?

Those are all my doubts, at least for the moment. Thank you in advance!


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



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

Attachment: eetest-not-working.ly
Description: Text Data

Attachment: eetest-working.ly
Description: Text Data


reply via email to

[Prev in Thread] Current Thread [Next in Thread]