Abjad / abjad

Abjad is a Python API for building LilyPond files. Use Abjad to make PDFs of music notation.
https://abjad.github.io
GNU General Public License v3.0
234 stars 41 forks source link

Use LilyPond \rhythm markup to simplify rmakers.accelerando() output #1513

Closed trevorbaca closed 1 year ago

trevorbaca commented 1 year ago

Done in rmakers.

Example:

    nested_music = rmakers.accelerando([(1, 4)], [(1, 8), (1, 20), (1, 16)])
    container = abjad.Container(nested_music)
    rmakers.feather_beam(container)
    rmakers.duration_bracket(container)
    music = abjad.mutate.eject_contents(container)
    tuplet = music[0]
    string = abjad.lilypond(tuplet)
    print(string)

OLD OUTPUT:

    \override TupletNumber.text = \markup \scale #'(0.75 . 0.75) \score
        {
            \context Score = "Score"
            \with
            {
                \override SpacingSpanner.spacing-increment = 0.5
                proportionalNotationDuration = ##f
            }
            <<
                \context RhythmicStaff = "Rhythmic_Staff"
                \with
                {
                    \remove Time_signature_engraver
                    \remove Staff_symbol_engraver
                    \override Stem.direction = #up
                    \override Stem.length = 5
                    \override TupletBracket.bracket-visibility = ##t
                    \override TupletBracket.direction = #up
                    \override TupletBracket.minimum-length = 4
                    \override TupletBracket.padding = 1.25
                    \override TupletBracket.shorten-pair = #'(-1 . -1.5)
                    \override TupletBracket.springs-and-rods = #ly:spanner::set-spacing-rods
                    \override TupletNumber.font-size = 0
                    \override TupletNumber.text = #tuplet-number::calc-fraction-text
                    tupletFullLength = ##t
                }
                {
                    c'4
                }
            >>
            \layout
            {
                indent = 0
                ragged-right = ##t
            }
        }
    \times 1/1
    {
        \once \override Beam.grow-direction = #right
        c'16 * 15/8
        [
        c'16 * 21/16
        c'16 * 13/16
        ]
    }
    \revert TupletNumber.text

NEW OUTPUT:

    \override TupletNumber.text = \markup \scale #'(0.75 . 0.75) \rhythm { 4 }
    \times 1/1
    {
        \once \override Beam.grow-direction = #right
        c'16 * 15/8
        [
        c'16 * 21/16
        c'16 * 13/16
        ]
    }
    \revert TupletNumber.text