Re: Settings for automatic beam slope

2015-12-08 Thread Andrew Bernard
Hi David,

Thanks. That’s a very illuminating article from Mr Spreadbury.

I gather, then, that beam-quanting is the method used by lilypond to achieve 
the cardinal rule of Ross:

"The placement of a beam follows the cardinal rule that when it falls within 
the staff, its ends must either sit [on], hang [from], or straddle a staff 
line, whether the beam is single or multiple."

This article also, I believe, answers my very question, why my sets of eight 
sixteenths mostly come out flat beamed.

"The beam is also horizontal if the notes in the group are in a repeated 
pattern of pitches;…”

These written out early baroque ornaments are obviously the type of repeating 
group referred to, so it looks like lilypond honours this convention also. The 
attached code illustrates the flattened beams. It does however raise the 
question as to why the second group with stems down have a slope, unless my 
eyes deceive me.

Andrew

— snip

\version "2.19.33"

{
  \clef treble
  g'16[ f' g' f' g' f' e' d']
  \stemDown
  g'16[ f' g' f' g' f' e' d']

}

—  snip


On 8/12/2015, 17:25, "David Wright"  wrote:


I presume this is to do with Ross's Cardinal Rule; have a look at
http://blog.steinberg.net/2015/03/development-diary-part-10/#more-928


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


Re: Settings for automatic beam slope

2015-12-07 Thread David Wright
On Tue 08 Dec 2015 at 12:34:55 (+1100), Andrew Bernard wrote:
[...]
> On the same topic, I have come across references to beam-qaunting, with no
> explanation of what it is. Is this something to do with beams having to touch
> staff lines? What is it exactly? Is this what is causing the flat beams on
> clusters of 7-8-9 notes?

I presume this is to do with Ross's Cardinal Rule; have a look at
http://blog.steinberg.net/2015/03/development-diary-part-10/#more-928

Cheers,
David.

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


Re: Settings for automatic beam slope

2015-12-07 Thread Andrew Bernard
Hello All,

I have only recently begun setting some Early Baroque keyboard music (1592) and 
it is full to the brim of phrases which are ornaments, 8 sixteenths beamed 
together. This is very typical, and pervasive. Suddenly I am noticing that the 
majority of the beaming comes out flat.

I have followed this thread and also scoured the list archives on this topic. 
Although there is an argument that flatter is better in engraving, a large 
sample of scores that I look at when setting such music introduce a gentle 
slope. It does often look better in my opinion, and others in the list in the 
past also felt the same way, and the current discussion is another example.

So where are we up to with this? Is there case for an enhancement to lilypond 
that allows some sort of slope factor to be specified by the user, even if not 
strictly ‘correct’? What is correct in engraving is often a matter of style, 
taste, and tradition.

On the same topic, I have come across references to beam-qaunting, with no 
explanation of what it is. Is this something to do with beams having to touch 
staff lines? What is it exactly? Is this what is causing the flat beams on 
clusters of 7-8-9 notes?

I can provide my examples of excessively flat beams if requested.

Andrew


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


Re: Settings for automatic beam slope

2015-11-20 Thread Urs Liska
Hi Simon,

thank you for that, I think this is really helpful.

I think I see a pattern. This doesn't *completely* explain everything
but quite a lot.
Obviously the decision depends on whethere there are none, one or more
notes outside the staff (outside in this context beginning with the
notehead sitting *on* the outer staff line).

When there are no noteheads outside the staff the beam can be flat or
sloped. I think in many cases a slight slope would look better but
actually all the cases look acceptable to me.

In your example all instances with more than one note outside the staff
have sloped beams.
But all instances with exactly one note outside the staff have flat
beams. And this looks really ugly because that requires a quite
significant shift away from the staff of the beam.

On the other hand, if that single note would be sitting in the middle of
the group one would still want to have a flat beam. But in the cases of
your example (and my original music) it's nearly almost better to slope
such a beam when just one note is sitting outside the staff. It seems
some kind of penalty approach would be best here: If there's exactly one
note on the outermost stafffline or outside the staff then a sloped beam
should be a priority.

Urs

