ANN: Abjad 2.19

classic Classic list List threaded Threaded
1 message Options
Reply | Threaded
Open this post in threaded view

ANN: Abjad 2.19

josiah oberholtzer
Dear friends,

I'm pleased to announce that Abjad 2.19 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.

Details of the new release appear below.


## Improvements

- [#740] Proofread ‘For beginners’ section of docs. Thanks @delucis!
- [#741] LilyPond's log is displayed on LilyPond compilation error.
- [#749] Added `LilyPondCommand` to Abjad's global namespace.
- [#752] Taught `detach()` about different types of grace container.
- [#753] Taught `Dynamics` about _sforzando_ dynamic names.
- [#744] Refactoring and cleanup in `schemetools`. Thanks @ajyoon!
- [#745] Reimplemented Abjad's repr, storage format and object templating system.
- [#755, #760, #761, #763] Cleaned-up class member ordering via a new command-line script. Thanks @ajyoon!
- [#766] Abjad's `ajv` looks for `.ajv` config files in $HOME, the current directory and any parent directory thereof. A [doctest] section can specify imports to be run at the beginning of each doctest in `ajv doctest` via an `imports` key.
## Changes

- [#745] `AbjadObject`'s `_storage_format_specification` and `_repr_specification` properties are deprecated in favor of a new unified `_get_format_specification()` method. The old properties will no longer be supported in the next Abjad release: 2.20.

## Bugfixes

- [#762] Improved interaction between chords and ties. Thanks @quesebifurcan!
- [#764] `IOManager.open_file()` respects Abjad's config when opening MIDI files. Thanks @quesebifurcan!
- [#767] Fixed edge-cases in Graphviz attribute-handling and append/extend behavior.
- [#774] NamedPitch.invert() guards against errors from multiply-augmented or diminished intervals.


Special thanks to 2.19 contributors @delucis (Chris Swithinbank), @ajyoon (Andrew Yoon) and @quesebifurcan (Fredrik Wallberg) on Github, and to Jeffrey Treviño for his constant and patient organization.


For installation instructions, see

We hope you enjoy!

Trevor Bača 

Josiah Wolf Oberholtzer

lilypond-user mailing list
[hidden email]