Re: spacer rest *
David Wrightwrites: > … which of course it should, if only to say that such whitespace > is optional and not preferred. That would make it is clearer that > c4 d e f > 8 8 8 8 8 8 8 8 > defines only 11 notes. The NR should be a reference for definitions > like this, should it not. > > Similarly AFAICT, nowhere is it defined that you can write naked > durations in lyrics, but that > \skip 4 Hm!4 hm!4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 > won't work for Papageno because it only generates blanks. Well, to be fair we showcase most lyrics via \addlyrics/\lyricsto where 4 4 4 4 would (if it would work at all) look a bit strange since the actually used durations would not matter. But I think it would be a reasonable feature to do the same for lyrics syllables. It will be rarely used but may be useful for vocalisations. Again, it's mostly a matter of "nobody thought of that yet". -- David Kastrup ___ lilypond-user mailing list lilypond-user@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-user
Re: spacer rest *
On Tue 01 May 2018 at 09:45:47 (+0200), Gianmaria Lari wrote: > On 1 May 2018 at 09:39, David Kastrupwrote: > > > Gianmaria Lari writes: > > > > > --- Exceptions --- > > > Making "s8 8 8" acting differently than "c8 8 8" introduce an > > > exception. > > > > Not "introduces" but "constitutes" since there was never a state with > > valid equal behavior. > > > > > Exceptions make things a bit "more difficult" and in my opinion should > > > be introduced carefully thinking if they worth it. As I told, I don't > > > have the competence to say if this is the case, but I found useful > > > point it out. > > > > One region where isolated durations are really useful is for drum tracks > > consisting of only one drum "pitch" for longer stretches. Those tend to > > be written with notes and rests interspersed. In that case it may be > > helpful not to have to repeat the drum name. > > > > Sure. Yes, that's the reason I thought it might have been introduced for, hence "snare" in my example. I hadn't really thought of your use case of using it for spacer "riffs" to place your annotations, but only of rests where one might not expect riffs of silence. > > It also might be worth noting that s8 8 8 cannot really be made equal in > > behavior to \skip 8 8 8 (or other music function calls) so it is more > > the question of where to draw the line rather than whether to draw a > > line at all. > > > I'm sorry I don't understand your last paragraph. \skip is a different animal from s but that's sometimes disguised by the fact that you can substitute one for the other in particular cases. But because it's a command, it always expects a duration and that duration does not participate at all in what you've called "propagation". As this is LP, one can always confuse oneself by writing \skip 2 but where I've (rarely) had to use them, I write \skip2 . Further confusion might occur where LP ignores the duration of the \skip yet it still has to be written. Cheers, David. ___ lilypond-user mailing list lilypond-user@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-user
Re: spacer rest *
On Tue 01 May 2018 at 09:15:31 (+0200), David Kastrup wrote: > David Wrightwrites: > > > On Tue 01 May 2018 at 00:15:24 (+0200), David Kastrup wrote: > >> David Wright writes: > >> > >> > AFAICT the important exception that was introduced with naked > >> > durations was that c 4 notates a single note whereas c4 4 notates two. > >> > >> There was no "exception" introduced. c 4 always indicated a single note > >> and c4 4 previously was invalid input. > > > > There's no guarantee that a new user, or a user who has only set eyes > > on notation like c4, will make the correct interpretation of, say, > > c 4 4 4 when they first encounter it. Without looking it up, there's > > no way of knowing whether LP would treat it as three notes or four. > > Without looking anything up, you cannot know the interpretation of anything. LOL. I'm sorry, I have this vision of a child checking through the meanings of the dozen words they learned this week. > At any rate, I objected to an "exception" being "introduced" > since LilyPond continued behaving absolutely the same for any previously > valid input. Well, it helps to look at the sentence's context which you removed when you originally quoted it, viz: > The disadvantage is that introduce one exception and the exception has to > be specified in the manual. But when you start learning something new, you > concentrate on essentials things not on details/exceptions. Don't know if > other people work the same but this is how does it works for me. AFAICT the important exception that was introduced with naked durations was that c 4 notates a single note whereas c4 4 notates two. BTW although this point is explained in LM (page 23), I don't think it has made it into NR yet. So the context was "start learning something new": the learner's experience rather than the power user's. With this change in LP semantics, LM introduced this warning: "… but remember that a bare pitch followed by a space and a bare duration will be interpreted as a single note. In other words, c4 a 8 8 would be interpreted as c4 a8 a8, not as c4 a4 a8 a8. Write instead c4 a4 8 8 ." People learning LP 2.19.81 have to learn that every " 8 " is not the same. If the " 8 " follows a naked pitch, it is treated differently. People who learned with LP 2.18.2 did not have to learn that. I'm perfectly happy if you prefer not to see that a new learner might view it as an exception. After all, you're immersed in the language. > Spaces never ever were relevant. And we did not even > start putting spaces into the documentation where they hadn't been > before except in very particular circumstances (like drum notation using > always the same drum). > > > So if a new user thinks that a naked duration always specifies a note > > they're likely to see the first duration in c 4 4 4 as an exception. > > The first duration in c 4 4 4 is not a naked duration. It's not the > space which makes it "naked" but the lack of pitch to attach to. Where does it actually say that? > Let me quote the documentation on this: > >Isolated durations – durations without a pitch – that occur within a > music sequence will take their pitch from the preceding note or chord. > > \relative { >\time 8/1 >c'' \longa \breve 1 2 >4 8 16 32 64 128 128 > } > > [music image] > >Isolated pitches – pitches without a duration – that occur within a > music sequence will take their duration from the preceding note or > chord. If there is no preceding duration, then default for the note is > always ‘4’, a quarter note. > > Nowhere does this talk about spaces. … which of course it should, if only to say that such whitespace is optional and not preferred. That would make it is clearer that c4 d e f 8 8 8 8 8 8 8 8 defines only 11 notes. The NR should be a reference for definitions like this, should it not. Similarly AFAICT, nowhere is it defined that you can write naked durations in lyrics, but that \skip 4 Hm!4 hm!4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 won't work for Papageno because it only generates blanks. Cheers, David. ___ lilypond-user mailing list lilypond-user@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-user
Re: spacer rest *
On 5/1/18 3:15 AM, David Kastrup wrote: Let me quote the documentation on this: Isolated durations – durations without a pitch – that occur within a music sequence will take their pitch from the preceding note or chord. \relative { \time 8/1 c'' \longa \breve 1 2 4 8 16 32 64 128 128 } [music image] Isolated pitches – pitches without a duration – that occur within a music sequence will take their duration from the preceding note or chord. If there is no preceding duration, then default for the note is always ‘4’, a quarter note. Nowhere does this talk about spaces. That is where I think the potential confusion lies. How are the phrases "durations without a pitch" and "pitches without a duration" to be interpreted? My guess is that when a novice looks at `c 4 4 4` they would assume that the `c` is a pitch without a duration unless they've been told somewhere that the intervening space doesn't count. At some point the documentation must talk about spaces: when they count and when they don't. In particular the fact that `c 4` and `c4` are equivalent should be made apparent. The best the current documentation has on this is in the Learning Manual (http://lilypond.org/doc/v2.19/Documentation/learning/working-on-input-files) where it says this about whitespace: Whitespace insensitive: it does not matter how many spaces (or tabs or new lines) you add. ‘{ c4 d e }’ means the same thing as ‘{ c4 d e }’ and: { c4 d e } Of course, the previous example is hard to read. A good rule of thumb is to indent code blocks with two spaces: { c4 d e } However, whitespace is required to separate many syntactical elements from others. In other words, whitespace can always be added, but not always eliminated. Since missing whitespace can give rise to strange errors, it is advisable to always insert whitespace before and after every syntactic element, for example, before and after every curly brace. You'll note that in examples given here, the one duration that appears is never "separated" from its pitch by a space. As a result it does nothing to clear up the ambiguity (or rather prevent it because this is Learning Manual material which the user should be familiar with before trying to decipher the Notation Reference material that David quoted). I think it might be worthwhile to a) provide an example in the Learning Manual that demonstrates the equivalency of `c 4` and `c4`; b) at the point in the NR quoted above, provide an explanation of what constitutes an "pitch without a duration" and a "duration without a pitch" possibly with a link back to the LM section on whitespace. -- ✝ Br. Samuel, OSB St. Anselm’s Abbey Washington, DC (R. Padraic Springuel) PAX ☧ ΧΡΙΣΤΟΣ ___ lilypond-user mailing list lilypond-user@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-user
Re: spacer rest *
Gianmaria Lariwrites: > Absolutely! And the problem is not really when "you see". It's when > "you write". A learnear like me, after discovering the syntax "c4 4 4" will > use with no problem like this: > > d4 c 4 4 > > > discovering that it engraves > > d4 c4 c4 > > > But starting from the moment that you say that pitches and durations can > be separated by a space I don't see any way to prevent this thing. But does > human would ever separate pitch from duration and write "c 4 d 4 e 8"? Spaces are not relevant anywhere in LilyPond except where whole words have to be separated. > If not, maybe we could output some sort of warning when the code > contains spaces between pitch and duration? No, no, no, no, no. Absolutely not. Spaces are not relevant. They are not converted into tokens and thus don't partipate in grammar, like comments. It would be complete and utter madness to tamper with that. If you want anybody to warn about that, talk to the Frescobaldi guys: things like trying to heed conventions are not the business of LilyPond but rather of those responsible for the creation of code or responsible for helping to create code. And I'd consider it a bad idea even for them. -- David Kastrup ___ lilypond-user mailing list lilypond-user@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-user
Re: spacer rest *
On 1 May 2018 at 09:39, David Kastrupwrote: > Gianmaria Lari writes: > > > --- Exceptions --- > > Making "s8 8 8" acting differently than "c8 8 8" introduce an > > exception. > > Not "introduces" but "constitutes" since there was never a state with > valid equal behavior. > > > Exceptions make things a bit "more difficult" and in my opinion should > > be introduced carefully thinking if they worth it. As I told, I don't > > have the competence to say if this is the case, but I found useful > > point it out. > > One region where isolated durations are really useful is for drum tracks > consisting of only one drum "pitch" for longer stretches. Those tend to > be written with notes and rests interspersed. In that case it may be > helpful not to have to repeat the drum name. > Sure. > It also might be worth noting that s8 8 8 cannot really be made equal in > behavior to \skip 8 8 8 (or other music function calls) so it is more > the question of where to draw the line rather than whether to draw a > line at all. I'm sorry I don't understand your last paragraph. ___ lilypond-user mailing list lilypond-user@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-user
Re: spacer rest *
On 1 May 2018 at 05:32, David Wrightwrote: > On Tue 01 May 2018 at 00:15:24 (+0200), David Kastrup wrote: > > David Wright writes: > > > > > AFAICT the important exception that was introduced with naked > > > durations was that c 4 notates a single note whereas c4 4 notates two. > > > > There was no "exception" introduced. c 4 always indicated a single note > > and c4 4 previously was invalid input. > > There's no guarantee that a new user, or a user who has only set eyes > on notation like c4, will make the correct interpretation of, say, > c 4 4 4 when they first encounter it. Without looking it up, there's > no way of knowing whether LP would treat it as three notes or four. > > So if a new user thinks that a naked duration always specifies a note > they're likely to see the first duration in c 4 4 4 as an exception. > The ambiguity didn't arise before as there was no possibility of > seeing such a string (without throwing an error). > > Of course it wouldn't look like an exception to you or anyone who's > already familiar enough with LP syntax. Absolutely! And the problem is not really when "you see". It's when "you write". A learnear like me, after discovering the syntax "c4 4 4" will use with no problem like this: d4 c 4 4 discovering that it engraves d4 c4 c4 But starting from the moment that you say that pitches and durations can be separated by a space I don't see any way to prevent this thing. But does human would ever separate pitch from duration and write "c 4 d 4 e 8"? If not, maybe we could output some sort of warning when the code contains spaces between pitch and duration? > But the OP's doubts concerned > learners and that's why my views diverge from theirs: I would prefer > a decision (concerning durations applying only to pitches) based on > power users rather than learners. > Yes, I found this a perfectly reasonable choice! But I have no idea if it is correct :) g. ___ lilypond-user mailing list lilypond-user@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-user
Re: spacer rest *
Gianmaria Lariwrites: > --- Exceptions --- > Making "s8 8 8" acting differently than "c8 8 8" introduce an > exception. Not "introduces" but "constitutes" since there was never a state with valid equal behavior. > Exceptions make things a bit "more difficult" and in my opinion should > be introduced carefully thinking if they worth it. As I told, I don't > have the competence to say if this is the case, but I found useful > point it out. One region where isolated durations are really useful is for drum tracks consisting of only one drum "pitch" for longer stretches. Those tend to be written with notes and rests interspersed. In that case it may be helpful not to have to repeat the drum name. It also might be worth noting that s8 8 8 cannot really be made equal in behavior to \skip 8 8 8 (or other music function calls) so it is more the question of where to draw the line rather than whether to draw a line at all. -- David Kastrup ___ lilypond-user mailing list lilypond-user@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-user
Re: spacer rest *
On 1 May 2018 at 00:09, David Wrightwrote: > On Fri 27 Apr 2018 at 22:56:31 (+0200), Gianmaria Lari wrote: > > On 27 April 2018 at 15:44, David Wright > wrote: > > > > > [...] > > > Well, I don't know how the decision was arrived at, but my own view is > > > that it's the correct one. The duration-only notation is aimed at > > > people writing rhythms, and they write them for instruments that play > > > notes (and pseudonotes like snare above). They don't compose rythmic > > > riffs for rests and spacers. > > > > > > > Yes, I understand the advantage for people writing rhythms. > > > > On 27 April 2018 at 15:45, Simon Albrecht > wrote: > > > > > [...] > > > > > > Even if David K. says that could be changed, I find the current > behaviour > > > pretty clear and sensible from my experience. > > > > > > > Yes, the behavior is definitely very clear. And when you know it, it also > > easy! > > > > The disadvantage is that introduce one exception and the exception has to > > be specified in the manual. But when you start learning something new, > you > > concentrate on essentials things not on details/exceptions. Don't know if > > other people work the same but this is how does it works for me. > > AFAICT the important exception that was introduced with naked > durations was that c 4 notates a single note whereas c4 4 notates two. > BTW although this point is explained in LM (page 23), I don't think it > has made it into NR yet. > > Thank goodness that my own canonical style is c4 d8 e16 etc and not > c 4 d 8 e 16 which makes erroneous naked durations harder to spot in > the source. As a singer, naked pitches like c4 d e are the norm > (ie melody), whereas naked durations c4 2. 8 are of more limited > usefulness. > > > I'm not saying exceptions should be banned but introducing an exception > > make things a bit "more difficult" and this have to be considered. I'm > > speaking for me and in general terms. I have no idea if, in this specific > > case, the advantages of this behaviour are greater than the > disadvantages. > > In your own OP, I couldn't quite understand why you would prefer s8 8 8 8 > over s8 s s s or s4. s8 unless you were machine-generating a variable > constructed with spacers from a variable containing music. > > There are different things we are discussing. I try to talk about that separately. --- s8 8 8 8 versus s8 s s s 1) I normally use naked duration with notes. So it was normal for me to use it also with spacer rest. 2) If you have something like s8 4 16 8 8 4 it's a bit more concise (and clear to me) than s8 s4 s16 s8 s s4 --- Exceptions --- Making "s8 8 8" acting differently than "c8 8 8" introduce an exception. Exceptions make things a bit "more difficult" and in my opinion should be introduced carefully thinking if they worth it. As I told, I don't have the competence to say if this is the case, but I found useful point it out. Ciao, g. ___ lilypond-user mailing list lilypond-user@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-user
Re: spacer rest *
David Wrightwrites: > On Tue 01 May 2018 at 00:15:24 (+0200), David Kastrup wrote: >> David Wright writes: >> >> > AFAICT the important exception that was introduced with naked >> > durations was that c 4 notates a single note whereas c4 4 notates two. >> >> There was no "exception" introduced. c 4 always indicated a single note >> and c4 4 previously was invalid input. > > There's no guarantee that a new user, or a user who has only set eyes > on notation like c4, will make the correct interpretation of, say, > c 4 4 4 when they first encounter it. Without looking it up, there's > no way of knowing whether LP would treat it as three notes or four. Without looking anything up, you cannot know the interpretation of anything. At any rate, I objected to an "exception" being "introduced" since LilyPond continued behaving absolutely the same for any previously valid input. Spaces never ever were relevant. And we did not even start putting spaces into the documentation where they hadn't been before except in very particular circumstances (like drum notation using always the same drum). > So if a new user thinks that a naked duration always specifies a note > they're likely to see the first duration in c 4 4 4 as an exception. The first duration in c 4 4 4 is not a naked duration. It's not the space which makes it "naked" but the lack of pitch to attach to. Let me quote the documentation on this: Isolated durations – durations without a pitch – that occur within a music sequence will take their pitch from the preceding note or chord. \relative { \time 8/1 c'' \longa \breve 1 2 4 8 16 32 64 128 128 } [music image] Isolated pitches – pitches without a duration – that occur within a music sequence will take their duration from the preceding note or chord. If there is no preceding duration, then default for the note is always ‘4’, a quarter note. Nowhere does this talk about spaces. -- David Kastrup ___ lilypond-user mailing list lilypond-user@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-user
Re: spacer rest *
On Tue 01 May 2018 at 00:15:24 (+0200), David Kastrup wrote: > David Wrightwrites: > > > AFAICT the important exception that was introduced with naked > > durations was that c 4 notates a single note whereas c4 4 notates two. > > There was no "exception" introduced. c 4 always indicated a single note > and c4 4 previously was invalid input. There's no guarantee that a new user, or a user who has only set eyes on notation like c4, will make the correct interpretation of, say, c 4 4 4 when they first encounter it. Without looking it up, there's no way of knowing whether LP would treat it as three notes or four. So if a new user thinks that a naked duration always specifies a note they're likely to see the first duration in c 4 4 4 as an exception. The ambiguity didn't arise before as there was no possibility of seeing such a string (without throwing an error). Of course it wouldn't look like an exception to you or anyone who's already familiar enough with LP syntax. But the OP's doubts concerned learners and that's why my views diverge from theirs: I would prefer a decision (concerning durations applying only to pitches) based on power users rather than learners. > > Thank goodness that my own canonical style is c4 d8 e16 etc and not > > c 4 d 8 e 16 which makes erroneous naked durations harder to spot in > > the source. > > It's always a good idea to follow conventions. Makes it easier to > cooperate with people, makes for better starting points from templates > and programmatically created LilyPond input (if only by using > \displayLilyMusic) and gives convert-ly a better chance at working > because conversion patterns tend to cater to conventions. Agreed, but if one was used to converting midi to ly with rosegarden, for example, one might easily form an opinion that c 4 d 8 e 16 is the conventional style. > > As a singer, naked pitches like c4 d e are the norm (ie melody), > > whereas naked durations c4 2. 8 are of more limited usefulness. > > So? Oh, just that I wouldn't miss naked durations if they hadn't been introduced, so I don't think my opinion (expressed earlier) should carry much weight. Apart from the OP, the only other view I've seen concerned pitched rests and I can see that specifying a lot of those might be made easier. As it happens, I hardly use pitched rests any more because of improvements to snippet 336. Cheers, David. ___ lilypond-user mailing list lilypond-user@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-user
Re: spacer rest *
David Wrightwrites: > AFAICT the important exception that was introduced with naked > durations was that c 4 notates a single note whereas c4 4 notates two. There was no "exception" introduced. c 4 always indicated a single note and c4 4 previously was invalid input. > Thank goodness that my own canonical style is c4 d8 e16 etc and not > c 4 d 8 e 16 which makes erroneous naked durations harder to spot in > the source. It's always a good idea to follow conventions. Makes it easier to cooperate with people, makes for better starting points from templates and programmatically created LilyPond input (if only by using \displayLilyMusic) and gives convert-ly a better chance at working because conversion patterns tend to cater to conventions. > As a singer, naked pitches like c4 d e are the norm (ie melody), > whereas naked durations c4 2. 8 are of more limited usefulness. So? -- David Kastrup ___ lilypond-user mailing list lilypond-user@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-user
Re: spacer rest *
On Fri 27 Apr 2018 at 22:56:31 (+0200), Gianmaria Lari wrote: > On 27 April 2018 at 15:44, David Wrightwrote: > > > [...] > > Well, I don't know how the decision was arrived at, but my own view is > > that it's the correct one. The duration-only notation is aimed at > > people writing rhythms, and they write them for instruments that play > > notes (and pseudonotes like snare above). They don't compose rythmic > > riffs for rests and spacers. > > > > Yes, I understand the advantage for people writing rhythms. > > On 27 April 2018 at 15:45, Simon Albrecht wrote: > > > [...] > > > > Even if David K. says that could be changed, I find the current behaviour > > pretty clear and sensible from my experience. > > > > Yes, the behavior is definitely very clear. And when you know it, it also > easy! > > The disadvantage is that introduce one exception and the exception has to > be specified in the manual. But when you start learning something new, you > concentrate on essentials things not on details/exceptions. Don't know if > other people work the same but this is how does it works for me. AFAICT the important exception that was introduced with naked durations was that c 4 notates a single note whereas c4 4 notates two. BTW although this point is explained in LM (page 23), I don't think it has made it into NR yet. Thank goodness that my own canonical style is c4 d8 e16 etc and not c 4 d 8 e 16 which makes erroneous naked durations harder to spot in the source. As a singer, naked pitches like c4 d e are the norm (ie melody), whereas naked durations c4 2. 8 are of more limited usefulness. > I'm not saying exceptions should be banned but introducing an exception > make things a bit "more difficult" and this have to be considered. I'm > speaking for me and in general terms. I have no idea if, in this specific > case, the advantages of this behaviour are greater than the disadvantages. In your own OP, I couldn't quite understand why you would prefer s8 8 8 8 over s8 s s s or s4. s8 unless you were machine-generating a variable constructed with spacers from a variable containing music. Cheers, David. ___ lilypond-user mailing list lilypond-user@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-user
Re: spacer rest *
On 27 April 2018 at 15:45, Simon Albrechtwrote: > On 27.04.2018 10:53, Gianmaria Lari wrote: > >> To fix it I found two different ways. >> First one: >> >> \version "2.19.81" >> \score { >> \new Voice << >> {f4 g a b} >> {s4\< s4 s4 s4\!} >> >> Other possibilities: > { s4*3\< s4\! } > { s2.\< s4\! } > { s4\< s s s\! } > Thank you Simon, this make things even more clear. > > By the way: It is customary to always surround { and } with whitespace, > even if it’s not technically necessary, and I like that convention because > it’s much better to read that way. > > > >> >> \layout {} >> } >> >> >> >> ... and second one (but I'm not sure it is "correct" even if it compiles >> and works...) >> >> \version "2.19.81" >> \score { >> \new Voice << >> {f4 g a b} >> \new Dynamics {s4\< 4 4 4\!} >> >> >> \layout {} >> } >> >> > If you’re doing that, you can go all the way and write > \new Dynamics { 4\< 4 4 4\! } > Then all the ‘4’s are converted into note events, which are ignored in a > Dynamics context. :) I discovered this today while testing. I think I will write in this way, it looks clearer to me. Thank you, g. ___ lilypond-user mailing list lilypond-user@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-user
Re: spacer rest *
On 27 April 2018 at 15:44, David Wrightwrote: > [...] > Well, I don't know how the decision was arrived at, but my own view is > that it's the correct one. The duration-only notation is aimed at > people writing rhythms, and they write them for instruments that play > notes (and pseudonotes like snare above). They don't compose rythmic > riffs for rests and spacers. > Yes, I understand the advantage for people writing rhythms. On 27 April 2018 at 15:45, Simon Albrecht wrote: > [...] > > Even if David K. says that could be changed, I find the current behaviour > pretty clear and sensible from my experience. > Yes, the behavior is definitely very clear. And when you know it, it also easy! The disadvantage is that introduce one exception and the exception has to be specified in the manual. But when you start learning something new, you concentrate on essentials things not on details/exceptions. Don't know if other people work the same but this is how does it works for me. I'm not saying exceptions should be banned but introducing an exception make things a bit "more difficult" and this have to be considered. I'm speaking for me and in general terms. I have no idea if, in this specific case, the advantages of this behaviour are greater than the disadvantages. g. ___ lilypond-user mailing list lilypond-user@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-user
Re: spacer rest *
David Wrightwrites: > On Fri 27 Apr 2018 at 14:58:13 (+0200), David Kastrup wrote: >> David Wright writes: >> >> > I would assume it's because this notation (which arrived too late for >> > me to make use of when it would have been handy¹) is designed for >> > percussion and lets you write, say: >> > >> > snare8 8 8 8 r2 R1 8 8 8 8 r2 >> > >> > ¹ a spoken work. >> >> For example. I agree that pitched rests at least seem like they might >> make a reasonable candidate for repetition in that manner even though it >> could beg the question of why unpitched rests aren't. >> >> There are no fundamental technical reasons to do one or the other. This >> is just the current implementation choice. If changes are to be made, >> it would likely be smart to do that before 2.20 gets released. > > Well, I don't know how the decision was arrived at, Not consciously made. I cooked up that feature and that was what I ended implementing. Never thought about pitched rests at all. I think there may have been some minor bit of discussion, but basically I wrote the Scheme code expand-repeat-notes! without much feedback and review and it looked at chords (actually rhythmic events in chords, not just note events: that looks fishy though probably takes some tomfoolery to trigger) and note events. > but my own view is that it's the correct one. The duration-only > notation is aimed at people writing rhythms, and they write them for > instruments that play notes (and pseudonotes like snare above). They > don't compose rythmic riffs for rests and spacers. Cage will have a word with you. But yes, that sounds reasonable to me as a defense of the current behavior. -- David Kastrup ___ lilypond-user mailing list lilypond-user@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-user
Re: spacer rest *
On 27.04.2018 10:53, Gianmaria Lari wrote: To fix it I found two different ways. First one: \version "2.19.81" \score { \new Voice << {f4 g a b} {s4\< s4 s4 s4\!} Other possibilities: { s4*3\< s4\! } { s2.\< s4\! } { s4\< s s s\! } By the way: It is customary to always surround { and } with whitespace, even if it’s not technically necessary, and I like that convention because it’s much better to read that way. >> \layout {} } ... and second one (but I'm not sure it is "correct" even if it compiles and works...) \version "2.19.81" \score { \new Voice << {f4 g a b} \new Dynamics {s4\< 4 4 4\!} >> \layout {} } If you’re doing that, you can go all the way and write \new Dynamics { 4\< 4 4 4\! } Then all the ‘4’s are converted into note events, which are ignored in a Dynamics context. And why spacer rests and rests don't "propagate" like note? Because isolated durations are automatically interpreted as note events, whose pitch is taken from the last encountered pitch. (Notes, rests and spacer rests generate different kinds of event.) Even if David K. says that could be changed, I find the current behaviour pretty clear and sensible from my experience. Best, Simon ___ lilypond-user mailing list lilypond-user@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-user
Re: spacer rest *
On Fri 27 Apr 2018 at 14:58:13 (+0200), David Kastrup wrote: > David Wrightwrites: > > > On Fri 27 Apr 2018 at 13:49:24 (+0200), Gianmaria Lari wrote: > >> On 27 April 2018 at 11:56, Andrew Bernard wrote: > >> > >> > Hi Gianmaria, > >> > > >> > The shorthand of using a duration number only applies to notes, not > >> > rests. > >> > > >> > As per the NR: > >> > > >> > Isolated durations – durations without a pitch – that occur within a > >> > music > >> > sequence will take their pitch from the preceding note or chord. > >> > > >> > > >> > That is how it is. More learned fellows may be able to offer the > >> > technical > >> > explanation underlying this. > >> > > >> > Andrew > >> > > >> > > >> Thank you for pointing me out the documentation. > >> > >> If "d4 4 " -> "d4 d4" I would expect "r4 4" -> "r4 r4" and "s4 4" -> "s4 > >> s4". What was the reason to make lilypond handle pitch and rest > >> differently? > > > > I would assume it's because this notation (which arrived too late for > > me to make use of when it would have been handy¹) is designed for > > percussion and lets you write, say: > > > > snare8 8 8 8 r2 R1 8 8 8 8 r2 > > > > ¹ a spoken work. > > For example. I agree that pitched rests at least seem like they might > make a reasonable candidate for repetition in that manner even though it > could beg the question of why unpitched rests aren't. > > There are no fundamental technical reasons to do one or the other. This > is just the current implementation choice. If changes are to be made, > it would likely be smart to do that before 2.20 gets released. Well, I don't know how the decision was arrived at, but my own view is that it's the correct one. The duration-only notation is aimed at people writing rhythms, and they write them for instruments that play notes (and pseudonotes like snare above). They don't compose rythmic riffs for rests and spacers. Cheers, David. ___ lilypond-user mailing list lilypond-user@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-user
Re: spacer rest *
On 27 April 2018 at 14:58, David Kastrupwrote: > David Wright writes: > > > On Fri 27 Apr 2018 at 13:49:24 (+0200), Gianmaria Lari wrote: > >> On 27 April 2018 at 11:56, Andrew Bernard > wrote: > >> > >> > Hi Gianmaria, > >> > > >> > The shorthand of using a duration number only applies to notes, not > rests. > >> > > >> > As per the NR: > >> > > >> > Isolated durations – durations without a pitch – that occur within a > music > >> > sequence will take their pitch from the preceding note or chord. > >> > > >> > > >> > That is how it is. More learned fellows may be able to offer the > technical > >> > explanation underlying this. > >> > > >> > Andrew > >> > > >> > > >> Thank you for pointing me out the documentation. > >> > >> If "d4 4 " -> "d4 d4" I would expect "r4 4" -> "r4 r4" and "s4 4" -> "s4 > >> s4". What was the reason to make lilypond handle pitch and rest > differently? > > > > I would assume it's because this notation (which arrived too late for > > me to make use of when it would have been handy¹) is designed for > > percussion and lets you write, say: > > > > snare8 8 8 8 r2 R1 8 8 8 8 r2 > > > > ¹ a spoken work. > > For example. I agree that pitched rests at least seem like they might > make a reasonable candidate for repetition in that manner even though it > could beg the question of why unpitched rests aren't. > > There are no fundamental technical reasons to do one or the other. This > is just the current implementation choice. If changes are to be made, > it would likely be smart to do that before 2.20 gets released. How it is decided this type of things? Is the lilypond community that express his opinion or something different? g. ___ lilypond-user mailing list lilypond-user@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-user
Re: spacer rest *
David Wrightwrites: > On Fri 27 Apr 2018 at 13:49:24 (+0200), Gianmaria Lari wrote: >> On 27 April 2018 at 11:56, Andrew Bernard wrote: >> >> > Hi Gianmaria, >> > >> > The shorthand of using a duration number only applies to notes, not rests. >> > >> > As per the NR: >> > >> > Isolated durations – durations without a pitch – that occur within a music >> > sequence will take their pitch from the preceding note or chord. >> > >> > >> > That is how it is. More learned fellows may be able to offer the technical >> > explanation underlying this. >> > >> > Andrew >> > >> > >> Thank you for pointing me out the documentation. >> >> If "d4 4 " -> "d4 d4" I would expect "r4 4" -> "r4 r4" and "s4 4" -> "s4 >> s4". What was the reason to make lilypond handle pitch and rest differently? > > I would assume it's because this notation (which arrived too late for > me to make use of when it would have been handy¹) is designed for > percussion and lets you write, say: > > snare8 8 8 8 r2 R1 8 8 8 8 r2 > > ¹ a spoken work. For example. I agree that pitched rests at least seem like they might make a reasonable candidate for repetition in that manner even though it could beg the question of why unpitched rests aren't. There are no fundamental technical reasons to do one or the other. This is just the current implementation choice. If changes are to be made, it would likely be smart to do that before 2.20 gets released. -- David Kastrup ___ lilypond-user mailing list lilypond-user@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-user
Re: spacer rest *
On Fri 27 Apr 2018 at 13:49:24 (+0200), Gianmaria Lari wrote: > On 27 April 2018 at 11:56, Andrew Bernardwrote: > > > Hi Gianmaria, > > > > The shorthand of using a duration number only applies to notes, not rests. > > > > As per the NR: > > > > Isolated durations – durations without a pitch – that occur within a music > > sequence will take their pitch from the preceding note or chord. > > > > > > That is how it is. More learned fellows may be able to offer the technical > > explanation underlying this. > > > > Andrew > > > > > Thank you for pointing me out the documentation. > > If "d4 4 " -> "d4 d4" I would expect "r4 4" -> "r4 r4" and "s4 4" -> "s4 > s4". What was the reason to make lilypond handle pitch and rest differently? I would assume it's because this notation (which arrived too late for me to make use of when it would have been handy¹) is designed for percussion and lets you write, say: snare8 8 8 8 r2 R1 8 8 8 8 r2 ¹ a spoken work. Cheers, David. ___ lilypond-user mailing list lilypond-user@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-user
Re: spacer rest *
Hi Gianmaria, You would have to get somebody like DK to explain it. I think it may have something to do with the semantics of the parser, where an isolated number represents a pitch with the pitch name elided, and since rests have no pitch, the parser would not know what to do. It seems hard to deal with this case. Since rests are less common that notes mostly, it's an OK compromise, and once you know it, it's not a pain. I mostly use explicitly positions rests like b'4\rest. It would be nice if I could say b'4\rest 4 to get another rest, but you cant. Oh well. Andrew On 27 April 2018 at 21:49, Gianmaria Lariwrote: > > If "d4 4 " -> "d4 d4" I would expect "r4 4" -> "r4 r4" and "s4 4" -> "s4 > s4". What was the reason to make lilypond handle pitch and rest differently? > > ___ lilypond-user mailing list lilypond-user@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-user
Re: spacer rest *
On 27 April 2018 at 11:56, Andrew Bernardwrote: > Hi Gianmaria, > > The shorthand of using a duration number only applies to notes, not rests. > > As per the NR: > > Isolated durations – durations without a pitch – that occur within a music > sequence will take their pitch from the preceding note or chord. > > > That is how it is. More learned fellows may be able to offer the technical > explanation underlying this. > > Andrew > > Thank you for pointing me out the documentation. If "d4 4 " -> "d4 d4" I would expect "r4 4" -> "r4 r4" and "s4 4" -> "s4 s4". What was the reason to make lilypond handle pitch and rest differently? Thank you, g. ___ lilypond-user mailing list lilypond-user@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-user
Re: spacer rest *
Hi Gianmaria, The shorthand of using a duration number only applies to notes, not rests. As per the NR: Isolated durations – durations without a pitch – that occur within a music sequence will take their pitch from the preceding note or chord. That is how it is. More learned fellows may be able to offer the technical explanation underlying this. Andrew ___ lilypond-user mailing list lilypond-user@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-user
Re: spacer rest *
2018-04-27 10:53 GMT+02:00 Gianmaria Lari: > > > > On 25 April 2018 at 10:09, Gianmaria Lari wrote: >> >> I don't understand the difference between s8 8 8 and s8*3. >> >> For example have a look to the following code that engrave two scores: >> >> \version "2.19.81" >> rh = \fixed c'{g8 8 8 8} >> >> dyn = { s8 \> 8 8 8 \!} >> { << \rh \new Dynamics \dyn >> } >> >> dyn = { s8 \> 8*3 \!} >> { << \rh \new Dynamics \dyn >> } >> >> >> These are the resulting scores: >> >> >> I expected that dynamics would be the same. Why they are not? >> Thank you, g. > > > I made some test with the code above and discovered something that maybe for > you all was clear but it wasn't for me. Have a look to the following code: > > \version "2.19.81" > \score { > \new Voice << > {f4 g a b} > {s4\< 4 4 4\!} > >> > \layout {} > } > > I didn't expect to see this output: > > > > If I understood correctly this is the fact that spacer rest (and normal rest) > does not "propagate". > > To fix it I found two different ways. > First one: > > \version "2.19.81" > \score { > \new Voice << > {f4 g a b} > {s4\< s4 s4 s4\!} > >> > \layout {} > } > > > > ... and second one (but I'm not sure it is "correct" even if it compiles and > works...) > > \version "2.19.81" > \score { > \new Voice << > {f4 g a b} > \new Dynamics {s4\< 4 4 4\!} > >> > \layout {} > } > > > Any comments? > > And why spacer rests and rests don't "propagate" like note? > > Thank you, g. >From Changes: "Isolated durations in music now stand for unpitched notes. Pitches are taken from the preceding note or chord." Spacers and rests don't have a pitch. Iiuc the last seen note-event-pitch is taken, `b' in your case. Falling back to c' if none was entered so far. Cheers, Harm ___ lilypond-user mailing list lilypond-user@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-user
Re: spacer rest *
On 27/04/2018 10:53, Gianmaria Lari wrote: > And why spacer rests and rests don't "propagate" like note? I'm not sure what you mean by that, but »regular« notes behave just the same way: << {f'4 g' a' b'} \\ {d'4\< d'4*3\! } >> -- I am my own reality check. signature.asc Description: OpenPGP digital signature ___ lilypond-user mailing list lilypond-user@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-user
Re: spacer rest *
On 25 April 2018 at 10:09, Gianmaria Lariwrote: > I don't understand the difference between s8 8 8 and s8*3. > > For example have a look to the following code that engrave two scores: > > \version "2.19.81" > rh = \fixed c'{g8 8 8 8} > > dyn = { s8 \> 8 8 8 \!} > { << \rh \new Dynamics \dyn >> } > > dyn = { s8 \> 8*3 \!} > { << \rh \new Dynamics \dyn >> } > > > These are the resulting scores: > > > I expected that dynamics would be the same. Why they are not? > Thank you, g. > I made some test with the code above and discovered something that maybe for you all was clear but it wasn't for me. Have a look to the following code: \version "2.19.81" \score { \new Voice << {f4 g a b} {s4\< 4 4 4\!} >> \layout {} } I didn't expect to see this output: If I understood correctly this is the fact that spacer rest (and normal rest) does not "propagate". To fix it I found two different ways. First one: \version "2.19.81" \score { \new Voice << {f4 g a b} {s4\< s4 s4 s4\!} >> \layout {} } ... and second one (but I'm not sure it is "correct" even if it compiles and works...) \version "2.19.81" \score { \new Voice << {f4 g a b} \new Dynamics {s4\< 4 4 4\!} >> \layout {} } Any comments? And why spacer rests and rests don't "propagate" like note? Thank you, g. ___ lilypond-user mailing list lilypond-user@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-user
Re: spacer rest *
Thank to everybody for the answers, now it's clear the difference between the two writing. Regarding the specific example Malte explanation was especially useful. Thank you, g. On 25 April 2018 at 11:51, Robert Schmauswrote: > Picture wooden building blocks which some of us still might remember from > their childhood. Every block has a single slot to attach stuff to. > > s8 8 8 are 3 distinct cubes of edge length 1. > s8*3 is a single block measuring 1x1x3. > > Cheers, Robert > > > On 25 Apr 2018, at 10:09, Gianmaria Lari wrote: > > I don't understand the difference between s8 8 8 and s8*3. > > For example have a look to the following code that engrave two scores: > > \version "2.19.81" > rh = \fixed c'{g8 8 8 8} > > dyn = { s8 \> 8 8 8 \!} > { << \rh \new Dynamics \dyn >> } > > dyn = { s8 \> 8*3 \!} > { << \rh \new Dynamics \dyn >> } > > > These are the resulting scores: > > > > I expected that dynamics would be the same. Why they are not? > Thank you, g. > > > > ___ > lilypond-user mailing list > lilypond-user@gnu.org > https://lists.gnu.org/mailman/listinfo/lilypond-user > > ___ lilypond-user mailing list lilypond-user@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-user
Re: spacer rest *
Picture wooden building blocks which some of us still might remember from their childhood. Every block has a single slot to attach stuff to. s8 8 8 are 3 distinct cubes of edge length 1. s8*3 is a single block measuring 1x1x3. Cheers, Robert > On 25 Apr 2018, at 10:09, Gianmaria Lariwrote: > > I don't understand the difference between s8 8 8 and s8*3. > > For example have a look to the following code that engrave two scores: > > \version "2.19.81" > rh = \fixed c'{g8 8 8 8} > > dyn = { s8 \> 8 8 8 \!} > { << \rh \new Dynamics \dyn >> } > > dyn = { s8 \> 8*3 \!} > { << \rh \new Dynamics \dyn >> } > > These are the resulting scores: > > > > I expected that dynamics would be the same. Why they are not? > Thank you, g. > > > > ___ > lilypond-user mailing list > lilypond-user@gnu.org > https://lists.gnu.org/mailman/listinfo/lilypond-user ___ lilypond-user mailing list lilypond-user@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-user
Re: spacer rest *
Gianmaria Lariwrites: > I don't understand the difference between s8 8 8 and s8*3. s8 8 8 are three events with a duration of 8, s8*3 is a single event with a duration of 8*3 . The duration 8*3 _looks_ like a duration of 8 (not relevant for s but for example if you write c8*3) but takes up 3 times the actual space or "musical time" in the score. You can write stuff like c8*2/3 for triplets without actual triplet markings. So if we parenthesize (this is not LilyPond syntax), s8*3 means s(8*3) rather than (s8)*3 where 8*3 means "8 but taking up 3 times the amount of musical time". -- David Kastrup ___ lilypond-user mailing list lilypond-user@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-user
Re: spacer rest *
Am 25.04.2018 um 10:09 schrieb Gianmaria Lari: dyn = { s8 \> 8 8 8 \!} This places \> at the start of the first s8 and the \! at the start of the fourth s8, so it comes after three eighths. dyn = { s8 \> 8*3 \!} This places \> at the start of the first s8 and the \! at the start of the s8*3, i. e. it’s the same as s8 \> 8 \! 8 8 and the \! comes after one eighth. I expected that dynamics would be the same. Why they are not? You can use s8*3 but it has to be s8*3 \> 8 \! if you want to have the \! after three eights. ___ lilypond-user mailing list lilypond-user@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-user
Re: spacer rest *
On 2018-04-25 01:09, Gianmaria Lari wrote: I don't understand the difference between s8 8 8 and s8*3. In the former, you are specifying three spacers, each an eighth note in duration. In the latter, you are specifying a single spacer, with a duration of three eighth notes. -- Aaron Hill ___ lilypond-user mailing list lilypond-user@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-user