Re: spacer rest *

2018-05-01 Thread David Kastrup
David Wright  writes:

> … 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 *

2018-05-01 Thread David Wright
On Tue 01 May 2018 at 09:45:47 (+0200), Gianmaria Lari wrote:
> On 1 May 2018 at 09:39, David Kastrup  wrote:
> 
> > 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 *

2018-05-01 Thread David Wright
On Tue 01 May 2018 at 09:15:31 (+0200), David Kastrup wrote:
> David Wright  writes:
> 
> > 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 *

2018-05-01 Thread Br. Samuel Springuel

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 *

2018-05-01 Thread David Kastrup
Gianmaria Lari  writes:

> 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 *

2018-05-01 Thread Gianmaria Lari
On 1 May 2018 at 09:39, David Kastrup  wrote:

> 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 *

2018-05-01 Thread Gianmaria Lari
On 1 May 2018 at 05:32, David Wright  wrote:

> 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 *

2018-05-01 Thread David Kastrup
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.

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 *

2018-05-01 Thread Gianmaria Lari
On 1 May 2018 at 00:09, David Wright  wrote:

> 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 *

2018-05-01 Thread David Kastrup
David Wright  writes:

> 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 *

2018-04-30 Thread David Wright
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. 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 *

2018-04-30 Thread David Kastrup
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.

> 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 *

2018-04-30 Thread David Wright
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.

Cheers,
David.

___
lilypond-user mailing list
lilypond-user@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-user


Re: spacer rest *

2018-04-27 Thread Gianmaria Lari
On 27 April 2018 at 15:45, Simon Albrecht  wrote:

> 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 *

2018-04-27 Thread Gianmaria Lari
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.

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 *

2018-04-27 Thread David Kastrup
David Wright  writes:

> 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 *

2018-04-27 Thread Simon Albrecht

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 *

2018-04-27 Thread David Wright
On Fri 27 Apr 2018 at 14:58:13 (+0200), David Kastrup wrote:
> 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.

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 *

2018-04-27 Thread Gianmaria Lari
On 27 April 2018 at 14:58, David Kastrup  wrote:

> 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 *

2018-04-27 Thread David Kastrup
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.

-- 
David Kastrup

___
lilypond-user mailing list
lilypond-user@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-user


Re: spacer rest *

2018-04-27 Thread David Wright
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.

Cheers,
David.

___
lilypond-user mailing list
lilypond-user@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-user


Re: spacer rest *

2018-04-27 Thread Andrew Bernard
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 Lari  wrote:

>
> 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 *

2018-04-27 Thread Gianmaria Lari
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?

Thank you, g.
___
lilypond-user mailing list
lilypond-user@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-user


Re: spacer rest *

2018-04-27 Thread Andrew Bernard
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 Thread Thomas Morley
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 *

2018-04-27 Thread Martin Neubauer


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 *

2018-04-27 Thread 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.
___
lilypond-user mailing list
lilypond-user@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-user


Re: spacer rest *

2018-04-25 Thread Gianmaria Lari
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 Schmaus  wrote:

> 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 *

2018-04-25 Thread Robert Schmaus
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 *

2018-04-25 Thread David Kastrup
Gianmaria Lari  writes:

> 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 *

2018-04-25 Thread Malte Meyn



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 *

2018-04-25 Thread Aaron Hill

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