lilypond-user
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

ANN: Abjad 2.18


From: josiah oberholtzer
Subject: ANN: Abjad 2.18
Date: Fri, 08 Jul 2016 06:21:43 +0000

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.18

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: address@hidden
* home: http://www.trevorbaca.com/

Josiah Wolf Oberholtzer
* mail: address@hidden
* home: http://josiahwolfoberholtzer.com

reply via email to

[Prev in Thread] Current Thread [Next in Thread]