diff options
author | Jean-Charles Malahieude <lilyfan@orange.fr> | 2016-01-01 10:26:56 +0100 |
---|---|---|
committer | Jean-Charles Malahieude <lilyfan@orange.fr> | 2016-01-01 10:26:56 +0100 |
commit | 08c1ead90d9f49e66ce54208639fb9ef48ca52a6 (patch) | |
tree | 3e6c4ae02d5d764ca1cf8dd6faea1a8e7d06d287 | |
parent | 5a35d69b229d7718de9e89f0bf080a61e7826336 (diff) | |
parent | 1fe6b1ea5f6128257a94ae065e6ce30b7dd868a5 (diff) |
Merge branch 'master' into translation
57 files changed, 454 insertions, 177 deletions
diff --git a/Documentation/ja/notation/input.itely b/Documentation/ja/notation/input.itely index dfd4584bdd..c7429f51f8 100644 --- a/Documentation/ja/notation/input.itely +++ b/Documentation/ja/notation/input.itely @@ -1015,7 +1015,7 @@ scoreTitleMarkup = \markup @{ \column @{ { s1 } \header { piece = "RONDEAU" - composer = "François Couperin" + composer = "François Couperin" } } } diff --git a/Documentation/snippets/adding-drum-parts.ly b/Documentation/snippets/adding-drum-parts.ly index 168e82e65b..7ce432bcfc 100644 --- a/Documentation/snippets/adding-drum-parts.ly +++ b/Documentation/snippets/adding-drum-parts.ly @@ -21,9 +21,18 @@ lines is possible. doctitle = "Adding drum parts" } % begin verbatim -drh = \drummode { cymc4.^"crash" hhc16^"h.h." hh hhc8 hho hhc8 hh16 hh hhc4 r4 r2 } -drl = \drummode { bd4 sn8 bd bd4 << bd ss >> bd8 tommh tommh bd toml toml bd tomfh16 tomfh } -timb = \drummode { timh4 ssh timl8 ssh r timh r4 ssh8 timl r4 cb8 cb } +drh = \drummode { + cymc4.^"crash" hhc16^"h.h." hh hhc8 hho hhc8 hh16 hh + hhc4 r4 r2 + } +drl = \drummode { + bd4 sn8 bd bd4 << bd ss >> + bd8 tommh tommh bd toml toml bd tomfh16 tomfh + } +timb = \drummode { + timh4 ssh timl8 ssh r timh r4 + ssh8 timl r4 cb8 cb + } \score { << diff --git a/Documentation/snippets/adding-links-to-objects.ly b/Documentation/snippets/adding-links-to-objects.ly index 16e00b927e..16db39cfc1 100644 --- a/Documentation/snippets/adding-links-to-objects.ly +++ b/Documentation/snippets/adding-links-to-objects.ly @@ -22,10 +22,6 @@ The linked objects are colored with a separate command. doctitle = "Adding links to objects" } % begin verbatim -% Code by Thomas Morley -% Contributed by harm6 -% Tested with 2.14.2 up to 2.17.9 - #(define (add-link url-strg) (lambda (grob) (let* ((stil (ly:grob-property grob 'stencil))) @@ -35,7 +31,8 @@ The linked objects are colored with a separate command. (x-ext (ly:stencil-extent stil X)) (y-ext (ly:stencil-extent stil Y)) (url-expr (list 'url-link url-strg `(quote ,x-ext) `(quote ,y-ext))) - (new-stil (ly:stencil-add (ly:make-stencil url-expr x-ext y-ext) stil))) + (new-stil (ly:stencil-add + (ly:make-stencil url-expr x-ext y-ext) stil))) (ly:grob-set-property! grob 'stencil new-stil))) #f)))) diff --git a/Documentation/snippets/adjusting-lyrics-vertical-spacing.ly b/Documentation/snippets/adjusting-lyrics-vertical-spacing.ly index 77f626113a..472e089ef5 100644 --- a/Documentation/snippets/adjusting-lyrics-vertical-spacing.ly +++ b/Documentation/snippets/adjusting-lyrics-vertical-spacing.ly @@ -34,7 +34,8 @@ This snippet shows how to bring the lyrics line closer to the staff. } % Reducing the minimum space below the staff and above the lyrics: \new Lyrics \with { - \override VerticalAxisGroup.nonstaff-relatedstaff-spacing = #'((basic-distance . 1)) + \override VerticalAxisGroup.nonstaff-relatedstaff-spacing = + #'((basic-distance . 1)) } \lyricsto melody { aa aa aa aa aa aa aa aa aa } >> diff --git a/Documentation/snippets/ancient-fonts.ly b/Documentation/snippets/ancient-fonts.ly index be2ee37a23..70537f2681 100644 --- a/Documentation/snippets/ancient-fonts.ly +++ b/Documentation/snippets/ancient-fonts.ly @@ -10,8 +10,8 @@ lsrtags = "ancient-notation, symbols-and-glyphs" texidoc = " -Shown here are many (all?) of the symbols that are included in -LilyPond's support for ancient notation. +Shown here are many of the symbols that are included in LilyPond's +ancient notation. " doctitle = "Ancient fonts" @@ -57,8 +57,10 @@ upperStaff = \new VaticanaStaff = "upperStaff" << \override NoteHead.style = #'vaticana.cephalicus es f - \override Staff.KeySignature.glyph-name-alist = #alteration-medicaea-glyph-name-alist - \override Staff.Accidental.glyph-name-alist = #alteration-medicaea-glyph-name-alist + \override Staff.KeySignature.glyph-name-alist = + #alteration-medicaea-glyph-name-alist + \override Staff.Accidental.glyph-name-alist = + #alteration-medicaea-glyph-name-alist \override Staff.Custos.style = #'medicaea \override NoteHead.style = #'medicaea.punctum \clef "medicaea-fa2" @@ -78,8 +80,10 @@ upperStaff = \new VaticanaStaff = "upperStaff" << \override NoteHead.style = #'medicaea.rvirga e des ces - \override Staff.KeySignature.glyph-name-alist = #alteration-hufnagel-glyph-name-alist - \override Staff.Accidental.glyph-name-alist = #alteration-hufnagel-glyph-name-alist + \override Staff.KeySignature.glyph-name-alist = + #alteration-hufnagel-glyph-name-alist + \override Staff.Accidental.glyph-name-alist = + #alteration-hufnagel-glyph-name-alist \override Staff.Custos.style = #'hufnagel \override NoteHead.style = #'hufnagel.punctum \clef "hufnagel-fa2" @@ -184,7 +188,6 @@ lowerStaff = \new MensuralStaff = "lowerStaff" << >> \layout { indent = 0.0 - line-width = 17.25\cm \context { \Score timing = ##f @@ -199,14 +202,16 @@ lowerStaff = \new MensuralStaff = "lowerStaff" << \context { \MensuralStaff \revert BarLine.transparent - \override KeySignature.glyph-name-alist = #alteration-mensural-glyph-name-alist + \override KeySignature.glyph-name-alist = + #alteration-mensural-glyph-name-alist clefGlyph = #"clefs.petrucci.c2" } \context { \VaticanaStaff \revert BarLine.transparent \override StaffSymbol.thickness = #2.0 - \override KeySignature.glyph-name-alist = #alteration-vaticana-glyph-name-alist + \override KeySignature.glyph-name-alist = + #alteration-vaticana-glyph-name-alist \override Custos.neutral-position = #4 } } diff --git a/Documentation/snippets/bar-chords-notation-for-guitar-with-text-spanner.ly b/Documentation/snippets/bar-chords-notation-for-guitar-with-text-spanner.ly index 9a8b950cda..d0028da2a8 100644 --- a/Documentation/snippets/bar-chords-notation-for-guitar-with-text-spanner.ly +++ b/Documentation/snippets/bar-chords-notation-for-guitar-with-text-spanner.ly @@ -62,8 +62,8 @@ bbarre = (padding . 0.25) (attach-dir . 2))) %% uncomment this line for make full barred - % \once \override TextSpanner.bound-details.left.text = \markup { "B" #str } - $music + % \once \override TextSpanner.bound-details.left.text = \markup{"B" #str} + $music #}) %% %%%%%%% Cut here ----- End 'bbarred.ly' diff --git a/Documentation/snippets/breathing-signs.ly b/Documentation/snippets/breathing-signs.ly index b4583bd4d9..f19e650a3c 100644 --- a/Documentation/snippets/breathing-signs.ly +++ b/Documentation/snippets/breathing-signs.ly @@ -29,7 +29,8 @@ ticks, vees and @qq{railroad tracks} (caesura). % rvarcomma and lvarcomma are variations of the default rcomma and lcomma % N.B.: must use Staff context here, since we start a Voice below - \override Staff.BreathingSign.text = \markup { \musicglyph #"scripts.rvarcomma" } + \override Staff.BreathingSign.text = + \markup { \musicglyph #"scripts.rvarcomma" } << { g4 as g } \\ { es4 \breathe bes es } >> | % vee @@ -37,7 +38,8 @@ ticks, vees and @qq{railroad tracks} (caesura). es8[ d es f g] \breathe f | % caesura - \override BreathingSign.text = \markup { \musicglyph #"scripts.caesura.curved" } + \override BreathingSign.text = + \markup { \musicglyph #"scripts.caesura.curved" } es8[ d] \breathe es[ f g f] | es2 r4 \bar "||" } diff --git a/Documentation/snippets/center-text-below-hairpin-dynamics.ly b/Documentation/snippets/center-text-below-hairpin-dynamics.ly index 2d08a1607e..1791b38b79 100644 --- a/Documentation/snippets/center-text-below-hairpin-dynamics.ly +++ b/Documentation/snippets/center-text-below-hairpin-dynamics.ly @@ -34,12 +34,15 @@ hairpinWithCenteredText = (ly:stencil-combine-at-edge (ly:stencil-aligned-to stencil X CENTER) Y dir - (ly:stencil-aligned-to (grob-interpret-markup grob text) X CENTER)) + (ly:stencil-aligned-to + (grob-interpret-markup grob text) X CENTER)) X LEFT)) - (staff-space (ly:output-def-lookup (ly:grob-layout grob) 'staff-space)) + (staff-space (ly:output-def-lookup + (ly:grob-layout grob) 'staff-space)) (staff-line-thickness (ly:output-def-lookup (ly:grob-layout grob) 'line-thickness)) - (grob-name (lambda (x) (assq-ref (ly:grob-property x 'meta) 'name))) + (grob-name (lambda (x) (assq-ref + (ly:grob-property x 'meta) 'name))) (par-x (ly:grob-parent grob X)) (dyn-text (eq? (grob-name par-x) 'DynamicText )) (dyn-text-stencil-x-length diff --git a/Documentation/snippets/changing-a-single-notes-size-in-a-chord.ly b/Documentation/snippets/changing-a-single-notes-size-in-a-chord.ly index 059eccdc17..869d6b5f98 100644 --- a/Documentation/snippets/changing-a-single-notes-size-in-a-chord.ly +++ b/Documentation/snippets/changing-a-single-notes-size-in-a-chord.ly @@ -27,5 +27,7 @@ note head). } % begin verbatim \relative c' { - <\tweak font-size #+2 c e g c \tweak font-size #-2 e>1^\markup { A tiny e }_\markup { A big c } + <\tweak font-size #+2 c e g c + \tweak font-size #-2 e>1 + ^\markup { A tiny e }_\markup { A big c } } diff --git a/Documentation/snippets/changing-stanza-fonts.ly b/Documentation/snippets/changing-stanza-fonts.ly index 3c0beb9ac2..cc468d72ce 100644 --- a/Documentation/snippets/changing-stanza-fonts.ly +++ b/Documentation/snippets/changing-stanza-fonts.ly @@ -18,13 +18,13 @@ used for printing the stanza number. doctitle = "Changing stanza fonts" } % begin verbatim + \new Voice { \time 3/4 g2 e4 a2 f4 g2. -} % begin verbatim - +} \addlyrics { \set stanza = #"1. " Hi, my name is Bert. diff --git a/Documentation/snippets/changing-the-default-text-font-family.ly b/Documentation/snippets/changing-the-default-text-font-family.ly index 125f0dd1db..99e80cd7e2 100644 --- a/Documentation/snippets/changing-the-default-text-font-family.ly +++ b/Documentation/snippets/changing-the-default-text-font-family.ly @@ -18,6 +18,7 @@ The default font families for text can be overridden with doctitle = "Changing the default text font family" } % begin verbatim + \paper { % change for other default global staff size. myStaffSize = #20 @@ -25,8 +26,7 @@ The default font families for text can be overridden with run lilypond -dshow-available-fonts blabla to show all fonts available in the process log. - %} % begin verbatim - + %} #(define fonts (make-pango-font-tree "Times New Roman" diff --git a/Documentation/snippets/chord-glissando-in-tablature.ly b/Documentation/snippets/chord-glissando-in-tablature.ly index 540c6e8a75..9b61674539 100644 --- a/Documentation/snippets/chord-glissando-in-tablature.ly +++ b/Documentation/snippets/chord-glissando-in-tablature.ly @@ -18,7 +18,6 @@ single notes. " doctitle = "Chord glissando in tablature" } % begin verbatim -%=> http://lilypond.1069038.n5.nabble.com/LSR-chord-glissando-in-tablature-obsolete-tc159863.html myMusic = \relative c' { <c e g>1 \glissando <f a c> diff --git a/Documentation/snippets/displaying-a-whole-grandstaff-system-if-only-one-of-its-staves-is-alive.ly b/Documentation/snippets/displaying-a-whole-grandstaff-system-if-only-one-of-its-staves-is-alive.ly index 60a68c3a13..72aa7ec0ae 100644 --- a/Documentation/snippets/displaying-a-whole-grandstaff-system-if-only-one-of-its-staves-is-alive.ly +++ b/Documentation/snippets/displaying-a-whole-grandstaff-system-if-only-one-of-its-staves-is-alive.ly @@ -67,6 +67,8 @@ the second violin is also displayed. >> } \layout { + indent = 3.0\cm + short-indent = 1.5\cm \context { \GrandStaff \consists Keep_alive_together_engraver diff --git a/Documentation/snippets/extending-a-trillspanner.ly b/Documentation/snippets/extending-a-trillspanner.ly index 9c1a2a4866..af3abd0ade 100644 --- a/Documentation/snippets/extending-a-trillspanner.ly +++ b/Documentation/snippets/extending-a-trillspanner.ly @@ -19,10 +19,6 @@ set to @code{ly:spanner::set-spacing-rods}. doctitle = "Extending a TrillSpanner" } % begin verbatim -%=> http://lilypond-french-users.1298960.n2.nabble.com/Allonger-un-trille-td7581110.html - -%by P.P.Schneider on April 2014 - \relative c' { \key c\minor \time 2/4 diff --git a/Documentation/snippets/forcing-rehearsal-marks-to-start-from-a-given-letter-or-number.ly b/Documentation/snippets/forcing-rehearsal-marks-to-start-from-a-given-letter-or-number.ly index fa1ea91899..5551a36b1c 100644 --- a/Documentation/snippets/forcing-rehearsal-marks-to-start-from-a-given-letter-or-number.ly +++ b/Documentation/snippets/forcing-rehearsal-marks-to-start-from-a-given-letter-or-number.ly @@ -25,7 +25,7 @@ marks, but from the letter or number desired. c1 \mark \default c1 \mark \default c1 \mark \default - c1 \mark \default + c1 \break \set Score.markFormatter = #format-mark-numbers c1 \mark #1 @@ -36,5 +36,5 @@ marks, but from the letter or number desired. c1 \mark \default c1 \mark \default c1 \mark \default - c1 \mark \default + c1 } diff --git a/Documentation/snippets/generating-custom-flags.ly b/Documentation/snippets/generating-custom-flags.ly index a1121ae24c..3ba7022e5b 100644 --- a/Documentation/snippets/generating-custom-flags.ly +++ b/Documentation/snippets/generating-custom-flags.ly @@ -45,7 +45,10 @@ custom scheme function to generate the glyph for the flag. (rotated-flag (ly:stencil-rotate-absolute stencil 180 0 0))) (ly:stencil-translate rotated-flag (cons (- (/ stem-width 2)) 0)))) -snippetexamplenotes = { \autoBeamOff c'8 d'16 c'32 d'64 \acciaccatura {c'8} d'64 } +snippetexamplenotes = +{ + \autoBeamOff c'8 d'16 c'32 d'64 \acciaccatura {c'8} d'64 +} { \override Score.RehearsalMark.self-alignment-X = #LEFT diff --git a/Documentation/snippets/horizontally-aligning-custom-dynamics-e.g.-sempre-pp,-piu-f,-subito-p.ly b/Documentation/snippets/horizontally-aligning-custom-dynamics-e.g.-sempre-pp,-piu-f,-subito-p.ly index fb0629e36a..5e43ce5333 100644 --- a/Documentation/snippets/horizontally-aligning-custom-dynamics-e.g.-sempre-pp,-piu-f,-subito-p.ly +++ b/Documentation/snippets/horizontally-aligning-custom-dynamics-e.g.-sempre-pp,-piu-f,-subito-p.ly @@ -54,9 +54,10 @@ not at the center of pp. doctitle = "Horizontally aligning custom dynamics (e.g. \"sempre pp\" \"piu f\" \"subito p\")" } % begin verbatim -\header { title = "Horizontally aligning custom dynamics" } - -\paper { ragged-right = ##f } +\paper { + ragged-right = ##f + indent = 2.5\cm +} % Solution 1: Using a simple markup with a particular halign value % Drawback: It's a markup, not a dynamic command, so \dynamicDown @@ -123,6 +124,7 @@ semppMII = \context Staff = "s" << \set Staff.instrumentName = #"Normal" \relative c'' { + \override Staff.InstrumentName.self-alignment-X = #LEFT \key es \major c4\pp c\p c c | c\ff c c\pp c } @@ -130,6 +132,7 @@ semppMII = \context Staff = "sMarkup" << \set Staff.instrumentName = \markup \column { Normal markup } \relative c'' { + \override Staff.InstrumentName.self-alignment-X = #LEFT \key es \major c4-\semppMarkup c\p c c | c\ff c c-\semppMarkup c } @@ -137,6 +140,7 @@ semppMII = \context Staff = "sK" << \set Staff.instrumentName = \markup \column { Explicit shifting } \relative c'' { + \override Staff.InstrumentName.self-alignment-X = #LEFT \key es \major \once \override DynamicText.X-offset = #-9.2 c4\semppK c\p c c @@ -148,6 +152,7 @@ semppMII = \context Staff = "sT" << \set Staff.instrumentName = \markup \column { Right padding } \relative c'' { + \override Staff.InstrumentName.self-alignment-X = #LEFT \key es \major c4\semppT c\p c c | c\ff c c\semppT c } @@ -155,6 +160,7 @@ semppMII = \context Staff = "sM" << \set Staff.instrumentName = \markup \column { Setting dimension "to zero" } \relative c'' { + \override Staff.InstrumentName.self-alignment-X = #LEFT \key es \major c4\semppM c\p c c | c\ff c c\semppM c } @@ -162,6 +168,7 @@ semppMII = \context Staff = "sG" << \set Staff.instrumentName = \markup \column { Shifting inside dynamics } \relative c'' { + \override Staff.InstrumentName.self-alignment-X = #LEFT \key es \major c4\semppG c\p c c | c\ff c c\semppG c } @@ -169,6 +176,7 @@ semppMII = \context Staff = "sMII" << \set Staff.instrumentName = \markup \column { Alignment inside dynamics } \relative c'' { + \override Staff.InstrumentName.self-alignment-X = #LEFT \key es \major % Setting to ##f (false) gives the same result \override DynamicText.X-offset = #0 diff --git a/Documentation/snippets/jazz-combo-template.ly b/Documentation/snippets/jazz-combo-template.ly index 5034025426..9d0dc82fc3 100644 --- a/Documentation/snippets/jazz-combo-template.ly +++ b/Documentation/snippets/jazz-combo-template.ly @@ -32,7 +32,10 @@ music is within a @code{\\transpose} section. } } } - +% To make the example display in the documentation +\paper { + paper-width = 130 +} %#(set-global-staff-size 16) \include "english.ly" diff --git a/Documentation/snippets/mensurstriche-layout-bar-lines-between-the-staves.ly b/Documentation/snippets/mensurstriche-layout-bar-lines-between-the-staves.ly index 0d19ecff49..88638a0c62 100644 --- a/Documentation/snippets/mensurstriche-layout-bar-lines-between-the-staves.ly +++ b/Documentation/snippets/mensurstriche-layout-bar-lines-between-the-staves.ly @@ -12,8 +12,8 @@ texidoc = " The mensurstriche-layout where the bar lines do not show on the staves but between staves can be achieved with a @code{StaffGroup} instead of -a @code{ChoirStaff}. The bar line on staves is blanked out by setting -the @code{transparent} property. +a @code{ChoirStaff}. The bar line on staves is blanked out using +@code{\\hide}. " doctitle = "Mensurstriche layout (bar lines between the staves)" diff --git a/Documentation/snippets/new/changing-stanza-fonts.ly b/Documentation/snippets/new/changing-stanza-fonts.ly index 3988ec6a95..65f54fed92 100644 --- a/Documentation/snippets/new/changing-stanza-fonts.ly +++ b/Documentation/snippets/new/changing-stanza-fonts.ly @@ -9,7 +9,7 @@ used for printing the stanza number. " doctitle = "Changing stanza fonts" -} % begin verbatim +} \new Voice { \time 3/4 diff --git a/Documentation/snippets/new/changing-the-default-text-font-family.ly b/Documentation/snippets/new/changing-the-default-text-font-family.ly index b4ab595995..7db90d3d19 100644 --- a/Documentation/snippets/new/changing-the-default-text-font-family.ly +++ b/Documentation/snippets/new/changing-the-default-text-font-family.ly @@ -9,7 +9,7 @@ The default font families for text can be overridden with " doctitle = "Changing the default text font family" -} % begin verbatim +} \paper { % change for other default global staff size. diff --git a/Documentation/snippets/new/printing-bar-numbers-with-changing-regular-intervals.ly b/Documentation/snippets/new/printing-bar-numbers-with-changing-regular-intervals.ly deleted file mode 100644 index e15ba70f11..0000000000 --- a/Documentation/snippets/new/printing-bar-numbers-with-changing-regular-intervals.ly +++ /dev/null @@ -1,21 +0,0 @@ -\version "2.18.0" - -\header { - lsrtags = "rhythms, text" - - texidoc = " -The bar number interval can be changed by changing the context function -@code{set-bar-number-visibility}. - -" - doctitle = "Printing bar numbers with changing, regular intervals" -} % begin verbatim - - -\relative c' { - \override Score.BarNumber.break-visibility = #end-of-line-invisible - \context Score \applyContext #(set-bar-number-visibility 4) - \repeat unfold 10 c''1 - \context Score \applyContext #(set-bar-number-visibility 2) - \repeat unfold 10 c'' -} diff --git a/Documentation/snippets/new/rest-styles.ly b/Documentation/snippets/new/rest-styles.ly index ddcf547b15..e5ba472bd4 100644 --- a/Documentation/snippets/new/rest-styles.ly +++ b/Documentation/snippets/new/rest-styles.ly @@ -7,17 +7,10 @@ Rests may be used in various styles. " doctitle = "Rest styles" -} % begin verbatim - -\layout { - indent = 0 - \context { - \Staff - \remove "Time_signature_engraver" - } } \new Staff \relative c { + \omit Score.TimeSignature \cadenzaOn \override Staff.Rest.style = #'mensural diff --git a/Documentation/snippets/new/subdividing-beams.ly b/Documentation/snippets/new/subdividing-beams.ly new file mode 100644 index 0000000000..94cdccf724 --- /dev/null +++ b/Documentation/snippets/new/subdividing-beams.ly @@ -0,0 +1,54 @@ +\version "2.19.34" + +\header { + lsrtags = "rhythms" + + texidoc = " +The beams of consecutive 16th (or shorter) notes are, by default, not +subdivided. That is, the three (or more) beams stretch unbroken over +entire groups of notes. This behavior can be modified to subdivide the +beams into sub-groups by setting the property @code{subdivideBeams}. +When set, multiple beams will be subdivided at intervals defined by the +current value of @code{baseMoment} by reducing the multiple beams to +the number of beams that indicates the metric value of the subdivision. +If the group following the division is shorter than the current metric +value (usually because the beam is incomplete) the number of beams +reflects the longest possible subdivision group. However, if there is +only one note left after the division this restriction isn't applied. +Note that @code{baseMoment} defaults to one over the denominator of the +current time signature if not set explicitly. It must be set to a +fraction giving the duration of the beam sub-group using the +@code{ly:make-moment} function, as shown in this snippet. Also, when +@code{baseMoment} is changed, @code{beatStructure} should also be +changed to match the new @code{baseMoment}: + +" + doctitle = "Subdividing beams" +} + +\relative c'' { + c32[ c c c c c c c] + \set subdivideBeams = ##t + c32[ c c c c c c c] + + % Set beam sub-group length to an eighth note + \set baseMoment = #(ly:make-moment 1/8) + \set beatStructure = #'(2 2 2 2) + c32[ c c c c c c c] + + % Set beam sub-group length to a sixteenth note + \set baseMoment = #(ly:make-moment 1/16) + \set beatStructure = #'(4 4 4 4) + c32[ c c c c c c c] + + % Shorten beam by 1/32 + \set baseMoment = #(ly:make-moment 1/8) + \set beatStructure = #'(2 2 2 2) + c32[ c c c c c c] r32 + + % Shorten beam by 3/32 + \set baseMoment = #(ly:make-moment 1/8) + \set beatStructure = #'(2 2 2 2) + c32[ c c c c] r16. + r2 +} diff --git a/Documentation/snippets/percussion-beaters.ly b/Documentation/snippets/percussion-beaters.ly index e7d22ebef2..08f56f301b 100644 --- a/Documentation/snippets/percussion-beaters.ly +++ b/Documentation/snippets/percussion-beaters.ly @@ -85,7 +85,9 @@ stick = \markup { 7.5332399 200.42458 7.6444521 200.59122 7.6422017 200.76488 curveto closepath clip - gsave [0.052859054 0.063089841 -0.020912282 0.017521108 5.7334261 189.76443] concat + gsave [ + 0.052859054 0.063089841 -0.020912282 0.017521108 5.7334261 189.76443 + ] concat shfill grestore grestore @@ -134,7 +136,9 @@ stick = \markup { 5.1631598 202.49149 5.2743721 202.65813 5.2721217 202.83181 curveto closepath clip - gsave [0.052859054 0.063089841 -0.020912282 0.017521108 3.363346 191.83136] concat + gsave [ + 0.052859054 0.063089841 -0.020912282 0.017521108 3.363346 191.83136 + ] concat shfill grestore grestore diff --git a/Documentation/snippets/positioning-fingering-indications-precisely.ly b/Documentation/snippets/positioning-fingering-indications-precisely.ly index 8812a067af..7ffa0f16e0 100644 --- a/Documentation/snippets/positioning-fingering-indications-precisely.ly +++ b/Documentation/snippets/positioning-fingering-indications-precisely.ly @@ -26,11 +26,14 @@ involved. <c-1 d-\tweak extra-offset #'(0 . 0.2)-2 a'-5>4 \set fingeringOrientations = #'(down) <c-1 d-2 a'-5>4 - <c-\tweak extra-offset #'(0 . -1.1)-1 d-\tweak extra-offset #'(-1.2 . -1.8)-2 a'-5>4 + <c-\tweak extra-offset #'(0 . -1.1)-1 + d-\tweak extra-offset #'(-1.2 . -1.8)-2 a'-5>4 \set fingeringOrientations = #'(down right up) <c-1 d-\tweak extra-offset #'(-0.3 . 0)-2 a'-5>4 <c-1 d-\tweak extra-offset #'(-1 . 1.2)-2 a'-5>4 \set fingeringOrientations = #'(up) - <c-1 d-\tweak extra-offset #'(0 . 1.1)-2 a'-\tweak extra-offset #'(0 . 1)-5>4 - <c-1 d-\tweak extra-offset #'(-1.2 . 1.5)-2 a'-\tweak extra-offset #'(0 . 1.4)-5>4 + <c-1 d-\tweak extra-offset #'(0 . 1.1)-2 + a'-\tweak extra-offset #'(0 . 1)-5>4 + <c-1 d-\tweak extra-offset #'(-1.2 . 1.5)-2 + a'-\tweak extra-offset #'(0 . 1.4)-5>4 } diff --git a/Documentation/snippets/positioning-segno-and-coda-with-line-break.ly b/Documentation/snippets/positioning-segno-and-coda-with-line-break.ly index 9444c97a14..80cc874efd 100644 --- a/Documentation/snippets/positioning-segno-and-coda-with-line-break.ly +++ b/Documentation/snippets/positioning-segno-and-coda-with-line-break.ly @@ -51,12 +51,14 @@ line. \bar "||" % Set segno sign as rehearsal mark and adjust size if needed - \once \override Score.RehearsalMark.break-visibility = #begin-of-line-invisible + \once \override Score.RehearsalMark.break-visibility = + #begin-of-line-invisible % \once \override Score.RehearsalMark.font-size = #3 \mark \markup { \musicglyph #"scripts.segno" } % Here begins the trickery! - % \cadenzaOn will suppress the bar count and \stopStaff removes the staff lines. + % \cadenzaOn will suppress the bar count + % and \stopStaff removes the staff lines. \cadenzaOn \stopStaff % Some examples of possible text-displays @@ -75,14 +77,19 @@ line. % text and symbols center-aligned % =============================== - % Move text to the desired position and tweak spacing for optimum text alignment + % Move text to the desired position + % and tweak spacing for optimum text alignment \repeat unfold 1 { s1 \bar "" } \once \override TextScript.extra-offset = #'( 0 . -3.0 ) \once \override TextScript.word-space = #1.5 - <>^\markup { \center-column { "D.S. al Coda" \line { \musicglyph #"scripts.coda" \musicglyph #"scripts.tenuto" \musicglyph #"scripts.coda"} } } + <>^\markup { \center-column { "D.S. al Coda" + \line { + \musicglyph #"scripts.coda" + \musicglyph #"scripts.tenuto" + \musicglyph #"scripts.coda"} } } % Increasing the unfold counter will expand the staff-free space \repeat unfold 3 { @@ -104,7 +111,8 @@ line. % Set coda sign as rehearsal mark and adjust size and position - % Put the coda sign ontop of the (treble-)clef dependend on coda's line-position + % Put the coda sign on top of the (treble-)clef + % depending on coda's line-position % Coda NOT on new line, use this: % \once \override Score.RehearsalMark.extra-offset = #'( -2 . 1.75 ) diff --git a/Documentation/snippets/printing-bar-numbers-with-changing-regular-intervals.ly b/Documentation/snippets/printing-bar-numbers-with-changing-regular-intervals.ly index 62c65c418c..a78462a87b 100644 --- a/Documentation/snippets/printing-bar-numbers-with-changing-regular-intervals.ly +++ b/Documentation/snippets/printing-bar-numbers-with-changing-regular-intervals.ly @@ -1,10 +1,9 @@ -% DO NOT EDIT this file manually; it is automatically -% generated from Documentation/snippets/new -% Make any changes in Documentation/snippets/new/ -% and then run scripts/auxiliar/makelsr.py -% -% This file is in the public domain. -%% Note: this file works from version 2.18.0 +%% DO NOT EDIT this file manually; it is automatically +%% generated from LSR http://lsr.di.unimi.it +%% Make any changes in LSR itself, or in Documentation/snippets/new/ , +%% and then run scripts/auxiliar/makelsr.py +%% +%% This file is in the public domain. \version "2.18.0" \header { @@ -12,17 +11,16 @@ texidoc = " The bar number interval can be changed by changing the context function -@code{set-bar-number-visibility}. +@code{@{set-bar-number-visibility@}}. " doctitle = "Printing bar numbers with changing regular intervals" } % begin verbatim - \relative c' { \override Score.BarNumber.break-visibility = #end-of-line-invisible \context Score \applyContext #(set-bar-number-visibility 4) - \repeat unfold 10 c''1 + \repeat unfold 10 c'1 \context Score \applyContext #(set-bar-number-visibility 2) - \repeat unfold 10 c'' -} % begin verbatim + \repeat unfold 10 c +} diff --git a/Documentation/snippets/removing-brace-on-first-line-of-piano-score.ly b/Documentation/snippets/removing-brace-on-first-line-of-piano-score.ly index 0d8327313b..12c0c57520 100644 --- a/Documentation/snippets/removing-brace-on-first-line-of-piano-score.ly +++ b/Documentation/snippets/removing-brace-on-first-line-of-piano-score.ly @@ -19,7 +19,7 @@ It uses @code{\\alterBroken}. " doctitle = "Removing brace on first line of piano score" } % begin verbatim -% => http://lilypond.1069038.n5.nabble.com/Getting-rid-of-initial-brace-on-piano-score-td161158.html + someMusic = { \once \override Staff.Clef.stencil = ##f \once \override Staff.TimeSignature.stencil = ##f diff --git a/Documentation/snippets/rest-styles.ly b/Documentation/snippets/rest-styles.ly index ebf8d91ffa..dc6645b4b1 100644 --- a/Documentation/snippets/rest-styles.ly +++ b/Documentation/snippets/rest-styles.ly @@ -16,16 +16,9 @@ Rests may be used in various styles. doctitle = "Rest styles" } % begin verbatim -\layout { - indent = 0 - \context { - \Staff - \remove "Time_signature_engraver" - } % begin verbatim - -} \new Staff \relative c { + \omit Score.TimeSignature \cadenzaOn \override Staff.Rest.style = #'mensural diff --git a/Documentation/snippets/score-for-diatonic-accordion.ly b/Documentation/snippets/score-for-diatonic-accordion.ly index badba96463..fddf7c230b 100644 --- a/Documentation/snippets/score-for-diatonic-accordion.ly +++ b/Documentation/snippets/score-for-diatonic-accordion.ly @@ -75,7 +75,8 @@ staffTabLine = \new Staff \with { \remove "Clef_engraver" } { \override Staff.StaffSymbol.line-positions = #'(0) - % Shows one horizontal line. The vertical line (simulating a bar-line) is simulated with a gridline + % Shows one horizontal line. The vertical line + % (simulating a bar-line) is simulated with a gridline \set Staff.midiInstrument = #"choir aahs" \key c \major \relative c'' @@ -90,7 +91,8 @@ staffTabLine = \new Staff \with { % 2. uncomment the line \NoNoteHead % 3. compile % 4. Mark the positions on which push/pull changes. - % In the score-picture click on the position the push- or pull-part starts + % In the score-picture click on the position + % the push- or pull-part starts % (on the noteHead, the cursor will change to a hand-icon). % The cursor in the source code will jump just at this position. % a) If a push-part starts there, replace the 'c' by an 'e[' @@ -99,7 +101,8 @@ staffTabLine = \new Staff \with { % 6. For the pull-parts overwrite the 'c' with 's' % 7. For every push-part replace the last 'c' with 'e]' % 8. Switch into 'insert-mode' again - % 9. At last it should look lik e.g. (s s e[ c | c c c c c c c c | c c c c c c e] s s) + % 9. At last it should look like e.g. + % (s s e[ c | c c c c c c c c | c c c c c c e] s s) % 10. re-enable the line \NoNoteHead \autoBeamOff \ZeroBeam @@ -109,8 +112,11 @@ staffTabLine = \new Staff \with { % Accordion melody in tabulator score % 1. Place a copy of the piano melody below -% 2. Separate piano melody into pull- and push-parts according to the staffTabLine you've already made -% 3. For each line: Double the line. Remark the 1st one (Keeps unchanged as reference) and then change the second line using the transformation paper +% 2. Separate piano melody into pull- and push-parts +% according to the staffTabLine you've already made +% 3. For each line: Double the line. Remark the 1st one +% (Keeps unchanged as reference) and then change the second +% line using the transformation paper % or the macros 'conv2diaton push.bsh' and 'conv2diaton pull.bsh' % Tips: % - In jEdit Search & Replace mark the Option 'Keep Dialog' @@ -128,9 +134,11 @@ AccordionTabTwoCBesDur = { AccordionTab= { \dynamicUp % 1. Place a copy of the piano melody above - % 2. Separate piano melody into pull- and push-parts according to the staffTabLine you've already made - % 3. For each line: Double the line. Remark the 1st one (Keeps unchanged as reference) and then - % change the second line using the transformation paper + % 2. Separate piano melody into pull- and push-parts + % according to the staffTabLine you've already made + % 3. For each line: Double the line. Remark the 1st one + % (Keeps unchanged as reference) and then + % change the second line using the transformation paper % Tips: % - In jEdit Search & Replace mark the Option 'Keep Dialog' % - @@ -168,7 +176,11 @@ staffVoice = \new Staff = astaffvoice { \clef treble { \context Voice = "melodyVoi" - { <f' bes'>8 <f' a'>8 <d' bes'>8 | <g' c''>4 <f' d''> <g' es''> <f' a'> | <f' bes'>2 r8 } + { + <f' bes'>8 <f' a'>8 <d' bes'>8 | + <g' c''>4 <f' d''> <g' es''> <f' a'> | + <f' bes'>2 r8 + } \bar "|." } } @@ -205,7 +217,8 @@ staffBassRhytm = \override Score.GridLine.extra-offset = #'( 13.0 . 0.0 ) % x.y \override Staff.StaffSymbol.line-positions = #'( 0 ) - % Shows one horizontal line. The vertical line (simulating a bar-line) is simulated by a grid + % Shows one horizontal line. The vertical line + % (simulating a bar-line) is simulated by a grid % Search for 'grid' in this page to find all related functions \time 4/4 { diff --git a/Documentation/snippets/setting-system-separators.ly b/Documentation/snippets/setting-system-separators.ly index cbe0712c61..dd3b47068a 100644 --- a/Documentation/snippets/setting-system-separators.ly +++ b/Documentation/snippets/setting-system-separators.ly @@ -20,6 +20,7 @@ default. \paper { system-separator-markup = \slashSeparator + line-width = 120 } notes = \relative c' { diff --git a/Documentation/snippets/string-number-extender-lines.ly b/Documentation/snippets/string-number-extender-lines.ly index 78f91075dd..286c20bcc9 100644 --- a/Documentation/snippets/string-number-extender-lines.ly +++ b/Documentation/snippets/string-number-extender-lines.ly @@ -23,7 +23,8 @@ stringNumberSpanner = \override TextSpanner.style = #'solid \override TextSpanner.font-size = #-5 \override TextSpanner.bound-details.left.stencil-align-dir-y = #CENTER - \override TextSpanner.bound-details.left.text = \markup { \circle \number $StringNumber } + \override TextSpanner.bound-details.left.text = + \markup { \circle \number $StringNumber } #}) diff --git a/Documentation/snippets/subdividing-beams.ly b/Documentation/snippets/subdividing-beams.ly index d1def01815..e73800041a 100644 --- a/Documentation/snippets/subdividing-beams.ly +++ b/Documentation/snippets/subdividing-beams.ly @@ -1,10 +1,11 @@ -%% DO NOT EDIT this file manually; it is automatically -%% generated from LSR http://lsr.di.unimi.it -%% Make any changes in LSR itself, or in Documentation/snippets/new/ , -%% and then run scripts/auxiliar/makelsr.py -%% -%% This file is in the public domain. -\version "2.18.0" +% DO NOT EDIT this file manually; it is automatically +% generated from Documentation/snippets/new +% Make any changes in Documentation/snippets/new/ +% and then run scripts/auxiliar/makelsr.py +% +% This file is in the public domain. +%% Note: this file works from version 2.19.34 +\version "2.19.34" \header { lsrtags = "rhythms" @@ -16,8 +17,12 @@ entire groups of notes. This behavior can be modified to subdivide the beams into sub-groups by setting the property @code{subdivideBeams}. When set, multiple beams will be subdivided at intervals defined by the current value of @code{baseMoment} by reducing the multiple beams to -the number of beams that indicates the length of the sub-group. Note -that @code{baseMoment} defaults to one over the denominator of the +the number of beams that indicates the metric value of the subdivision. +If the group following the division is shorter than the current metric +value (usually because the beam is incomplete) the number of beams +reflects the longest possible subdivision group. However, if there is +only one note left after the division this restriction isn't applied. +Note that @code{baseMoment} defaults to one over the denominator of the current time signature if not set explicitly. It must be set to a fraction giving the duration of the beam sub-group using the @code{ly:make-moment} function, as shown in this snippet. Also, when @@ -28,6 +33,7 @@ changed to match the new @code{baseMoment}: doctitle = "Subdividing beams" } % begin verbatim + \relative c'' { c32[ c c c c c c c] \set subdivideBeams = ##t @@ -42,4 +48,15 @@ changed to match the new @code{baseMoment}: \set baseMoment = #(ly:make-moment 1/16) \set beatStructure = #'(4 4 4 4) c32[ c c c c c c c] + + % Shorten beam by 1/32 + \set baseMoment = #(ly:make-moment 1/8) + \set beatStructure = #'(2 2 2 2) + c32[ c c c c c c] r32 + + % Shorten beam by 3/32 + \set baseMoment = #(ly:make-moment 1/8) + \set beatStructure = #'(2 2 2 2) + c32[ c c c c] r16. + r2 } diff --git a/Documentation/snippets/tuplet-bracket-and-change-staff.ly b/Documentation/snippets/tuplet-bracket-and-change-staff.ly index 2a1d9cf7a5..b5fda25f3a 100644 --- a/Documentation/snippets/tuplet-bracket-and-change-staff.ly +++ b/Documentation/snippets/tuplet-bracket-and-change-staff.ly @@ -17,10 +17,6 @@ finishing in the upper one. doctitle = "Tuplet bracket and change staff" } % begin verbatim -%% http://lsr.di.unimi.it/LSR/Item?id=926 -%=> http://lilypond-french-users.1298960.n2.nabble.com/Crochet-de-nolet-tordu-tt7581491.html -%=> http://lilypond.1069038.n5.nabble.com/Tuplet-bracket-amp-changeStff-td164063.html - aigues = \relative c' { \time 6/8 s4. diff --git a/Documentation/snippets/using-tags-to-produce-mensural-and-modern-music-from-the-same-source.ly b/Documentation/snippets/using-tags-to-produce-mensural-and-modern-music-from-the-same-source.ly index 607d3faa94..199db158e1 100644 --- a/Documentation/snippets/using-tags-to-produce-mensural-and-modern-music-from-the-same-source.ly +++ b/Documentation/snippets/using-tags-to-produce-mensural-and-modern-music-from-the-same-source.ly @@ -52,7 +52,9 @@ Music = \relative c'' { \set Score.tempoHideNote = ##t \key f \major \time 4/4 - g1 d'2 \menrest bes4 bes2 a2 r4 g4 fis2. \tag #'mens { \finalis } \tag #'mod { \bar "||" } + g1 d'2 \menrest bes4 bes2 a2 r4 g4 fis2. + \tag #'mens { \finalis } + \tag #'mod { \bar "||" } } MenLyr = \lyricmode { So farre, deere life, deare life } diff --git a/Documentation/snippets/vertical-aligned-staffgroups-without-connecting-systemstartbar.ly b/Documentation/snippets/vertical-aligned-staffgroups-without-connecting-systemstartbar.ly index adea0ef562..19937c8286 100644 --- a/Documentation/snippets/vertical-aligned-staffgroups-without-connecting-systemstartbar.ly +++ b/Documentation/snippets/vertical-aligned-staffgroups-without-connecting-systemstartbar.ly @@ -237,11 +237,11 @@ simpleBach = cbI = \relative c' { \mark \markup { - \bold "Teacher:" - \column { - "Well, you simply copied and transposed a version of J.S.Bach." - "Do you know this one?" - } + \bold "Teacher:" + \column { + "Well, you simply copied and transposed a version of J.S.Bach." + "Do you know this one?" + } } \key a \minor \time 4/4 diff --git a/Documentation/web/news-front.itexi b/Documentation/web/news-front.itexi index 488059b3f3..0ac9889fdd 100644 --- a/Documentation/web/news-front.itexi +++ b/Documentation/web/news-front.itexi @@ -9,10 +9,10 @@ @c used for news about the upcoming release; see CG 10.2 @newsItem -@subheading LilyPond 2.19.33 released @emph{December 6, 2015} +@subheading LilyPond 2.19.34 released @emph{December 22, 2015} We are happy to announce the release of LilyPond -2.19.33. This release includes a number of enhancements, and contains some +2.19.34. This release includes a number of enhancements, and contains some work in progress. You will have access to the very latest features, but some may be incomplete, and you may encounter bugs and crashes. If you require a stable version of Lilypond, we recommend using the 2.18 diff --git a/Documentation/web/news.itexi b/Documentation/web/news.itexi index 406e782aec..894c37c53b 100644 --- a/Documentation/web/news.itexi +++ b/Documentation/web/news.itexi @@ -27,6 +27,18 @@ NOTE: @end ignore @newsItem +@subheading LilyPond 2.19.33 released @emph{December 6, 2015} + +We are happy to announce the release of LilyPond +2.19.33. This release includes a number of enhancements, and contains some +work in progress. You will have access to the very latest features, but +some may be incomplete, and you may encounter bugs and crashes. If you +require a stable version of Lilypond, we recommend using the 2.18 +version. + +@newsEnd + +@newsItem @subheading LilyPond 2.19.32 released @emph{November 22, 2015} We are happy to announce the release of LilyPond @@ -1,7 +1,7 @@ PACKAGE_NAME=LilyPond MAJOR_VERSION=2 MINOR_VERSION=19 -PATCH_LEVEL=34 +PATCH_LEVEL=35 MY_PATCH_LEVEL= VERSION_STABLE=2.18.2 -VERSION_DEVEL=2.19.33 +VERSION_DEVEL=2.19.34 diff --git a/input/regression/beam-subdivide-quarter-notes.ly b/input/regression/beam-subdivide-quarter-notes.ly index af28282aca..a69dcf0390 100644 --- a/input/regression/beam-subdivide-quarter-notes.ly +++ b/input/regression/beam-subdivide-quarter-notes.ly @@ -4,10 +4,9 @@ doctitle = "Beam subdivide over quarter notes" - texidoc = "Beam subdivisions should match the durations of the subdivided -groups, as established by baseMoment. However, if the groups are equal or -longer than quarter notes, one beam should be left -" + texidoc = "Beam count at subdivisions should match the location +of the current subdivision. However, if the groups are equal or +longer than quarter notes, one beam should always be left." } diff --git a/input/regression/beam-subdivide-shortened-beam.ly b/input/regression/beam-subdivide-shortened-beam.ly new file mode 100644 index 0000000000..665d837442 --- /dev/null +++ b/input/regression/beam-subdivide-shortened-beam.ly @@ -0,0 +1,28 @@ +\version "2.19.34" + +\header { + + doctitle = "Beam subdivide with incomplete remainder" + + texidoc = "Beam count at subdivisions should match the count corresponding +to the location of the current subdivision. However, if the remainder of the +beam is shorter than that the beam count should be adopted accordingly." + +} + +\paper { + indent = 0 +} + +\relative c'' { + \omit Staff.TimeSignature + \time 1/4 + \set subdivideBeams = ##t + \set baseMoment = #(ly:make-moment 1/32) + c64 ^\markup "Full beam (1/32 division)" [ c c c c c c c c c c c c c c c ] + c64 ^\markup "Shortened by 1/32" [ c c c c c c c c c c c c c ] r32 + c64 ^\markup "Shortened by 3/32" [ c c c c c c c c c ] r16. + \set baseMoment = #(ly:make-moment 1/16) + c32 ^\markup "Full beam (1/16 division)" [ c c c c c c c ] + c32 ^\markup "Shortened by 1/16" [ c c c c c] r16 +} diff --git a/input/regression/beam-subdivide-trailing-stem.ly b/input/regression/beam-subdivide-trailing-stem.ly new file mode 100644 index 0000000000..de6d6bd1d2 --- /dev/null +++ b/input/regression/beam-subdivide-trailing-stem.ly @@ -0,0 +1,22 @@ +\version "2.19.34" + +\header { + + doctitle = "Beam subdivide over quarter notes" + + texidoc = "If in a subdivided beam one single stem follows a subdivision +the beam count should reflect the beam count of the subdivision as usual. +That is, the beam count should not be increased according to the remaining +length of the beam. The appended single stem has beamlets to the left." + +} + +\relative c' { + \time 1/4 + \set subdivideBeams = ##t + \set baseMoment = #(ly:make-moment 1/16) + c32 [ c c c c32 ] r16. + c32 [ c c c c64 ] r32. r16 + c32 [ c c32 ] r32 r8 + c32 [ c c64 ] r32. r8 +}
\ No newline at end of file diff --git a/input/regression/beam-subdivision.ly b/input/regression/beam-subdivision.ly index 2aa8e2be62..e7dd0a7b73 100644 --- a/input/regression/beam-subdivision.ly +++ b/input/regression/beam-subdivision.ly @@ -1,7 +1,7 @@ \header { - texidoc = "Beam subdivisions should match the durations of the subdivided -groups, as established by baseMoment." + texidoc = "Beam count at subdivisions should match the location +of the current subdivision." } \version "2.19.19" diff --git a/lily/axis-group-interface.cc b/lily/axis-group-interface.cc index e842cb6d80..52520280f2 100644 --- a/lily/axis-group-interface.cc +++ b/lily/axis-group-interface.cc @@ -1043,7 +1043,6 @@ ADD_INTERFACE (Axis_group_interface, "bound-alignment-interfaces " "default-staff-staff-spacing " "elements " - "max-stretch " "no-alignment " "nonstaff-nonstaff-spacing " "nonstaff-relatedstaff-spacing " diff --git a/lily/beaming-pattern.cc b/lily/beaming-pattern.cc index a501c6ad37..a889990525 100644 --- a/lily/beaming-pattern.cc +++ b/lily/beaming-pattern.cc @@ -132,8 +132,6 @@ Beaming_pattern::beamify (Beaming_options const &options) if (infos_.size () <= 1) return; - int subdivide_beam_count = intlog2(options.base_moment_.main_part_.den())-2; - unbeam_invisible_stems (); if (infos_[0].start_moment_.grace_part_) @@ -168,14 +166,26 @@ Beaming_pattern::beamify (Beaming_options const &options) Direction non_flag_dir = -flag_directions[i]; if (non_flag_dir) { - int importance = infos_[i + 1].rhythmic_importance_; - int count = (importance < 0 && options.subdivide_beams_) - ? subdivide_beam_count - : min (min (infos_[i].count (non_flag_dir), - infos_[i + non_flag_dir].count (-non_flag_dir)), - infos_[i - non_flag_dir].count (non_flag_dir)); - - infos_[i].beam_count_drul_[non_flag_dir] = max(count, 1); + int count = + (infos_[i + 1].rhythmic_importance_ < 0 && + options.subdivide_beams_) + // we're left of a subdivision + ? (i != infos_.size () - 2) + // respect the beam count for shortened beams ... + ? max (beam_count_for_rhythmic_position (i + 1), + beam_count_for_length (remaining_length (i + 1))) + // ... except if there's only one trailing stem + : beam_count_for_rhythmic_position (i + 1) + + // we're at any other stem + : min (min (infos_[i].count (non_flag_dir), + infos_[i + non_flag_dir].count (-non_flag_dir)), + infos_[i - non_flag_dir].count (non_flag_dir)); + + // Ensure at least one beam is left, even for groups longer than 1/8 + count = max (count, 1); + + infos_[i].beam_count_drul_[non_flag_dir] = count; } } } @@ -363,6 +373,25 @@ Beaming_pattern::end_moment (int i) const + infos_.at (i).factor_ * dur.get_length (); } +Moment +Beaming_pattern::remaining_length (int i) const +{ + return end_moment (infos_.size () - 1) - infos_[i].start_moment_; +} + +int +Beaming_pattern::beam_count_for_rhythmic_position (int idx) const +{ + // Calculate number of beams representing the rhythmic position of given stem + return intlog2(infos_[idx].start_moment_.main_part_.den()) - 2; +} + +int +Beaming_pattern::beam_count_for_length (Moment len) const +{ + return intlog2(len.main_part_.den()) - 2 - intlog2(len.main_part_.num()); +} + bool Beaming_pattern::invisibility (int i) const { diff --git a/lily/grob-scheme.cc b/lily/grob-scheme.cc index 1a316b7ae1..572a49ac84 100644 --- a/lily/grob-scheme.cc +++ b/lily/grob-scheme.cc @@ -480,3 +480,18 @@ LY_DEFINE (ly_grob_get_vertical_axis_group_index, "ly:grob-get-vertical-axis-gro return scm_from_int (Grob::get_vertical_axis_group_index (gr)); } + +LY_DEFINE (ly_grob_spanned_rank_interval, "ly:grob-spanned-rank-interval", + 1, 0, 0, (SCM grob), + "Returns a pair with the @code{rank} of the furthest left" + " column and the @code{rank} of the furthest right column" + " spanned by @code{grob}.") +{ + Grob *gr = unsmob<Grob> (grob); + + LY_ASSERT_SMOB (Grob, grob, 1); + + Interval_t<int> iv = gr->spanned_rank_interval (); + + return scm_cons (scm_from_int(iv[LEFT]), scm_from_int(iv[RIGHT])); +} diff --git a/lily/include/beaming-pattern.hh b/lily/include/beaming-pattern.hh index 217af19088..089bb31abd 100644 --- a/lily/include/beaming-pattern.hh +++ b/lily/include/beaming-pattern.hh @@ -80,6 +80,9 @@ private: Direction flag_direction (Beaming_options const &, vsize) const; void find_rhythmic_importance (Beaming_options const &); void unbeam_invisible_stems (); + Moment remaining_length (int idx) const; + int beam_count_for_rhythmic_position (int idx) const; + int beam_count_for_length (Moment len) const; }; #endif /* BEAMING_PATTERN_HH */ diff --git a/ly/Welcome-to-LilyPond-MacOS.ly b/ly/Welcome-to-LilyPond-MacOS.ly index 24007889f4..17bf91958a 100644 --- a/ly/Welcome-to-LilyPond-MacOS.ly +++ b/ly/Welcome-to-LilyPond-MacOS.ly @@ -23,7 +23,7 @@ That's it. For more information, visit http://lilypond.org . %} -\version "2.19.33" % necessary for upgrading to future LilyPond versions. +\version "2.19.34" % necessary for upgrading to future LilyPond versions. \header{ title = "A scale in LilyPond" diff --git a/ly/Welcome_to_LilyPond.ly b/ly/Welcome_to_LilyPond.ly index 9937a5c633..0bbd29b80f 100644 --- a/ly/Welcome_to_LilyPond.ly +++ b/ly/Welcome_to_LilyPond.ly @@ -32,7 +32,7 @@ Good luck with LilyPond! Happy engraving. %} -\version "2.19.33" % necessary for upgrading to future LilyPond versions. +\version "2.19.34" % necessary for upgrading to future LilyPond versions. \header{ title = "A scale in LilyPond" diff --git a/ly/titling-init.ly b/ly/titling-init.ly index f397ad6bd9..12bfa4f340 100644 --- a/ly/titling-init.ly +++ b/ly/titling-init.ly @@ -149,9 +149,7 @@ book last one." oddHeaderMarkup = \markup \fill-line { - %% force the header to take some space, otherwise the - %% page layout becomes a complete mess. - " " + "" \on-the-fly #not-part-first-page \fromproperty #'header:instrument \on-the-fly #print-page-number-check-first \fromproperty #'page:page-number-string } @@ -162,7 +160,7 @@ evenHeaderMarkup = \markup \fill-line { \on-the-fly #print-page-number-check-first \fromproperty #'page:page-number-string \on-the-fly #not-part-first-page \fromproperty #'header:instrument - " " + "" } oddFooterMarkup = \markup { diff --git a/po/lilypond.pot b/po/lilypond.pot index 7657ef0166..34bfbaf2db 100644 --- a/po/lilypond.pot +++ b/po/lilypond.pot @@ -6,10 +6,10 @@ #, fuzzy msgid "" msgstr "" -"Project-Id-Version: lilypond 2.19.33\n" +"Project-Id-Version: lilypond 2.19.34\n" "Report-Msgid-Bugs-To: http://post.gmane.org/post.php?group=gmane.comp.gnu." "lilypond.bugs\n" -"POT-Creation-Date: 2015-12-06 15:25+0000\n" +"POT-Creation-Date: 2015-12-22 11:48+0000\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Language-Team: LANGUAGE <LL@li.org>\n" @@ -2498,7 +2498,7 @@ msgstr "" msgid "placing below" msgstr "" -#: note-collision.cc:510 +#: note-collision.cc:512 msgid "this Voice needs a \\voiceXx or \\shiftXx setting" msgstr "" diff --git a/scm/define-grob-properties.scm b/scm/define-grob-properties.scm index d2e74a96a9..e54bdaf183 100644 --- a/scm/define-grob-properties.scm +++ b/scm/define-grob-properties.scm @@ -610,9 +610,6 @@ visual output is influenced by changes to ;;; (max-beam-connect ,integer? "Maximum number of beams to connect to beams from this stem. Further beams are typeset as beamlets.") - (max-stretch ,number? "The maximum amount that this -@code{VerticalAxisGroup} can be vertically stretched (for example, in -order to better fill a page).") (maximum-gap ,number? "Maximum value allowed for @code{gap} property.") (measure-count ,integer? "The number of measures for a diff --git a/scm/framework-ps.scm b/scm/framework-ps.scm index 60d7bb3fc0..f6d1700f42 100644 --- a/scm/framework-ps.scm +++ b/scm/framework-ps.scm @@ -246,10 +246,15 @@ footer))) (define (write-preamble paper load-fonts? port) - (define (internal-font? file-name) - (or (string-startswith file-name "Emmentaler") - (string-startswith file-name "emmentaler") - )) + (define (internal-font? font-name-filename) + (let* ((font (car font-name-filename)) + (file-name (caddr font-name-filename)) + (font-file-name (ly:find-file (format #f "~a.otf" file-name)))) + (and font + (cff-font? font) + font-file-name + (string-contains font-file-name + (ly:get-option 'datadir))))) (define (load-font-via-GS font-name-filename) (define (ps-load-file file-name) @@ -272,7 +277,7 @@ (if (mac-font? bare-file-name) (handle-mac-font name bare-file-name) (cond - ((internal-font? file-name) + ((and font (cff-font? font)) (ps-load-file (ly:find-file (format #f "~a.otf" file-name)))) ((string? bare-file-name) @@ -402,7 +407,7 @@ ((ly:get-option 'gs-load-lily-fonts) (if (or (string-contains (caddr name) (ly:get-option 'datadir)) - (internal-font? (caddr name))) + (internal-font? name)) (load-font-via-GS name) (load-font name))) (else diff --git a/scm/markup.scm b/scm/markup.scm index 5c38ae9ea5..14a007a95b 100644 --- a/scm/markup.scm +++ b/scm/markup.scm @@ -113,7 +113,7 @@ following stencil. Stencils with empty Y extent are not given (string-join (list (car c) (string-cons-join (cdr c))) ""))) ;; We let the following line in for future debugging - (display-scheme-music (sort all-relevant-markup-commands symbol<?)) + ;; (display-scheme-music (sort all-relevant-markup-commands symbol<?)) ;;;; Remark: below only works, if markup?- or markup-list? arguments are the diff --git a/scm/music-functions.scm b/scm/music-functions.scm index d5a4b2478a..325da29dd5 100644 --- a/scm/music-functions.scm +++ b/scm/music-functions.scm @@ -2073,6 +2073,21 @@ are expanded using the default settings of the parser." (map (lambda (x) (ly:music-property x 'pitch)) (event-chord-notes event-chord))) +(define-public (music-pitches music) + "Return a list of all pitches from @var{music}." + ;; Opencoded for efficiency. + (reverse! + (let loop ((music music) (pitches '())) + (let ((p (ly:music-property music 'pitch))) + (if (ly:pitch? p) + (cons p pitches) + (let ((elt (ly:music-property music 'element))) + (fold loop + (if (ly:music? elt) + (loop elt pitches) + pitches) + (ly:music-property music 'elements)))))))) + (define-public (event-chord-reduce music) "Reduces event chords in @var{music} to their first note event, retaining only the chord articulations. Returns the modified music." diff --git a/scm/translation-functions.scm b/scm/translation-functions.scm index 2e0d02371b..f9f532b0d0 100644 --- a/scm/translation-functions.scm +++ b/scm/translation-functions.scm @@ -706,3 +706,66 @@ only ~a fret labels provided") (export every-nth-repeat-count-visible) (define-public (all-repeat-counts-visible count context) #t) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; pitch recognition + +(define-public (make-semitone->pitch pitches) + "Convert @var{pitches}, an unordered list of note values +covering (after disregarding octaves) all absolute pitches in need of +conversion, into a function converting semitone numbers (absolute +pitch missing enharmonic information) back into note values. + +For a key signature without accidentals +@example +c cis d es e f fis g gis a bes b +@end example +might be a good choice, covering Bb major to A major and their +parallel keys, and melodic/harmonic C minor to A minor." + ;; TODO: short-circuit lcm calculation once we know it will be large + (let* ((size (apply lcm (map (lambda (pitch) + (denominator (/ (ly:pitch-tones pitch) 6))) + pitches))) + ;; Normal tunings need 12 steps per octave, quartertone + ;; tunings 24, Makam needs 108. But microtunings might cause + ;; trouble. + (lookup (if (> size 400) + (make-hash-table) + (make-vector size #f)))) + (for-each + (lambda (pitch) + (let* ((rawoct (/ (ly:pitch-tones pitch) 6)) + (oct (floor rawoct)) + (ref (- rawoct oct)) + (val (ly:pitch-transpose pitch + (ly:make-pitch (- oct) 0)))) + (if (hash-table? lookup) + (hashv-set! lookup ref val) + (vector-set! lookup (* size ref) val)))) + pitches) + (lambda (semitone) + "Convert @var{semitone} numbers into note values. If the +originally specified list of pitches does not contain a note +corresponding to @var{semitone} (disregarding octaves), @code{#f} is +returned." + (let* ((rawoct (/ semitone 12)) + (oct (floor rawoct)) + (ref (- rawoct oct)) + (val (if (hash-table? lookup) + (hashv-ref lookup ref) + (let ((ref (* (vector-length lookup) ref))) + (and (integer? ref) + (vector-ref lookup ref)))))) + (and val + (ly:pitch-transpose val (ly:make-pitch oct 0))))))) + +(define ((shift-semitone->pitch key semitone->pitch) semitone) + "Given a function @var{semitone->pitch} converting a semitone number +into a note value for a lookup table created in relation to@tie{}C, +returns a corresponding function in relation to @var{key}. The note +values returned by this function differ only enharmonically from the +original @var{semitone->pitch} function." + (ly:pitch-transpose (semitone->pitch (- semitone (* 2 (ly:pitch-tones key)))) + key)) + +(export shift-semitone->pitch) |