Re: 2.23.81 new D.S. code
On Wed 16 Nov 2022 at 06:21:41 (-0500), Kieren MacMillan wrote: > > >> What about creating all the parts for a score? I certainly > >> don't want to type all the common structure in each part. > > If you type the structure first, then as you use emacs, it's easy to > > copy and paste sufficient copies of it before you enter the notes. > > Okay… but yet another reason composing directly into Lilypond is suboptimal > and potentially frustrating. =\ Well, the OP did write "I'm a copyist not a composer", and my suggestion was merely to avoid them some typing (although anybody who's used an editor for years is unlikely to need it). > I often typeset scores with 40 or more staves; having to make changes in that > many places is time-consuming and error-prone. And Jean responds with a fix in short order—just like you with your scores! Cheers, David.
Re: 2.23.81 new D.S. code
Le 16/11/2022 à 12:21, Kieren MacMillan a écrit : What about creating all the parts for a score? I certainly don't want to type all the common structure in each part. If you type the structure first, then as you use emacs, it's easy to copy and paste sufficient copies of it before you enter the notes. Okay… but yet another reason composing directly into Lilypond is suboptimal and potentially frustrating. =\ I often typeset scores with 40 or more staves; having to make changes in that many places is time-consuming and error-prone. Depending on what sort of thing you may want to change, a music function could be a solution, e.g. \version "2.23.81" part = #(define-music-function (main volta1 volta2) (ly:music? ly:music? ly:music?) #{ \new Staff \repeat segno 2 { #main \alternative { \volta 1 #volta1 \volta 2 \volta #'() { \section \sectionLabel Coda } } } #volta2 #}) << \part { c'1 } { d'1 } { e'1 } \part { f'1 } { g'1 } { a'1 } >> Best, Jean OpenPGP_signature Description: OpenPGP digital signature
Re: 2.23.81 new D.S. code
Hi all, >> What about creating all the parts for a score? I certainly >> don't want to type all the common structure in each part. > If you type the structure first, then as you use emacs, it's easy to > copy and paste sufficient copies of it before you enter the notes. Okay… but yet another reason composing directly into Lilypond is suboptimal and potentially frustrating. =\ I often typeset scores with 40 or more staves; having to make changes in that many places is time-consuming and error-prone. Cheers, Kieren.
Re: 2.23.81 new D.S. code
On Tue 15 Nov 2022 at 14:41:28 (-0700), Paul Scott wrote: > On 11/15/22 1:57 PM, Jean Abou Samra wrote: > > Le 15/11/2022 à 21:50, Paul Scott a écrit : > > > What about creating all the parts for a score? I certainly > > > don't want to type all the common structure in each part. If you type the structure first, then as you use emacs, it's easy to copy and paste sufficient copies of it before you enter the notes. > > It is really that troublesome? It's the way it's intended to be used. > Can you show me where the documentation says that? > > > > You will find that \section and \fine only affect their staff, > I have already NOT found that. > > so you're already forced to duplicate those. > > No. > > > > Also, \unfoldRepeats > > will not work correctly if you don't use \repeat segno everywhere. > > I've never needed to use unfoldrepeats. I'm a copyist not a composer. I produce copies for people who appreciate MIDI versions of the score ± their parts. You need \unfoldRepeats to generate the MIDI correctly. Cheers, David.
Re: 2.23.81 new D.S. code
Hi Jean, > Clearer documentation would be a good first step, but my ultimate > wish would be a warning if this construct is used Yes, please! > because Hyrum's law That's the second apparently-reasonably-widely-known thing I learned about today! (The other was the Mendoza line.) Thanks for [once again] making me a little smarter than I was before. — Kieren
Re: 2.23.81 new D.S. code
Le 15/11/2022 à 23:03, Kieren MacMillan a écrit : It’s not for you to sweat about, though it will be nice to make things explicit in the documentation so nobody else builds up a 20-plus-year library of minefield-laden scores. Clearer documentation would be a good first step, but my ultimate wish would be a warning if this construct is used, because Hyrum's law implies that even if it's documented as discouraged, (some) people will do it anyway. (And then ask about why it's not working, one recent example being https://lists.gnu.org/archive/html/lilypond-user/2022-10/msg00236.html) OpenPGP_signature Description: OpenPGP digital signature
Re: 2.23.81 new D.S. code
Hi Jean (et al.), >> Interesting! It makes sense, of course… but I must admit that I have been >> using \repeat in my \global variable and NOT in my other note variables for >> my entire time using Lilypond, and [as far as I know] never ran into a >> problem. I really did think it was the recommended method, since (like all >> global matters) it’s easier to keep in sync when it’s in one place only. >> I’ll do my best to unlearn that coding practice going forward (and update >> older scores the next time I revisit each). > 40 minutes ago, I wrote in > https://gitlab.com/lilypond/lilypond/-/issues/6373#note_1173210040: > "https://lists.gnu.org/archive/html/lilypond-user/2022-11/msg00206.html is > giving me a cold sweat ..." > Now the sweat is starting to freeze ... My apologies for pouring on the liquid nitrogen… =) To be honest, my recent forays into polymeter would surely have demonstrated my folly had any of my polymetric scores involved repeats. It’s not for you to sweat about, though it will be nice to make things explicit in the documentation so nobody else builds up a 20-plus-year library of minefield-laden scores. Cheers, Kieren.
Re: 2.23.81 new D.S. code
Le 15/11/2022 à 22:51, Kieren MacMillan a écrit : Hi all, On Nov 15, 2022, at 4:20 PM, Jean Abou Samra wrote: \repeat, on the other hand, is a command that does not stand alone but transforms a piece of music. It should be applied to all music that it is supposed to transform. Interesting! It makes sense, of course… but I must admit that I have been using \repeat in my \global variable and NOT in my other note variables for my entire time using Lilypond, and [as far as I know] never ran into a problem. I really did think it was the recommended method, since (like all global matters) it’s easier to keep in sync when it’s in one place only. I’ll do my best to unlearn that coding practice going forward (and update older scores the next time I revisit each). 40 minutes ago, I wrote in https://gitlab.com/lilypond/lilypond/-/issues/6373#note_1173210040: "https://lists.gnu.org/archive/html/lilypond-user/2022-11/msg00206.html is giving me a cold sweat ..." Now the sweat is starting to freeze ... OpenPGP_signature Description: OpenPGP digital signature
Re: 2.23.81 new D.S. code
On 11/15/22 2:51 PM, Kieren MacMillan wrote: Hi all, On Nov 15, 2022, at 4:20 PM, Jean Abou Samra wrote: \repeat, on the other hand, is a command that does not stand alone but transforms a piece of music. It should be applied to all music that it is supposed to transform. Interesting! It makes sense, of course… but I must admit that I have been using \repeat in my \global variable and NOT in my other note variables for my entire time using Lilypond, and [as far as I know] never ran into a problem. I really did think it was the recommended method, since (like all global matters) it’s easier to keep in sync when it’s in one place only. I’ll do my best to unlearn that coding practice going forward (and update older scores the next time I revisit each). As a copyist (and programmer) I don't intend to unlearn that unless I'm forced to.. Paul
Re: 2.23.81 new D.S. code
Le 15/11/2022 à 22:46, Paul Scott a écrit : Did you see the documentation advising mismatched \repeat-s across staves? No, can you point me to it? See my previous message. The documentation does not do it apart from one example that is considered a documentation bug. OpenPGP_signature Description: OpenPGP digital signature
Re: 2.23.81 new D.S. code
Le 15/11/2022 à 22:41, Paul Scott a écrit : On 11/15/22 1:57 PM, Jean Abou Samra wrote: Le 15/11/2022 à 21:50, Paul Scott a écrit : What about creating all the parts for a score? I certainly don't want to type all the common structure in each part. It is really that troublesome? It's the way it's intended to be used. Can you show me where the documentation says that? The first sentence of https://lilypond.org/doc/v2.23/Documentation/notation/long-repeats.html#simple-repeats is "This is the syntax for a repeat without variation: \repeat volta repeatcount musicexpr where musicexpr is the music expression to be repeated." Note: "musicexpr is the music expression to be repeated". Implying that \repeat volta { ... } in a "timing" variable is trying to repeat a sequence of spacer rests. Afterwards: |"\repeat segno| differs from |\repeat volta| only in the resulting notation." I do agree that the recommendation against differing repeat structures is not blindingly obvious, and this is partly the topic of this issue: https://gitlab.com/lilypond/lilypond/-/issues/6373 where you can see that one doc example was accidentally using differing repeat structures, and it broke in the course of the 2.23 series. And I was already worried about compatibility back then ... You will find that \section and \fine only affect their staff, I have already NOT found that. so you're already forced to duplicate those. No. Try \version "2.23.81" << \new Staff { c'1 \section } \new Staff { c'1 } >> and you will see that only the first staff has a double bar line. So, this won't work: \version "2.23.81" timing = { s1 \section } << \new Staff << \timing { c'1 } >> \new Staff { c'1 } >> Although this *will* work (and is supported): \version "2.23.81" timing = { s1 \section } << \new Staff << \timing { c'1 } >> \new Staff << \timing { c'1 } >> >> OpenPGP_signature Description: OpenPGP digital signature
Re: 2.23.81 new D.S. code
Hi all, > On Nov 15, 2022, at 4:20 PM, Jean Abou Samra wrote: > \repeat, on the other hand, is a command that does not stand alone > but transforms a piece of music. It should be applied to all music > that it is supposed to transform. Interesting! It makes sense, of course… but I must admit that I have been using \repeat in my \global variable and NOT in my other note variables for my entire time using Lilypond, and [as far as I know] never ran into a problem. I really did think it was the recommended method, since (like all global matters) it’s easier to keep in sync when it’s in one place only. I’ll do my best to unlearn that coding practice going forward (and update older scores the next time I revisit each). Thanks, Kieren.
Re: 2.23.81 new D.S. code
On 11/15/22 2:20 PM, Jean Abou Samra wrote: Le 15/11/2022 à 22:10, Paul Scott a écrit : On 11/15/22 13:57, Jean Abou Samra wrote: It is really that troublesome? Yes. It's the way it's intended to be used. ?? I learned much of what I do here and, of course, in the documentation I hope others will comment on this. I'm sure I've seen structures like min advised on the list. Structures with << \timing \staffMusic >> ? Sure. You can use that for all sorts of syntax elements that stand alone, like \mark, \tempo, \textMark / \textEndMark. There is nothing bad with that, it is supported (there is no reason not to support it) and the documentation advises it. \repeat, on the other hand, is a command that does not stand alone but transforms a piece of music. It should be applied to all music that it is supposed to transform. Did you see the documentation advising mismatched \repeat-s across staves? No, can you point me to it? Cheers, Paul
Re: 2.23.81 new D.S. code
On 11/15/22 1:57 PM, Jean Abou Samra wrote: Le 15/11/2022 à 21:50, Paul Scott a écrit : What about creating all the parts for a score? I certainly don't want to type all the common structure in each part. It is really that troublesome? It's the way it's intended to be used. Can you show me where the documentation says that? You will find that \section and \fine only affect their staff, I have already NOT found that. so you're already forced to duplicate those. No. Also, \unfoldRepeats will not work correctly if you don't use \repeat segno everywhere. I've never needed to use unfoldrepeats. I'm a copyist not a composer. Paul I certainly this doesn't break in the future. "Certainly hope", I suppose? But there is no guarantee. Regards, Jean
Re: 2.23.81 new D.S. code
Le 15/11/2022 à 22:10, Paul Scott a écrit : On 11/15/22 13:57, Jean Abou Samra wrote: It is really that troublesome? Yes. It's the way it's intended to be used. ?? I learned much of what I do here and, of course, in the documentation I hope others will comment on this. I'm sure I've seen structures like min advised on the list. Structures with << \timing \staffMusic >> ? Sure. You can use that for all sorts of syntax elements that stand alone, like \mark, \tempo, \textMark / \textEndMark. There is nothing bad with that, it is supported (there is no reason not to support it) and the documentation advises it. \repeat, on the other hand, is a command that does not stand alone but transforms a piece of music. It should be applied to all music that it is supposed to transform. Did you see the documentation advising mismatched \repeat-s across staves? Best, Jean OpenPGP_signature Description: OpenPGP digital signature
Re: 2.23.81 new D.S. code
On 11/15/22 13:57, Jean Abou Samra wrote: Le 15/11/2022 à 21:50, Paul Scott a écrit : What about creating all the parts for a score? I certainly don't want to type all the common structure in each part. It is really that troublesome? Yes. It's the way it's intended to be used. ?? I learned much of what I do here and, of course, in the documentation I hope others will comment on this. I'm sure I've seen structures like min advised on the list. You will find that \section and \fine only affect their staff, so you're already forced to duplicate those. Also, \unfoldRepeats will not work correctly if you don't use \repeat segno everywhere. I certainly this doesn't break in the future. "Certainly hope", I suppose? But there is no guarantee. Yes, I omitted "hope" Paul
Re: 2.23.81 new D.S. code
Le 15/11/2022 à 21:50, Paul Scott a écrit : What about creating all the parts for a score? I certainly don't want to type all the common structure in each part. It is really that troublesome? It's the way it's intended to be used. You will find that \section and \fine only affect their staff, so you're already forced to duplicate those. Also, \unfoldRepeats will not work correctly if you don't use \repeat segno everywhere. I certainly this doesn't break in the future. "Certainly hope", I suppose? But there is no guarantee. Regards, Jean OpenPGP_signature Description: OpenPGP digital signature
Re: 2.23.81 new D.S. code
On 11/15/22 1:42 PM, Jean Abou Samra wrote: By the way, I would strongly discourage your score structure: \version "2.23.81" timing = { [\repeat segno stuff] } music = \fixed c' { [without \repeat segno] } \score { \new Staff << \timing \music >> } LilyPond does not make efforts to support differing repeat structures across voices / staves / parallel music expressions. Sometimes it works, sometimes it does not. Potentially, it could break in a future version. (This has partly happened with volta repeats in 2.23.) It is much preferable to use \repeat segno in all parallel expressions, i.e., get rid of your timing variable (unless you have other stuff in it) and use \repeat segno in the music itself. (In all voices / staves / ...) What about creating all the parts for a score? I certainly don't want to type all the common structure in each part. I certainly this doesn't break in the future. Paul
Re: 2.23.81 new D.S. code
By the way, I would strongly discourage your score structure: \version "2.23.81" timing = { [\repeat segno stuff] } music = \fixed c' { [without \repeat segno] } \score { \new Staff << \timing \music >> } LilyPond does not make efforts to support differing repeat structures across voices / staves / parallel music expressions. Sometimes it works, sometimes it does not. Potentially, it could break in a future version. (This has partly happened with volta repeats in 2.23.) It is much preferable to use \repeat segno in all parallel expressions, i.e., get rid of your timing variable (unless you have other stuff in it) and use \repeat segno in the music itself. (In all voices / staves / ...) Best, Jean OpenPGP_signature Description: OpenPGP digital signature
Re: 2.23.81 new D.S. code
I forgot to send my reply to the list that I figured out 1. On 11/15/22 11:16 AM, Jean Abou Samra wrote: Le 15/11/2022 à 19:10, Paul Scott a écrit : I'm, trying to learn the new segno repeat structure. 1. Why do I get a second staff? This has nothing to do with segno repeats, you'll get the same with \version "2.23.81" << { c } { c' } >> The fix isto use \score { \new Staff << \timing \music >> } instead of \score { << \timing \music >> } 2. What does \volta #'() do? It removes the music if repeats are unfolded by \unfoldRepeats. Thank you, Paul
Re: 2.23.81 new D.S. code
Le 15/11/2022 à 19:10, Paul Scott a écrit : I'm, trying to learn the new segno repeat structure. 1. Why do I get a second staff? This has nothing to do with segno repeats, you'll get the same with \version "2.23.81" << { c } { c' } >> The fix isto use \score { \new Staff << \timing \music >> } instead of \score { << \timing \music >> } 2. What does \volta #'() do? It removes the music if repeats are unfolded by \unfoldRepeats. Best, Jean OpenPGP_signature Description: OpenPGP digital signature
Re: 2.23.81 new D.S. code
I just answered 1. by adding \new Staff \new Voice in the score block. On 11/15/22 11:10 AM, Paul Scott wrote: I'm, trying to learn the new segno repeat structure. 1. Why do I get a second staff? 2. What does \volta #'() do? TIA for any help. Paul
2.23.81 new D.S. code
I'm, trying to learn the new segno repeat structure. 1. Why do I get a second staff? 2. What does \volta #'() do? TIA for any help. Paul \version "2.23.81" timing = { \set Score.dalSegnoTextFormatter = #format-dal-segno-text-brief s1 \repeat segno 2 { s1 \alternative { \volta 1 { s1 } \volta 2 \volta #'() { \section \sectionLabel "Coda" } } } s1 \fine } music = \fixed c' { c1 d e f } \score { << \timing \music >> }