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