A couple of questions about Edition Engraver

classic Classic list List threaded Threaded
9 messages Options
Reply | Threaded
Open this post in threaded view
|

A couple of questions about Edition Engraver

David Sumbler
As a newcomer to using Edition Engraver, and looking at the example
files etc., I wondered why they were written with so much repetition.
 "Perhaps it is just to keep things easy for newcomers like me to
understand," I thought.

So I experimented with reformatting using braces as Lilypond does,
which seemed the method most likely method.  For instance,

\editionMod test 1 0/4 Voice \(
\editionMod test 1 1/4 Lyrics #(make-music 'ExtenderEvent)
\editionMod test 1 2/8 Voice [
\editionMod test 2 0/4 Score \time 3/4
\editionMod test 2 0/4 Score \tempo "Allegro" 4=135
\editionMod test 2 0/4 Voice \p
\editionMod test 2 0/4 Voice \<
\editionMod test 2 1/4 Lyrics #(make-music 'HyphenEvent)

might become

\editionMod test {
  1 {
    0/4 Voice \(
    1/4 Lyrics #(make-music 'ExtenderEvent)
    2/8 Voice [
    }
  2 {
    0/4 {
      Score {
        \time 3/4
        \tempo "Allegro" 4=135
      }
      Voice {
        \p
        \<
      }
    }
    1/4 Lyrics #(make-music 'HyphenEvent)
  }
}

This is much clearer to me, and it would potentially be much easier to
find one's way around the file for maintenance and the addition of new
items.  I appreciate that one might not necessarily want all entries in
the order they appear in the score.

Unfortunately, what I wrote doesn't work.

Is there any likelihood that something similar to what I have suggested
might be added to Edition Engraver in the forseeable future?

And how near are we to seeing Edition Engraver included in Lilypond
itself?

David

_______________________________________________
lilypond-user mailing list
[hidden email]
https://lists.gnu.org/mailman/listinfo/lilypond-user
Reply | Threaded
Open this post in threaded view
|

Re: A couple of questions about Edition Engraver

Urs Liska-3
Hi David,

19. Februar 2018 12:00, "David Sumbler" <[hidden email]> schrieb:

> As a newcomer to using Edition Engraver, and looking at the example
> files etc., I wondered why they were written with so much repetition.
> "Perhaps it is just to keep things easy for newcomers like me to
> understand," I thought.
>
> So I experimented with reformatting using braces as Lilypond does,
> which seemed the method most likely method.  For instance,
>
> \editionMod test 1 0/4 Voice \(
> \editionMod test 1 1/4 Lyrics #(make-music 'ExtenderEvent)
> \editionMod test 1 2/8 Voice [
> \editionMod test 2 0/4 Score \time 3/4
> \editionMod test 2 0/4 Score \tempo "Allegro" 4=135
> \editionMod test 2 0/4 Voice \p
> \editionMod test 2 0/4 Voice \<
> \editionMod test 2 1/4 Lyrics #(make-music 'HyphenEvent)
>
> might become
>
> \editionMod test {
> 1 {
> 0/4 Voice \(
> 1/4 Lyrics #(make-music 'ExtenderEvent)
> 2/8 Voice [
> }
> 2 {
> 0/4 {
> Score {
> \time 3/4
> \tempo "Allegro" 4=135
> }
> Voice {
> \p
> \<
> }
> }
> 1/4 Lyrics #(make-music 'HyphenEvent)
> }
> }
>
> This is much clearer to me, and it would potentially be much easier to
> find one's way around the file for maintenance and the addition of new
> items.  I appreciate that one might not necessarily want all entries in
> the order they appear in the score.
>
> Unfortunately, what I wrote doesn't work.

No, and I think it can't be made to work since it's quite un-LilyPond-y.

What about something like (just a shot in the dark)

\edMods test \with {
  a = \with {
    m = 1
    mods = {
      \eMod 1/4 Lyrics #(make-music 'ExtenderEvent)
      \eMod 0/4 Voice \(
    }
  }
  b = \with {
    m = 2
    mods = {
      \eMod Score \tempo "Allegro" 4=135
     
...

?
 
     

>
> Is there any likelihood that something similar to what I have suggested
> might be added to Edition Engraver in the forseeable future?

I think interface improvements to the edition-engraver can always we considered.
But we would have to have a thorough discussion in order to be sure they are really an improvement. I mean a construct as I wrote above can easily become unwieldy and confusing too. I think there's always a tradeoff between clarity of structure, number of keystrokes etc. Such a nested structure tends to be more prone to problems through nesting brackets ...

>
> And how near are we to seeing Edition Engraver included in Lilypond
> itself?

No idea about that, but I think it's quite a way to go until we can consider this.
Urs

>
> David
>
> _______________________________________________
> lilypond-user mailing list
> [hidden email]
> https://lists.gnu.org/mailman/listinfo/lilypond-user

_______________________________________________
lilypond-user mailing list
[hidden email]
https://lists.gnu.org/mailman/listinfo/lilypond-user
Reply | Threaded
Open this post in threaded view
|

Re: A couple of questions about Edition Engraver

Jan-Peter Voigt
In reply to this post by David Sumbler
Hi David,

Urs already answered. I understand your concerns about the input and I
am always open for ideas to ease the input for the edition-engraver.
Like Urs already mentioned your proposal will be difficult to implement
because it doesn't use the standard parser schemes. But it sheds light
on how others might expect an easy/consistent input.

What is not explained in the demo files (yet) is: You are always free to
use constructs like

\editionMod test 1 0/4 Voice {
   <>(
   \once \override NoteHead.color = #red
   \once \override Beam.color = #red
}

To address multiple time steps at once you can use \editionModList, to
address multiple contexts at once you can use regular expressions and
wildcards like in
https://github.com/openlilylib/edition-engraver/blob/master/usage-examples/development-3.ly

Your example implies that it would be a useful feature if one can split
timing and context information into several layers. I'll think about it.

I am going to focus on the edition-engraver development in April or May.

Jan-Peter


Am 19.02.2018 um 11:59 schrieb David Sumbler:

> As a newcomer to using Edition Engraver, and looking at the example
> files etc., I wondered why they were written with so much repetition.
>   "Perhaps it is just to keep things easy for newcomers like me to
> understand," I thought.
>
> So I experimented with reformatting using braces as Lilypond does,
> which seemed the method most likely method.  For instance,
>
> \editionMod test 1 0/4 Voice \(
> \editionMod test 1 1/4 Lyrics #(make-music 'ExtenderEvent)
> \editionMod test 1 2/8 Voice [
> \editionMod test 2 0/4 Score \time 3/4
> \editionMod test 2 0/4 Score \tempo "Allegro" 4=135
> \editionMod test 2 0/4 Voice \p
> \editionMod test 2 0/4 Voice \<
> \editionMod test 2 1/4 Lyrics #(make-music 'HyphenEvent)
>
> might become
>
> \editionMod test {
>    1 {
>      0/4 Voice \(
>      1/4 Lyrics #(make-music 'ExtenderEvent)
>      2/8 Voice [
>      }
>    2 {
>      0/4 {
>        Score {
> \time 3/4
> \tempo "Allegro" 4=135
>        }
>        Voice {
>          \p
>          \<
>        }
>      }
>      1/4 Lyrics #(make-music 'HyphenEvent)
>    }
> }
>
> This is much clearer to me, and it would potentially be much easier to
> find one's way around the file for maintenance and the addition of new
> items.  I appreciate that one might not necessarily want all entries in
> the order they appear in the score.
>
> Unfortunately, what I wrote doesn't work.
>
> Is there any likelihood that something similar to what I have suggested
> might be added to Edition Engraver in the forseeable future?
>
> And how near are we to seeing Edition Engraver included in Lilypond
> itself?
>
> David
>
> _______________________________________________
> lilypond-user mailing list
> [hidden email]
> https://lists.gnu.org/mailman/listinfo/lilypond-user
>


_______________________________________________
lilypond-user mailing list
[hidden email]
https://lists.gnu.org/mailman/listinfo/lilypond-user
Reply | Threaded
Open this post in threaded view
|

Re: A couple of questions about Edition Engraver

Kieren MacMillan
Hi Jan-Peter,

> to address multiple contexts at once you can use regular expressions and wildcards like in https://github.com/openlilylib/edition-engraver/blob/master/usage-examples/development-3.ly

YAY! I didn't know this was in there. (I'm sure I would have, if I had gotten my head above water enough to test all the great code pushes you’ve been pinging me with the last few months… apologies!)

Can't wait to use this. Thank you!

> I am going to focus on the edition-engraver development in April or May.

Hopefully I'll be reasonable health (I've been continuously sick since the beginning of November) and caught up enough on my work that I can be of some help.

Best,
Kieren.
________________________________

Kieren MacMillan, composer
‣ website: www.kierenmacmillan.info
‣ email: [hidden email]


_______________________________________________
lilypond-user mailing list
[hidden email]
https://lists.gnu.org/mailman/listinfo/lilypond-user
Reply | Threaded
Open this post in threaded view
|

Re: A couple of questions about Edition Engraver

Stefano Troncaro
In reply to this post by Jan-Peter Voigt
I've been wanting to expand my earlier tutorial with a section dealing with \editionModList since I think the convenience of it can be useful to many users. However, it is not a solution for every situation. Particularly, it is not useful when you need to insert objects as part of your edition if they are going to need tweaks (for example, slurs that need to be shaped). Also, in these situations it takes away the convenience of the point and click support of Frescobaldi.

I've been thinking about the cases where \editionModList is not useful, and I think that a simple wrapping function should be enough. I had not had time to write it but it should be pretty easy to do something like this:

\quickEditionModSettings target-edition target-context 
\qM 1 2/4 ^"I'm a quick Mod. I reduce redundancy"

Where the \qM command would translate to \editionMod target-edition 1 2/4 target-context ^"blabla". With proper input file structure this shouldn't impair readability of the code. The only thing that I can think of that could further decrease redundancy is to make it so that the position in the measure defaults to 0 if it is absent, but this is unnecessary in my opinion.

But the above represents the way I prefer to structure my files. Given the way you (David) structured the code in your original post, perhaps a wrapper that works like this would be closer to your intentions?

\qMSet 'edition test
  \qMSet 'measure 1
    \qM 0/4 Voice \(
    \qM 1/4 Lyrics #(make-music 'ExtenderEvent)
  \qMSet 'measure 2
    \qMSet 'moment 0/4
      \qMSet 'context Score
        \qM \time 3/4
        \qM \tempo "Allegro" 4=135
      \qMSet 'context Voice
        \qM \p
        \qM \<
    \qMSet 'moment 1/4
      \qM Lyrics #(make-music 'HyphenEvent)

As far as I know something like that could be done, although admittedly it's not as minimalistic as your desired example with brackets. It does have the logical structure you seem to prefer though.

2018-02-19 11:34 GMT-03:00 Jan-Peter Voigt <[hidden email]>:
Hi David,

Urs already answered. I understand your concerns about the input and I am always open for ideas to ease the input for the edition-engraver. Like Urs already mentioned your proposal will be difficult to implement because it doesn't use the standard parser schemes. But it sheds light on how others might expect an easy/consistent input.

What is not explained in the demo files (yet) is: You are always free to use constructs like

\editionMod test 1 0/4 Voice {
  <>(
  \once \override NoteHead.color = #red
  \once \override Beam.color = #red
}

To address multiple time steps at once you can use \editionModList, to address multiple contexts at once you can use regular expressions and wildcards like in https://github.com/openlilylib/edition-engraver/blob/master/usage-examples/development-3.ly

Your example implies that it would be a useful feature if one can split timing and context information into several layers. I'll think about it.

I am going to focus on the edition-engraver development in April or May.

Jan-Peter



Am 19.02.2018 um 11:59 schrieb David Sumbler:
As a newcomer to using Edition Engraver, and looking at the example
files etc., I wondered why they were written with so much repetition.
  "Perhaps it is just to keep things easy for newcomers like me to
understand," I thought.

So I experimented with reformatting using braces as Lilypond does,
which seemed the method most likely method.  For instance,

\editionMod test 1 0/4 Voice \(
\editionMod test 1 1/4 Lyrics #(make-music 'ExtenderEvent)
\editionMod test 1 2/8 Voice [
\editionMod test 2 0/4 Score \time 3/4
\editionMod test 2 0/4 Score \tempo "Allegro" 4=135
\editionMod test 2 0/4 Voice \p
\editionMod test 2 0/4 Voice \<
\editionMod test 2 1/4 Lyrics #(make-music 'HyphenEvent)

might become

\editionMod test {
   1 {
     0/4 Voice \(
     1/4 Lyrics #(make-music 'ExtenderEvent)
     2/8 Voice [
     }
   2 {
     0/4 {
       Score {
        \time 3/4
        \tempo "Allegro" 4=135
       }       
       Voice {
         \p
         \<
       }
     }
     1/4 Lyrics #(make-music 'HyphenEvent)
   }   
}

This is much clearer to me, and it would potentially be much easier to
find one's way around the file for maintenance and the addition of new
items.  I appreciate that one might not necessarily want all entries in
the order they appear in the score.

Unfortunately, what I wrote doesn't work.

Is there any likelihood that something similar to what I have suggested
might be added to Edition Engraver in the forseeable future?

And how near are we to seeing Edition Engraver included in Lilypond
itself?

David

_______________________________________________
lilypond-user mailing list
[hidden email]
https://lists.gnu.org/mailman/listinfo/lilypond-user



_______________________________________________
lilypond-user mailing list
[hidden email]
https://lists.gnu.org/mailman/listinfo/lilypond-user


_______________________________________________
lilypond-user mailing list
[hidden email]
https://lists.gnu.org/mailman/listinfo/lilypond-user
Reply | Threaded
Open this post in threaded view
|

Re: A couple of questions about Edition Engraver

Jan-Peter Voigt
Hello Stefano,

this is a great idea! Setting global context variables can reduce the
needed code significantly.
In
https://github.com/openlilylib/edition-engraver/blob/master/usage-examples/development-1.ly
I use global variables to create "dynamic" editionModLists.

The files development*.ly in the usage-example folder are created during
implementation of the displayed feature. The developed code used in
development-2.ly and -3.ly already made its way into the core module and
is usable out of the box. The code in development-1.ly will be placed
there if it proofed useful. (At least I used it a lot in a score
containing lyrics to balance the syllables in order to get the rhythmic
picture of the score intact.)

Jan-Peter


Am 20.02.2018 um 06:03 schrieb Stefano Troncaro:

> I've been wanting to expand my earlier tutorial with a section dealing
> with \editionModList since I think the convenience of it can be useful
> to many users. However, it is not a solution for every situation.
> Particularly, it is not useful when you need to insert objects as part
> of your edition if they are going to need tweaks (for example, slurs
> that need to be shaped). Also, in these situations it takes away the
> convenience of the point and click support of Frescobaldi.
>
> I've been thinking about the cases where \editionModList is not useful,
> and I think that a simple wrapping function should be enough. I had not
> had time to write it but it should be pretty easy to do something like this:
>
>     \quickEditionModSettings target-edition target-context
>
>     \qM 1 2/4 ^"I'm a quick Mod. I reduce redundancy"
>
>
> Where the \qM command would translate to \editionMod target-edition 1
> 2/4 target-context ^"blabla". With proper input file structure this
> shouldn't impair readability of the code. The only thing that I can
> think of that could further decrease redundancy is to make it so that
> the position in the measure defaults to 0 if it is absent, but this is
> unnecessary in my opinion.
>
> But the above represents the way I prefer to structure my files. Given
> the way you (David) structured the code in your original post, perhaps a
> wrapper that works like this would be closer to your intentions?
>
>     \qMSet 'edition test
>
>        \qMSet 'measure 1
>
>          \qM 0/4 Voice \(
>
>          \qM 1/4 Lyrics #(make-music 'ExtenderEvent)
>
>        \qMSet 'measure 2
>
>          \qMSet 'moment 0/4
>
>            \qMSet 'context Score
>
>              \qM \time 3/4
>
>              \qM \tempo "Allegro" 4=135
>
>            \qMSet 'context Voice
>
>              \qM \p
>
>              \qM \<
>
>          \qMSet 'moment 1/4
>
>            \qM Lyrics #(make-music 'HyphenEvent)
>
>
> As far as I know something like that could be done, although admittedly
> it's not as minimalistic as your desired example with brackets. It does
> have the logical structure you seem to prefer though.
>
> 2018-02-19 11:34 GMT-03:00 Jan-Peter Voigt <[hidden email]
> <mailto:[hidden email]>>:
>
>     Hi David,
>
>     Urs already answered. I understand your concerns about the input and
>     I am always open for ideas to ease the input for the
>     edition-engraver. Like Urs already mentioned your proposal will be
>     difficult to implement because it doesn't use the standard parser
>     schemes. But it sheds light on how others might expect an
>     easy/consistent input.
>
>     What is not explained in the demo files (yet) is: You are always
>     free to use constructs like
>
>     \editionMod test 1 0/4 Voice {
>        <>(
>        \once \override NoteHead.color = #red
>        \once \override Beam.color = #red
>     }
>
>     To address multiple time steps at once you can use \editionModList,
>     to address multiple contexts at once you can use regular expressions
>     and wildcards like in
>     https://github.com/openlilylib/edition-engraver/blob/master/usage-examples/development-3.ly
>     <https://github.com/openlilylib/edition-engraver/blob/master/usage-examples/development-3.ly>
>
>     Your example implies that it would be a useful feature if one can
>     split timing and context information into several layers. I'll think
>     about it.
>
>     I am going to focus on the edition-engraver development in April or May.
>
>     Jan-Peter
>
>
>
>     Am 19.02.2018 um 11:59 schrieb David Sumbler:
>
>         As a newcomer to using Edition Engraver, and looking at the example
>         files etc., I wondered why they were written with so much
>         repetition.
>            "Perhaps it is just to keep things easy for newcomers like me to
>         understand," I thought.
>
>         So I experimented with reformatting using braces as Lilypond does,
>         which seemed the method most likely method.  For instance,
>
>         \editionMod test 1 0/4 Voice \(
>         \editionMod test 1 1/4 Lyrics #(make-music 'ExtenderEvent)
>         \editionMod test 1 2/8 Voice [
>         \editionMod test 2 0/4 Score \time 3/4
>         \editionMod test 2 0/4 Score \tempo "Allegro" 4=135
>         \editionMod test 2 0/4 Voice \p
>         \editionMod test 2 0/4 Voice \<
>         \editionMod test 2 1/4 Lyrics #(make-music 'HyphenEvent)
>
>         might become
>
>         \editionMod test {
>             1 {
>               0/4 Voice \(
>               1/4 Lyrics #(make-music 'ExtenderEvent)
>               2/8 Voice [
>               }
>             2 {
>               0/4 {
>                 Score {
>                  \time 3/4
>                  \tempo "Allegro" 4=135
>                 }
>                 Voice {
>                   \p
>                   \<
>                 }
>               }
>               1/4 Lyrics #(make-music 'HyphenEvent)
>             }
>         }
>
>         This is much clearer to me, and it would potentially be much
>         easier to
>         find one's way around the file for maintenance and the addition
>         of new
>         items.  I appreciate that one might not necessarily want all
>         entries in
>         the order they appear in the score.
>
>         Unfortunately, what I wrote doesn't work.
>
>         Is there any likelihood that something similar to what I have
>         suggested
>         might be added to Edition Engraver in the forseeable future?
>
>         And how near are we to seeing Edition Engraver included in Lilypond
>         itself?
>
>         David
>
>         _______________________________________________
>         lilypond-user mailing list
>         [hidden email] <mailto:[hidden email]>
>         https://lists.gnu.org/mailman/listinfo/lilypond-user
>         <https://lists.gnu.org/mailman/listinfo/lilypond-user>
>
>
>
>     _______________________________________________
>     lilypond-user mailing list
>     [hidden email] <mailto:[hidden email]>
>     https://lists.gnu.org/mailman/listinfo/lilypond-user
>     <https://lists.gnu.org/mailman/listinfo/lilypond-user>
>
>


_______________________________________________
lilypond-user mailing list
[hidden email]
https://lists.gnu.org/mailman/listinfo/lilypond-user
Reply | Threaded
Open this post in threaded view
|

Re: A couple of questions about Edition Engraver

Kieren MacMillan
Hi Jan-Peter,

On Feb 20, 2018, at 4:46 AM, Jan-Peter Voigt <[hidden email]> wrote:
> At least I used it a lot in a score containing lyrics to balance the syllables in order to get the rhythmic picture of the score intact.

A staggeringly large percentage of my \editionMods are Lyric-nudges.  =\
I *really* hope that whole spacing mechanism gets sorted out correctly soon (e.g., GSoC 2018?)…
For now, at least I have the EE — so thanks!

Best,
Kieren.
________________________________

Kieren MacMillan, composer
‣ website: www.kierenmacmillan.info
‣ email: [hidden email]


_______________________________________________
lilypond-user mailing list
[hidden email]
https://lists.gnu.org/mailman/listinfo/lilypond-user
Reply | Threaded
Open this post in threaded view
|

Re: A couple of questions about Edition Engraver

Stefano Troncaro
4. Things would be way easier if the EE (and/or Frescobaldi) had a method to highlight (colour-ing the grobs?) all mods, and a linking method to navigate to the correct spot in the edition file. There was an example of this [colouring part] some time ago, but I don't know if it was "taken to the goal line"; it's worth looking at.

You are referring to overrides and such, right? Because objects inserted into the score via the EE do link properly (from what I've seen). This also "works" with mod lists, it is impractical however because the link is to the object, which is always at the start of the list, and then you have to navigate the list to find the proper moment. Not ideal but certainly better than nothing. However, it's for this reason that I was thinking about making a wrapper to make input with individual commands more convenient.

By the way, working with code such as your Mary Had a Little Lamb has to be a nightmare.

2018-02-21 0:42 GMT-03:00 Kieren MacMillan <[hidden email]>:
Hi Jan-Peter,

On Feb 20, 2018, at 4:46 AM, Jan-Peter Voigt <[hidden email]> wrote:
> At least I used it a lot in a score containing lyrics to balance the syllables in order to get the rhythmic picture of the score intact.

A staggeringly large percentage of my \editionMods are Lyric-nudges.  =\
I *really* hope that whole spacing mechanism gets sorted out correctly soon (e.g., GSoC 2018?)…
For now, at least I have the EE — so thanks!

Best,
Kieren.
________________________________

Kieren MacMillan, composer
‣ website: www.kierenmacmillan.info
‣ email: [hidden email]



_______________________________________________
lilypond-user mailing list
[hidden email]
https://lists.gnu.org/mailman/listinfo/lilypond-user
Reply | Threaded
Open this post in threaded view
|

Re: A couple of questions about Edition Engraver

Kieren MacMillan
Hi Stefano,

>> 4. Things would be way easier if the EE (and/or Frescobaldi) had a method to highlight (colour-ing the grobs?) all mods, and a linking  method to navigate to the correct spot in the edition file. There was an example of this [colouring part] some time ago, but I don't know if it was "taken to the goal line"; it's worth looking at.
>
> You are referring to overrides and such, right?

Yes. (See the thread including <http://lists.gnu.org/archive/html/lilypond-user/2015-05/msg00195.html> for more details.)

> Because objects inserted into the score via the EE do link properly (from what I've seen).

Yes.

> This also "works" with mod lists, it is impractical however because the link is to the object, which is always at the start of the list, and then you have to navigate the list to find the proper moment. Not ideal but certainly better than nothing. However, it's for this reason that I was thinking about making a wrapper to make input with individual commands more convenient.

Here's hoping we find an interface that really makes the process dead simple!

> By the way, working with code such as your Mary Had a Little Lamb has to be a nightmare.

Ha! Of course, I never write scores like that… but working with modLists makes me feel like I'm working with that kind of structure.

Best,
Kieren.
________________________________

Kieren MacMillan, composer
‣ website: www.kierenmacmillan.info
‣ email: [hidden email]


_______________________________________________
lilypond-user mailing list
[hidden email]
https://lists.gnu.org/mailman/listinfo/lilypond-user