Dear friends, I'm pleased to announce that Abjad 2.18 is now available.
Abjad is a Python API for Formalized Score Control Abjad helps composers build up complex pieces of music notation in an iterative and incremental way. Use Abjad to create symbolic representations of all the notes, rests, staves, tuplets, beams and slurs in any score. Because Abjad extends the Python programming language, you can use Abjad to make systematic changes to your music as you work. And because Abjad wraps the powerful LilyPond music notation package, you can use Abjad to control the typographic details of the symbols on the page. - Docs: http://abjad.mbrsi.org/ - GitHub: https://github.com/abjad/abjad - PyPI: https://pypi.python.org/pypi/Abjad/2.1 <https://pypi.python.org/pypi/Abjad/2.17>8 Details of the new release appear below. ------------ ## Improvements - [#715] Grace notes are now aware of their parentage above and beyond their enclosing `GraceContainer`. - [#703] Added a `synthetic_offset` keyword to `attach()` and `IndicatorExpression`. - This allows composers to attach effective indicators which start *before* the score starts, allowing composers to model how various indicators hold over from a previous section. - For example: `attach(Dynamic('f'), voice, synthetic_offset=-1)` - [#640] Many optimizations: - Optimized hot code paths in Duration and Offset instantiation. - Optimized timespan comparison. - Optimized parser instantiation. - [#626, #726] `Dynamic` now recognizes `sffp`, `sffz` and `niente` as valid dynamic names. - [#726] `Hairpin` is now niente-aware. - [#628] Implemented a collection of command-line tools for working with score packages. - `ajv score`, `ajv material`, `ajv segment`, `ajv target`. - These tools are provisional pending more extensive use. - [#719] Implemented `TupletSpellingSpecifier.preferred_denominator`. - This mirrors `Tuplet.preferred_denominator`. - [#666] Abjad now formats LilyPond properties using the newer dot-chained syntax, not the old `#'...` syntax. - As always, Abjad targets the development version of LilyPond, currently the 2.19 series. - [#720] Non-reduced fractions can be attached to leaves just like `Multiplier` objects. - [#724] Equipped `Sequence.partition_by_counts()` with a `reverse` keyword. - [#725] Equipped `Markup` with `.sub()` and `.super()` markup command methods. ## Changes - [#709] Spanners now attach **only to leaves**, **never to containers**. - This represents a significant simplification in Abjad's score model. - This change should generally be transparent to users, as `attach()` does the work of iterating leaves in its component expression. - [#709] Many spanners now attach only to 2 or more leaves at once, including `Slur` and `Tie`. - [#709] Removed `Container.select_leaves()`. - To select a container's leaves, use `list(iterate(container).by_leaf())`. - To select the _first leaf_ of a container, use `next(iterate(container).by_leaf())`. - To select the _last leaf_ of a container, use `next(iterate(container).by_leaf(reverse=True))`. - [#628, #644, #643, #702] Tool-chain clean-up and refactoring - `developerscripttools` was renamed `commandlinetools`. - `DeveloperScript` was renamed `CommandlineScript`. - Unused and obsolete scripts have been removed. - [#717] Out-ported various classes to https://github.com/trevorbaca/baca: - `Cursor`, `PitchClassTree`, `PayloadTree`, `CyclicPayloadTree`. - [#714] `Selector.by_leaves()` is now `Selector.by_leaf()`. This harmonizes with `IterationAgent.by_leaf()`. - [#721] Added a new LilyPondCommand.prefix property. - This makes it easy to position arbitrary strings relative to components. ## Bugfixes - [#655] `Tuplet._simplify_redundant_tuplet()` takes logical ties into account. - [#680] Abjad's docs post-process SVG images under Python 2.7 properly. - [#736] Registration now takes quarter tones into account. ------------ For installation instructions, see http://abjad.mbrsi.org/installation.html. We hope you enjoy! Trevor Bača * mail: trevorb...@gmail.com * home: http://www.trevorbaca.com/ Josiah Wolf Oberholtzer * mail: josiah.oberholt...@gmail.com * home: http://josiahwolfoberholtzer.com
_______________________________________________ lilypond-user mailing list lilypond-user@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-user