Path: csiph.com!fu-berlin.de!uni-berlin.de!not-for-mail From: josiah oberholtzer Newsgroups: comp.lang.python.announce Subject: ANN: Abjad 2.19 Date: Mon, 24 Oct 2016 18:10:15 +0000 Lines: 82 Approved: python-announce-list@python.org Message-ID: References: Mime-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable X-Trace: news.uni-berlin.de yAce5Rp7LDw1MmdEIyEoDwkt7yx//kuFAsOGcaAkmB5w== Return-Path: X-Original-To: python-announce-list@python.org Delivered-To: python-announce-list@mail.python.org X-Spam-Status: OK 0.000 X-Spam-Evidence: '*H*': 1.00; '*S*': 0.00; 'url:pypi': 0.03; 'method.': 0.05; 'url:github': 0.05; '------------': 0.07; 'cleanup': 0.07; 'deprecated': 0.07; 'doctest': 0.07; 'extends': 0.07; 'key.': 0.07; 'subject:ANN': 0.07; 'python': 0.09; 'contributors': 0.09; 'docs.': 0.09; 'imports': 0.09; 'skip:` 30': 0.09; 'thereof.': 0.09; 'api': 0.10; 'language,': 0.11; 'files.': 0.15; 'package,': 0.15; 'container.': 0.16; 'github,': 0.16; 'github:': 0.16; 'namespace.': 0.16; 'received:mail- oi0-x22e.google.com': 0.16; 'refactoring': 0.16; 'release:': 0.16; 'systematic': 0.16; 'templating': 0.16; 'config': 0.18; 'script.': 0.18; 'skip:` 20': 0.18; 'changes': 0.20; 'compilation': 0.22; 'constant': 0.22; 'names.': 0.22; 'skip:` 10': 0.22; 'symbolic': 0.22; 'programming': 0.23; 'properties': 0.24; 'message- id:@mail.gmail.com': 0.25; 'header:In-Reply-To:1': 0.26; 'appear': 0.26; 'error.': 0.26; 'pieces': 0.27; 'installation': 0.28; "i'm": 0.28; 'looks': 0.29; 'command-line': 0.29; 'mail:': 0.29; 'notation': 0.29; 'respects': 0.29; 'symbols': 0.29; 'unified': 0.29; 'wraps': 0.29; 'announce': 0.29; 'supported': 0.29; 'errors': 0.30; 'work.': 0.31; 'url:python': 0.31; 'next': 0.32; 'received:google.com': 0.32; 'fixed': 0.33; 'displayed': 0.33; 'interaction': 0.33; 'specify': 0.33; 'run': 0.34; 'release': 0.35; 'class': 0.35; 'url:org': 0.36; '8bit%:4': 0.36; 'subject:: ': 0.36; '8bit%:15': 0.37; 'thanks': 0.37; 'available.': 0.37; 'files': 0.37; 'skip:p 20': 0.38; 'skip:i 20': 0.39; 'to:addr:python.org': 0.39; 'proto:https': 0.40; 'received:io': 0.40; 'received:psf.io': 0.40; 'your': 0.60; 'email addr:gmail.com': 0.62; 'different': 0.62; 'details': 0.62; '8bit%:46': 0.63; 'skip:n 10': 0.63; '8bit%:38': 0.66; 'skip:\xc2 10': 0.67; 'below.': 0.67; 'special': 0.71; 'to:addr:python- announce-list': 0.71; 'url:17': 0.71; 'improved': 0.76; 'score': 0.76; 'music': 0.78; 'iterative': 0.84; 'notes,': 0.84; 'proofread': 0.84; 'score.': 0.84; 'trevor': 0.84; 'typographic': 0.84; 'you\xc2\xa0': 0.84; 'taught': 0.97 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:references:in-reply-to:from:date:message-id:subject:to; bh=+MXxpG3XJtHXlbFWPbPTWo2WweibjkuJRZZZI8Umf+M=; b=BbCvUe/T8mNlbCBnhiBFnDTgPIqvamvLIKxqzgOzJJ4Lspr0lW3YuJtnzTD38qJVNb tsfmhNY6UXzv79ZoiwDSPICYYmxJ9cz1CYfN1Wv+wcHs+IkNROryhYEj8RkLK4vyo8un Y9rlFgv/cVur0k5Oz/xMU8HVEuPRMFID6wmU8SuP3fwlMa9vHcVK7oi2oqNngdfYUIAw fOsCk9AAW/TAZijmKuATD+uacjYmSHCcS+SNneAmWsfYBBv9fzuo+MsZu0WX6y+j/8jZ /KvvPFS1c2Es0cyKlA6q9Wjokwxre0H0qPzsrJjg+YX5ICgdwVS70PofFD54oK2LnRZi +ezQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to; bh=+MXxpG3XJtHXlbFWPbPTWo2WweibjkuJRZZZI8Umf+M=; b=XzRedmUetf7jn0tSfDdNI0CvccAPwyhByAddBl72zG3MZj+tPuNO5+gRbwd9WOQkDg bM0YVIwM6H9r0fLEFNVRtBq2v2GDCSOVNQ/B/sltEim9z0epdgjwB2x4q4V7jvGXidxy OH8thsr43T148hFOZtTFEFcGsbArTzKsUwwM4KEKTXAZi+hknIZnmuKjMLE9WnvR4v+H kUZl1OA2d0oCA7ty+zg7h2eqHgb6EXRlmya2bAt8GMR2sc9FJjEfJJPLHdTlPXi6HLV9 7sW1mUuUG9LyEGlhWdnoNQDxzZnh1s+L6DxToaGoZkNGh8X94eZfw2PBfF3yPAegejEP Gwww== X-Gm-Message-State: ABUngvfLl7FuuNBnOImk2pxudhIlfWNXdAA7Z5kSCq9BXSGwj2vkFc3m4QrvJHR8ujyL9m7IH9/+vRcmePmf2w== X-Received: by 10.157.6.170 with SMTP id 39mr2172712otx.60.1477332626132; Mon, 24 Oct 2016 11:10:26 -0700 (PDT) In-Reply-To: X-Mailman-Approved-At: Tue, 25 Oct 2016 08:53:18 -0400 X-Content-Filtered-By: Mailman/MimeDel 2.1.23 X-BeenThere: python-announce-list@python.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: Announcement-only list for the Python programming language List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-Mailman-Original-Message-ID: X-Mailman-Original-References: Xref: csiph.com comp.lang.python.announce:2290 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, yo= u 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 9 Details of the new release appear below. ------------ ## Improvements - [#740] Proofread =E2=80=98For beginners=E2=80=99 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=C3=B1o for his constant and patient organization. ------------ For installation instructions, see http://abjad.mbrsi.org/installation.html= . We hope you enjoy! Trevor Ba=C4=8Da * mail: trevorbaca@gmail.com * home: http://www.trevorbaca.com/ Josiah Wolf Oberholtzer * mail: josiah.oberholtzer@gmail.com * home: http://josiahwolfoberholtzer.com