1. 17 Aug, 2022 1 commit
  2. 16 Aug, 2022 23 commits
    • Jean-Charles Malahieude's avatar
      Doc-fr NR · 75277cd8
      Jean-Charles Malahieude authored
    • Jean-Charles Malahieude's avatar
      Doc-fr: Changes · d7b28308
      Jean-Charles Malahieude authored
    • Jean-Charles Malahieude's avatar
      Web-fr: manuals · 375cb2a1
      Jean-Charles Malahieude authored
    • Jean-Charles Malahieude's avatar
      Doc-fr: EM and NR · 32fb47e2
      Jean-Charles Malahieude authored
      Removal of dsafe
    • Jean Abou Samra's avatar
      Fix oversight in scheme-list-splicing.ly · 83e14dff
      Jean Abou Samra authored
    • Dan Eble's avatar
      Allow simultaneous rehearsal and performance marks · c7b23857
      Dan Eble authored
      Rehearsal marks are placed outside performance marks.
    • Jean Abou Samra's avatar
      Add ly_keyword2scm like ly_symbol2scm · a3ce724d
      Jean Abou Samra authored
      The result of ly_keyword2scm on a literal char* is cached in a static
    • Jean Abou Samra's avatar
      Fix mutation in scheme-text-spanner.ly · bebdc1c5
      Jean Abou Samra authored
      According to Scheme standards, it is an error to attempt to mutate a
      "literal constant".  Guile enforces this restriction for constant
      parts of quasiquotes -- but not only when byte-compiling, not when
      evaluating.  Without this fix, the regression test
      scheme-text-spanner.ly would error out with the upcoming switch to
      compilation for user Scheme code because it does this kind of
    • Jean Abou Samra's avatar
      Add regtest for #@ and $@ · 491bae45
      Jean Abou Samra authored
    • Jean Abou Samra's avatar
      Avoid function in make-relative macro output · 86a1869e
      Jean Abou Samra authored
      The compiler of Guile 2+ does not like functions in raw macro output.
      This only worked so far because make-relative is provided for Scheme
      users but not used inside LilyPond.  In one of our .scm files, it
      would have caused byte-compilation to fail.  A future commit will
      switch to using the compiler for Scheme code in .ly files as well.
      The fix is to turn this Lispy macro into a Schemely macro, using a
      hygienic reference to the function in order to preserve lexical
      hygiene without the function in the output.
    • Jean Abou Samra's avatar
      Remove unused ly_scm2char · 3b4c3d2a
      Jean Abou Samra authored
    • Jean Abou Samra's avatar
      Use from_scm and to_scm for booleans · e60492fc
      Jean Abou Samra authored
      For consistency, eliminate ly_bool2scm and ly_scm2bool.  Also replace
      use of scm_from_bool.  ly_scm2bool replaced with scm_is_true.
      ly_bool2scm and scm_from_boolx become from_scm, ensuring each time that
      the argument is a boolean and not something implicitly convertible to
      a boolean; for pointers, static casts are added to that effect.
    • Jean Abou Samra's avatar
      Add regtest for page-number-type · e08c3a52
      Jean Abou Samra authored
    • Jean Abou Samra's avatar
      Add bookpart-level-page-numbering paper variable · 4e2ebc31
      Jean Abou Samra authored
      If bookpart-level-page-numbering is set to #t, bookparts have
      independent sequences of page numbers.  This can be useful if
      publishing a set of instrumental parts that are joint in a single
      book, perhaps with a common introduction, but intended to be used
      separately. Furthermore, setting this variable only for the first
      bookpart in conjunction with page-number-type can be used to number
      pages in the introductory material with separate numbering and in
      roman numbers, which is common practice.
      Fixes #6396
    • Jean Abou Samra's avatar
      Fix roman page-number-type · 46cf7008
      Jean Abou Samra authored
      The page breaker often needs to do tentative passes to score breaking
      configurations. Sometimes, when doing so, it passes 0 as page number.
      This would cause an error previously because 0 can't be converted to
      roman page numbers.  Instead, use arabic numbers in this case.  A
      FIXME is added because I'm not sure if the page breaker really has
      good reasons to pass 0 or has an off-by-one error somewhere, but I
      think making number-format foolproof is a good idea regardless.
      Fixes #6401
    • Mark Knoop's avatar
      Add woodwind-diagram features to documentation and changes · 3c718a26
      Mark Knoop authored and Jean Abou Samra's avatar Jean Abou Samra committed
    • Mark Knoop's avatar
      Add property for style of trilled text keys in woodwind-diagrams · 13251952
      Mark Knoop authored and Jean Abou Samra's avatar Jean Abou Samra committed
      Property `text-trill-circled` controls whether trilled text keys (lh/rh) are
      displayed in a circle (#t, default) or shaded gray to match trilled central
      column keys.
    • Mark Knoop's avatar
      Add fill-angle property to woodwind-diagrams · a8046b00
      Mark Knoop authored and Jean Abou Samra's avatar Jean Abou Samra committed
      Some woodwind-diagram styles prefer partially filled states to be shown
      vertically rather than horizontally. This adds a `woodwind-diagram-details`
      property which includes a `fill-angle` subproperty to enable arbitrary rotation
      of the fill angle.
    • Mark Knoop's avatar
      Make non-graphical woodwind-diagrams respect the font-size property · c3f25b61
      Mark Knoop authored and Jean Abou Samra's avatar Jean Abou Samra committed
      This allows adjusting the font-size of the text parts of a diagram relative to
      the graphical parts.
    • Mark Knoop's avatar
      Fix accidental alignment in non-graphical woodwind-diagrams · db18915b
      Mark Knoop authored and Jean Abou Samra's avatar Jean Abou Samra committed
      Scale the parameter to raise the accidental so that alignment is correct when
      changing the size of the diagram.
    • Mark Knoop's avatar
      Fix woodwind-diagrams partial fill and trill state · 8524de91
      Mark Knoop authored and Jean Abou Samra's avatar Jean Abou Samra committed
      Previously, partially filled keys were colored the same as trilled keys since
      the test for trilled state always returned true.
      Also adds a regression test for filled and trilled keys.
    • Jean Abou Samra's avatar
      Use a unified output-def-kind variable instead of is-{paper,layout,midi} · f0dd0355
      Jean Abou Samra authored
      Although rare, output defs are sometimes written nested inside other
      output defs, as in
      \paper {
        oddHeaderMarkup =
          \markup \score {
            \layout { ... }
      The design of the parser is that scopes are nested, so the \layout in
      the example above sees variables coming from \paper.  This wasn't true
      in Guile 1.8 due to a Guile bug (see issue #6364 for details), but it
      is now that we are running Guile 2.2.
      This inheritance does not play well with the way the kind of an output
      def (paper/layout/midi) was previously recognized, via variables
      is-paper, is-layout and is-midi.  In the example, \layout would
      inherit is-paper = ##t from \paper, making the parser wrongly
      recognize it.
      Independently, it's inelegant to have 3 variables for a single piece
      of information (the kind), and it raises questions about whether
      is-paper and is-layout can (legitimately) be true at the same time.
      So, solve this by unifying these variables in an output-def-kind
      variable that can be 'paper, 'layout or 'midi.  I think it would be
      good to ultimately make this a member of the Output_def rather than a
      variable in its module, as it's an intrinsic property of the output
      def, but this will require some reworking of paper.scm.
      Fixes #6364
    • Jean Abou Samra's avatar
      output-def.hh: update comment · fef8a308
      Jean Abou Samra authored
      This part wasn't true anymore, see Output_def::lookup_variable.
  3. 13 Aug, 2022 8 commits
    • Dan Eble's avatar
      Fix lifetime of new context inside \alternative · 42d632c3
      Dan Eble authored
      Volta_specced_music_iterator must release the context receiving its
      span events after the end event is sent.
      Closes #6402.
    • Jean Abou Samra's avatar
      Fix grob::when and grob::rhythmic-location on dead spanners · e5f30579
      Jean Abou Samra authored
      Interfaces are cleared for dead grobs, so a dead spanner would not be
      recognized as a spanner and the functions would error out trying to
      take the paper column of a spanner.  Instead, use ly:spanner?, which
      continues to recognize the grob as spanner even after death because it
      checks unsmob<Spanner> (the_grob).
    • Werner Lemberg's avatar
    • Werner Lemberg's avatar
    • Werner Lemberg's avatar
    • Werner Lemberg's avatar
      feta-numbers.mf: Complete number sets · dc4d3a4b
      Werner Lemberg authored
      This commit starts a series of four commits to systematize the access of
      digits using OpenType features.
      * 'cv47' (character variant 47)
        If on, glyphs 'four' and 'seven' have shorter strokes.  Default is off.
      * 'tnum' (tabular figures)
        If off (which is the default), glyphs 'zero' to 'nine' have no left and
        right side bearings.  If on, the glyphs all have the same advance width by
        making the bearings non-zero.
      * 'ss01' (stylistic set 1)
        If on, glyphs 'zero' to 'nine' have a fatter design, making them more
        readable at small sizes.  Default is off.
      * 'kern' (kerning)
        If on (which is the default), glyphs 'zero' to 'nine' and the punctuation
        glyphs 'plus', 'comma', 'hyphen', and 'period' have pairwise kerning.
      This eventually leads to the following feature combinations:
      * time signatures: (none)
      * figured bass: +cv47, +tnum, +ss01
      * fingering: +cv47, +ss01
      * fixed-width: +cv47, +tnum, -kern
      In `feta-numbers.mf`, provide the necessary glyphs for 'cv47', 'tnum', and
      'ss01' ('kern' gets implemented later in the font generation chain):
      * normal glyphs
      * fixed-width glyphs
      * fattened glyphs
      * fixed-width, fattened glyphs
      For all four groups, also provide alternative digit forms for glyphs 'four'
      and 'seven'.
      Note that there is actually no new code; the new (and renamed) glyphs are
      simply recombinations of the existing shapes and flags that control them.
    • Werner Lemberg's avatar
      emmentaler_kerning.py: Fix kerning computation for 'figbass' digits · 493b0f90
      Werner Lemberg authored
      Due to incorrect indentation a lot of kerning pairs were missing.
    • Werner Lemberg's avatar
      changes.tely: Minor formatting · cea2deef
      Werner Lemberg authored
  4. 11 Aug, 2022 7 commits
    • Dan Eble's avatar
      Define "x" bar lines for future use with \caesura · 8a699552
      Dan Eble authored
      It has long been possible to define a bar line with a mid-line stencil
      but no beginning-of-line or end-of-line stencils, but the reverse has
      not been possible.
      This adds bar types "x-|", "x-||", and "x-." to support styles that
      allow line breaks between lyric phrases (whether or not they fall on
      measure boundaries) and use a specific bar line for such a break.
      I've been less thorough in testing this than I usually am.  A bunch of
      expected uses will be covered with the coming support for \caesura in
      Bar_engraver, but there are other obvious cases worthy of attention:
      * (define-bar-line "x" #f #f #f)
      * "x" or "x-..." in the EOL/BOL/span arguments of bar-line definitions
      * bar types with other glyph components combined with "x"
      * tests of layering that are independent of \caesura
      I don't want to record here which of the above I currently think should
      be allowed and which should be disallowed, but it's some of both.
    • Martín Rincón Botero's avatar
      feta-scripts.mf: make accent smaller · 3e842e70
      Martín Rincón Botero authored and Jean Abou Samra's avatar Jean Abou Samra committed
      For a detailed discussion see #186.
      This commit makes the accent glyph ca. 1.3 font size smaller (ca. 15,6%). It
      fixes some cases where an accidental (especially a natural sign) would
      vertically displace the accent.
      Closes #186
    • Jean Abou Samra's avatar
      Allow setting trill spanner direction with ^ or _ · b73f32bc
      Jean Abou Samra authored
      It is now possible to use <note>_\startTrillSpan or <note>^\startTrillSpan
      to set the direction, like with other articulations.  Previously,
      one had to do <note>\tweak direction #{DOWN,UP} \startTrillSpan.
    • Jean Abou Samra's avatar
      Add note columns as side support for trill spanners · 1466d948
      Jean Abou Samra authored
      A side-positioned grob is normally expected to declare its support in
      the side-support-elements array.  TrillSpanner did not do this, and it
      worked because outside-staff positioning does a second pass that fixes
      the collisions, but adding the support is the intended usage and
      should make for more accurate pure estimations.  It also fixes
      collisions in case outside-staff-priority is turned off.  Currently,
      doing that is necessary to bring the trill into the staff.
    • Jean Abou Samra's avatar
      Rewrite Trill_spanner_engraver · d3c3f77c
      Jean Abou Samra authored
      The new engraver is more accessible because it's written in Scheme,
      and by not using add_bound_item, it makes what is happening with
      bounds clearer.
    • Jean Abou Samra's avatar
      Remove Y-offset and side-axis definitions from TrillSpanner · a9880203
      Jean Abou Samra authored
      They're already there because the call to
      Side_position_interface::set_axis in Trill_spanner_engraver uses
      chain_offset_callback.  This would just make the callback run twice.
    • Dan Eble's avatar
      Use \bar "k" for \section in KievanStaff · 46b5d1b1
      Dan Eble authored
      Having perused a scan of _Обиход нотного пения употребительных церковных
      роспевов_ (in PDF from http://seminaria.ru/toporiki), I am refining the
      settings in KievanStaff so that both \section and \fine create \bar "k".
      Also, because I could not see any obvious repeated sections, I have
      used the same bar type for \repeat volta.
  5. 09 Aug, 2022 1 commit
    • Dan Eble's avatar
      Divisio_engraver · 16216e24
      Dan Eble authored
      In ancient staff contexts, Divisio_engraver creates Divisio grobs in
      response to \caesura, \section, \fine, and \repeat volta.  Bar_engraver
      is configured not to create visible bar lines for those events.
      Divisio grobs are drawn like BreathingSign grobs, but are break-aligned
      in the 'staff-bar position like BarLine grobs.
      The caesuraType context property tells Divisio_engraver which sign to
      to create for an unarticulated \caesura.  The \divisioMinima and
      \virgula commands override caesuraType to set their appearance.
      \divisioMaior and \divisioMaxima add fermata articulations, which the
      caesuraTypeTransform function converts to the appropriate symbols.
      caesuraTypeTransform might look like an unnecessary complication in this
      commit, but the articulations in the music are appropriate and may be
      useful for future MIDI support.  Also, transform functions will have a
      role in supporting caesura styles that adapt to bar lines.
      convert-ly is "not smart" about this change, but it explains the c...