Am 20.11.2015 um 14:08 schrieb Simon Albrecht:
> \version "2.19.31"
> #(ly:set-option 'point-and-click #f)
> \layout {
>   \context {
> \Staff
> \omit TimeSignature
>   }
>   \context {
> \Score
> timing = ##f
>   }
> }
> gMajorScale = \relative { g a b c d e fis g }
>
> % change clef to test different positions on the staff
> global = { \clef treble }
>
> % take notes away from the end, except for the last note
> Ia = {
>   \bar "|"
>   b16[ d' b' g'  d' g' d'' b'  g' b' g'' d''] \bar "|"
>   b16[ d' b' g'  d' g' d'' b'  g' b' d''] \bar "|"
>   b16[ d' b' g'  d' g' d'' b'  g' d''] \bar "|"
>   b16[ d' b' g'  d' g' d'' b'  d''] \bar "|"
>   b16[ d' b' g'  d' g' d'' d''] \bar "|"
>   b16[ d' b' g'  d' g' d''] \bar "|"
>   b16[ d' b' g'  d' d''] \bar "|"
>   b16[ d' b' g'  d''] \bar "|"
>   b16[ d' b' d''] \bar "|"
>   b16[ d' d''] \bar "|"
>   b16[ d''] \bar "|"
> }
> Ib = \modalInversion b' b' \gMajorScale \Ia
> Ic = \retrograde \Ia
> Id = \retrograde \Ib
>
> % take notes away from the beginning, except for the first note
> IIa= {
>   \bar "|"
>   b16[ d' b' g'  d' g' d'' b'  g' b' g'' d''] \bar "|"
>   b16[ b' g'  d' g' d'' b'  g' b' g'' d''] \bar "|"
>   b16[ g'  d' g' d'' b'  g' b' g'' d''] \bar "|"
>   b16[ d' g' d'' b'  g' b' g'' d''] \bar "|"
>   b16[ g' d'' b'  g' b' g'' d''] \bar "|"
>   b16[ d'' b'  g' b' g'' d''] \bar "|"
>   b16[ b'  g' b' g'' d''] \bar "|"
>   b16[ g' b' g'' d''] \bar "|"
>   b16[ b' g'' d''] \bar "|"
>   b16[ g'' d''] \bar "|"
>   b16[ d''] \bar "|"
> }
> IIb = \modalInversion b' b' \gMajorScale \IIa
> IIc = \retrograde \IIa
> IId = \retrograde \IIb
>
> test =
> #(define-music-function (id) (string?)
>(let ((mus (ly:parser-lookup (string->symbol id
>  #{ \new Staff \with { instrumentName = $id } << \global $mus \\ $mus >> 
> #}))
>
> \bookpart {
>   \test Ia
>   \test Ib
>   \test Ic
>   \test Id
> }
>
> \bookpart {
>   \test IIa
>   \test IIb
>   \test IIc
>   \test IId
> }


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


Settings for automatic beam slope

2015-11-20 Thread Urs Liska
I have a question regarding beam slopes.

Consider the first of the attached images where the long beam is quite
ugly IMO. I would prefer to have the beam sloped similarly to the
shorter ones at the beginning at the example, something like shown in
the second attachment.
(Eventually it should look like the third attachment, but this can only
be achieved with my fix for the subdivided beams).

Of course I can achieve that easily with overriding Beam.positions but
a) I would like to have a global setting that makes LilyPond produce the
slope automatically and
b) I would like to know if LilyPond shouldn't produce a sloped beam by
default. Or is it an explicit decision to have that beam print
horizontally as in the first example?

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


Re: Settings for automatic beam slope

2015-11-20 Thread Andrew Bernard
Hi Urs,

Im my work I set almost every beam manually (fiddly and time consuming, but 
worthwhile).

Some useful functions I wrote:

setBeamPos =
#(define-music-function
  (left right)
  (number? number?)
  "Manually set beam position for next group."
  #{
\once \override Beam.positions = #(cons left right)
  #})

setBeamPosAll =
#(define-music-function
  (left right)
  (number? number?)
  "Manually set beam position for following groups."
  #{
\override Beam.positions = #(cons left right)
  #})

But how about the beam damping factor that can be set globally? Is that what 
you are seeking? Setting beam.damping globally as follows is useful for when 
you do actually want all flat beams, something I also need a lot:

\override Beam.damping = #+inf.0

I am not sure why your example is flat by default.

Andrew


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


Re: Settings for automatic beam slope

2015-11-20 Thread Urs Liska


Am 20.11.2015 um 12:19 schrieb Andrew Bernard:
> Hi Urs,
>
> Im my work I set almost every beam manually (fiddly and time
> consuming, but worthwhile).

Well, the usual discussion of automatic engraving. Of course we hope
that one day LilyPond will simply produce perfect output. But OTOH
"perfect" may be quite different things for different people ...

In the current case I don't have a serious problem with setting the beam
manually, but in general I prefer automatic solutions because setting
Beam.positions makes the music *completely* untransposable (or able to
use a different clef).

>
> Some useful functions I wrote:
>
> setBeamPos =
> #(define-music-function
>   (left right)
>   (number? number?)
>   "Manually set beam position for next group."
>   #{
> \once \override Beam.positions = #(cons left right)
>   #})
>
> setBeamPosAll =
> #(define-music-function
>   (left right)
>   (number? number?)
>   "Manually set beam position for following groups."
>   #{
> \override Beam.positions = #(cons left right)
>   #})
>

These are of course useful shorthands, but as said I want to understand
the default behaviour and automatic settings.

> But how about the beam damping factor that can be set globally? Is
> that what you are seeking? Setting beam.damping globally as follows is
> useful for when you do actually want all flat beams, something I also
> need a lot:
>
> \override Beam.damping = #+inf.0

This was what I tried first. But AFAICS this can only be used to make
steep beams flatter, not to make a completely horizontal beam steeper.

>
> I am not sure why your example is flat by default.

I *think* there's a general rule that flat beams are preferrable, but
somehow I have the impression that LilyPond falls back to horizontal
beams wheneve it doesn't manage to calculate a proper slope.

So that's part two of my question: Is that flat appearance intended, a
bug or simply a limitation of LilyPond's current automatic capabilities?

Urs

>
> Andrew
>
>
>
> ___
> 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: Settings for automatic beam slope

2015-11-20 Thread Simon Albrecht

Hello,

I made a test suite, which shows quite peculiar results:
– The problem typically appears with at least 7 (‘II’ series) or 9 (‘I’ 
series) notes under one beam, but sometimes also with 3 notes (ex. II 
and IIc)
– In each example, the problem occurs only for one of the voices. I 
couldn’t yet figure out the reason.


HTH, Simon

On 20.11.2015 10:40, Urs Liska wrote:

I have a question regarding beam slopes.

Consider the first of the attached images where the long beam is quite
ugly IMO. I would prefer to have the beam sloped similarly to the
shorter ones at the beginning at the example, something like shown in
the second attachment.
(Eventually it should look like the third attachment, but this can only
be achieved with my fix for the subdivided beams).

Of course I can achieve that easily with overriding Beam.positions but
a) I would like to have a global setting that makes LilyPond produce the
slope automatically and
b) I would like to know if LilyPond shouldn't produce a sloped beam by
default. Or is it an explicit decision to have that beam print
horizontally as in the first example?

Best
Urs


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


\version "2.19.31"
#(ly:set-option 'point-and-click #f)
\layout {
  \context {
\Staff
\omit TimeSignature
  }
  \context {
\Score
timing = ##f
  }
}
gMajorScale = \relative { g a b c d e fis g }

% change clef to test different positions on the staff
global = { \clef treble }

% take notes away from the end, except for the last note
Ia = {
  \bar "|"
  b16[ d' b' g'  d' g' d'' b'  g' b' g'' d''] \bar "|"
  b16[ d' b' g'  d' g' d'' b'  g' b' d''] \bar "|"
  b16[ d' b' g'  d' g' d'' b'  g' d''] \bar "|"
  b16[ d' b' g'  d' g' d'' b'  d''] \bar "|"
  b16[ d' b' g'  d' g' d'' d''] \bar "|"
  b16[ d' b' g'  d' g' d''] \bar "|"
  b16[ d' b' g'  d' d''] \bar "|"
  b16[ d' b' g'  d''] \bar "|"
  b16[ d' b' d''] \bar "|"
  b16[ d' d''] \bar "|"
  b16[ d''] \bar "|"
}
Ib = \modalInversion b' b' \gMajorScale \Ia
Ic = \retrograde \Ia
Id = \retrograde \Ib

% take notes away from the beginning, except for the first note
IIa= {
  \bar "|"
  b16[ d' b' g'  d' g' d'' b'  g' b' g'' d''] \bar "|"
  b16[ b' g'  d' g' d'' b'  g' b' g'' d''] \bar "|"
  b16[ g'  d' g' d'' b'  g' b' g'' d''] \bar "|"
  b16[ d' g' d'' b'  g' b' g'' d''] \bar "|"
  b16[ g' d'' b'  g' b' g'' d''] \bar "|"
  b16[ d'' b'  g' b' g'' d''] \bar "|"
  b16[ b'  g' b' g'' d''] \bar "|"
  b16[ g' b' g'' d''] \bar "|"
  b16[ b' g'' d''] \bar "|"
  b16[ g'' d''] \bar "|"
  b16[ d''] \bar "|"
}
IIb = \modalInversion b' b' \gMajorScale \IIa
IIc = \retrograde \IIa
IId = \retrograde \IIb

test =
#(define-music-function (id) (string?)
   (let ((mus (ly:parser-lookup (string->symbol id
 #{ \new Staff \with { instrumentName = $id } << \global $mus \\ $mus >> #}))

\bookpart {
  \test Ia
  \test Ib
  \test Ic
  \test Id
}

\bookpart {
  \test IIa
  \test IIb
  \test IIc
  \test IId
}

complex-beam-slope-calc.pdf
Description: Adobe PDF document
___
lilypond-user mailing list
lilypond-user@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-user