[ ] Consider replacing niente dynamic with LilyPond \! hairpin-stop.
[ ] Add interpolated dynamic handler
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).
[ ] Add fractional dynamics
p+1/2, p-1/2
p+1/3, p+2/3, p-1/3, p-1/3.
And so on.
[ ] Add semantic check for incorrectly parenthesized dynamics. So p ... (pp) < f will be found.
[ ] Raise exception when mf -- ! enchains niente o< f. Causes two LilyPond \! commands to attach to same leaf.
[ ] Add sequential dynamics. Something like baca.hairpin('p < [mf, f, ff]') to give p < mf, p < f, p < ff on successive applications.
[ ] Add interpolative dynamics. Something like baca.hairpin('p < [mf,, ff]') to interpolate from mf to ff according to total number of applications; allow keywords or other specifiers to control for fraction dynamics and repeat values.
[ ] Add baca.dynamic('f', allow_repeats=True) keyword to generate sequential f not colored as redundant.
[ ] Consider replacing
niente
dynamic with LilyPond\!
hairpin-stop.[ ] Add interpolated dynamic handler
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.
[ ] Add semantic check for incorrectly parenthesized dynamics. So
p ... (pp) < f
will be found.[ ] add hairpin staff padding check; raise "you probably mean baca.dls_staff_padding() instead."
force_final_dynamic
keyword[ ] Raise exception when
mf -- !
enchainsniente o< f
. Causes two LilyPond\!
commands to attach to same leaf.[ ] Add sequential dynamics. Something like
baca.hairpin('p < [mf, f, ff]')
to givep < mf
,p < f
,p < ff
on successive applications.[ ] Add interpolative dynamics. Something like
baca.hairpin('p < [mf,, ff]')
to interpolate frommf
toff
according to total number of applications; allow keywords or other specifiers to control for fraction dynamics and repeat values.[ ] Add
baca.dynamic('f', allow_repeats=True)
keyword to generate sequentialf
not colored as redundant.