ANN: Abjad 2.19

2016-10-22 Thread 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.

- 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 ‘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 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


ANN: Abjad 2.18

2016-07-08 Thread josiah oberholtzer
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
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


ANN: Abjad 2.17

2016-04-25 Thread josiah oberholtzer
Dear friends,

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

Details of the new release appear below.



## Improvements:

- Abjad's documentation has seen extensive work, including:

  - a new theme based off of https://github.com/snide/sphinx_rtd_theme
  - crisp SVG Graphviz output for all class lineage graphs
  - expandable image thumbnails
  - a score gallery page showing notation examples from many scores created
with Abjad: http://abjad.mbrsi.org/gallery.html
  - revised installation instructions
  - virtually all code examples in the docs are now interpreted via the
`abjad-book` Sphinx extension, guaranteeing correctness
  - many enhancements to Abjad's Sphinx extension

- A new `PackageGitCommitToken` class for embedding Python package version
  information in LilyPond files as comments.

- A new `IterationAgent.by_timeline_and_logical_tie()` method.

- A provisional collection of new classes in `lilypondnametools` for
  object-modeling various LilyPond entities: `LilyPondGrob`,
  `LilyPondGrobInterface`, `LilyPondContext` and `LilyPondEngraver`.

- Abjad now supports PyPy, in addition to Python 2.7 and Python 3.3+.

## Changes:

- Abjad's dependencies have been separated into `standard`, `development`
and
  `ipython`. See our installation docs for details.

- Abjad's IPython extension now uses `timidity` instead of `ffmpeg` and
  `fluidsynth` to embed audio output from calls to `play()`. OSX users can
  install `timidity` via HomeBrew.

- `GraphvizEdge.__call__()` has been removed in favor of explicit
  `.attach(node_one, node_two)` and `.detach()` methods.

- `sievetools` functionality has been merged into the classes housed in
  `patterntools`.

- All `labeltools` functionality has been migrated into the
  `agentools.LabelAgent` class.

- `LilyPondFile` properties such as `paper_size`, `includes`, etc. are now
  immutable. Set them during instantiation. See the API example for details:
  http://abjad.mbrsi.org/api/tools/lilypondfiletools/LilyPondFile.html

- `TimeSignature` can now only be instantiated from a pair, such as `(3,
4)`:
  `TimeSignature((3, 4))`.

## Bugfixes:

- `GraphvizGraph` instances can now be copied with edges intact.

- `Markup` now properly quotes strings containing `#` symbols.



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


Re: trill spanner and bass clef mark interfering; parenthesized noteheads on every notehead of tie; full width trill spanners

2012-11-15 Thread josiah oberholtzer
Hi Jeff!

I can answer question #1, but not the others:

You need the \clef to happen before the \pitchedTrill, like so:

\new Staff {
\clef bass
\pitchedTrill
c'1 ~ \startTrillSpan b'
c'1 \stopTrillSpan
}

Getting the \clef above the \pitchedTrill command is going to be tricky,
but I'm sure we can figure that one out somehow.

Cheers


On Tue, Nov 13, 2012 at 8:25 PM, Jeffrey Trevino jeffrey.trevi...@gmail.com
 wrote:

 Hi there,

 Three trill questions for you experts:

 1) I'm having trouble spanning some notes with a trill spanner when the
 first spanned note has a bass clef mark attached and the trill spanner has
 a specified pitch in parentheses --

 When my staff looks like,

 \new Staff {
 \pitchedTrill
 \clef bass
 c'1 ~ \startTrillSpan b'
 c'1 \stopTrillSpan
 }

 , I get a b whole note followed by a c whole note, without a trill.
 But when my staff looks like,

 \new Staff {
 \pitchedTrill
 c'1 ~ \startTrillSpan b'
 c'1 \stopTrillSpan

 , everything seems to be working fine. What am I doing wrong here?

 2) How can I parenthesize my specified pitch by every notehead in a tie
 chain, if my trill spanner spans multiple noteheads? The current output
 puts the parenthesized notehead at the first notehead only.

 3) How can I get the trill spanner to draw the squiggly line to the right
 through the full spatial duration of the note? Should I use proportional
 notation? Or maybe I can set something to do this like I can with full
 tuplet bracket width?

 baffled as usual,
 Jeff

 --
 《〠》】〶【〖〠〗〶〛〷〚
 Jeff Treviño
 PhD Candidate in Music Composition
 @ the University of California, San Diego
 〖〠〗〶〛〷〚《〠》】〶
 Skype: jeffreytrevino
 E-mail: jeffrey.trev...@gmail.com
 〚《〠》】〶【〖〠〗〶〛〷
 9310H Redwood Dr.
 La Jolla, CA 92037
 USA
 〖〠〗〶〛〷〚《〠》】〶【
 http://www.jeffreytrevino.com/

 ___
 lilypond-user mailing list
 lilypond-user@gnu.org
 https://lists.gnu.org/mailman/listinfo/lilypond-user


___
lilypond-user mailing list
lilypond-user@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-user