trevorbaca / baca

Trevor Bača's Abjad library.
8 stars 3 forks source link

Refactor dynamics #23

Open trevorbaca opened 5 years ago

trevorbaca commented 5 years ago

For terraced (discrete / nonhairpin) but interpolated dynamics: p, mp, mf, f ... etc.

Method will count underlying number of leaves / plts / attachment targets; then interpolate between two values; optional LMR-style specifier to direct growth at edges (or middle).

p+1/2, p-1/2

p+1/3, p+2/3, p-1/3, p-1/3.

And so on.

        baca.hairpin(
            'p < f',
            abjad.tweak(7).staff_padding,
            )
        baca.hairpin(
            'ff >',
            (abjad.tweak(True).to_barline, -1),
            )
        baca.hairpin(
            'ff < fff >',
            force_final_dynamic='ff',
            pieces=baca.plts(),
            )