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

Reply via email to