AfterGraceContainer

class scoretools.AfterGraceContainer(music=None)

After grace container.

>>> import abjad

After grace notes:

>>> voice = abjad.Voice("c'4 d'4 e'4 f'4")
>>> string = '#(define afterGraceFraction (cons 15 16))'
>>> literal = abjad.LilyPondLiteral(string)
>>> abjad.attach(literal, voice[0])
>>> notes = [abjad.Note("c'16"), abjad.Note("d'16")]
>>> after_grace_container = abjad.AfterGraceContainer(notes)
>>> abjad.attach(after_grace_container, voice[1])
>>> show(voice) 

LilyPond positions after grace notes at a point 3/4 of the way after the note they follow. The resulting spacing is usually too loose.

Customize aftterGraceFraction as shown above.

After grace notes are played at the very end of the note they follow.

Use after grace notes when you need to end a piece of music with grace notes.

After grace notes do not subclass grace notes; but acciacatura containers and appoggiatura containers do subclass grace notes.

Fill grace containers with notes, rests or chords.

Attach after grace containers to notes, rests or chords.

Lineage

digraph InheritanceGraph { graph [background=transparent, bgcolor=transparent, color=lightslategrey, fontname=Arial, outputorder=edgesfirst, overlap=prism, penwidth=2, rankdir=LR, root="__builtin__.object", splines=spline, style="dotted, rounded", truecolor=true]; node [colorscheme=pastel19, fontname=Arial, fontsize=12, penwidth=2, style="filled, rounded"]; edge [color=lightsteelblue2, penwidth=2]; subgraph cluster_abctools { graph [label=abctools]; "abjad.tools.abctools.AbjadObject.AbjadObject" [color=1, group=0, label=AbjadObject, shape=box]; "abjad.tools.abctools.AbjadObject.AbstractBase" [color=1, group=0, label=AbstractBase, shape=box]; "abjad.tools.abctools.AbjadObject.AbstractBase" -> "abjad.tools.abctools.AbjadObject.AbjadObject"; } subgraph cluster_scoretools { graph [label=scoretools]; "abjad.tools.scoretools.AfterGraceContainer.AfterGraceContainer" [color=black, fontcolor=white, group=2, label=<<B>AfterGraceContainer</B>>, shape=box, style="filled, rounded"]; "abjad.tools.scoretools.Component.Component" [color=3, group=2, label=Component, shape=oval, style=bold]; "abjad.tools.scoretools.Container.Container" [color=3, group=2, label=Container, shape=box]; "abjad.tools.scoretools.Component.Component" -> "abjad.tools.scoretools.Container.Container"; "abjad.tools.scoretools.Container.Container" -> "abjad.tools.scoretools.AfterGraceContainer.AfterGraceContainer"; } subgraph cluster_builtins { graph [label=builtins]; "builtins.object" [color=2, group=1, label=object, shape=box]; } "abjad.tools.abctools.AbjadObject.AbjadObject" -> "abjad.tools.scoretools.Component.Component"; "builtins.object" -> "abjad.tools.abctools.AbjadObject.AbstractBase"; }

Bases

Attribute summary

append(component) Appends component to container.
extend(argument) Extends container with argument.
index(component) Returns index of component in container.
insert(i, component[, fracture_spanners]) Inserts component at index i in container.
is_simultaneous Is true when container is simultaneous.
name Gets and sets name of container.
pop([i]) Pops component from container at index i.
remove(component) Removes component from container.
reverse() Reverses contents of container.
__contains__(argument) Is true when argument appears in container.
__copy__(*arguments) Copies component with indicators but without children of component or spanners attached to component.
__delitem__(i) Deletes components(s) at index i in container.
__eq__(argument) Is true when ID of argument equals ID of Abjad object.
__format__([format_specification]) Formats component.
__getitem__(argument) Gets item or slice identified by argument.
__graph__([spanner]) Graphviz graph representation of container.
__hash__() Hashes Abjad object.
__illustrate__() Illustrates component.
__iter__() Iterates container.
__len__() Gets number of items in container.
__mul__(n) Copies component n times and detaches spanners.
__ne__(argument) Is true when Abjad object does not equal argument.
__repr__() Gets interpreter representation of leaf.
__rmul__(n) Copies component n times and detach spanners.
__setitem__(i, argument) Sets container i equal to argument.

Read/write properties

(Container).is_simultaneous

Is true when container is simultaneous. Otherwise false.

Gets simultaneity status of container:

>>> container = abjad.Container()
>>> container.append(abjad.Voice("c'8 d'8 e'8"))
>>> container.append(abjad.Voice('g4.'))
>>> show(container) 
>>> container.is_simultaneous is None
True

Sets simultaneity status of container:

>>> container = abjad.Container()
>>> container.append(abjad.Voice("c'8 d'8 e'8"))
>>> container.append(abjad.Voice('g4.'))
>>> show(container) 
>>> container.is_simultaneous = True
>>> show(container) 

Defaults to false.

Set to true or false.

Returns true or false.

(Container).name

Gets and sets name of container.

Gets container name:

>>> container = abjad.Container("c'4 d'4 e'4 f'4")
>>> show(container) 
>>> container.name is None
True

Sets container name:

>>> container = abjad.Container(
...     "c'4 d'4 e'4 f'4",
...     name='Special',
...     )
>>> show(container) 
>>> container.name
'Special'

Container name does not appear in LilyPond output:

>>> f(container)
{
    c'4
    d'4
    e'4
    f'4
}

Defaults to none.

Set to string or none.

Returns string or none.

Methods

(Container).append(component)

Appends component to container.

Appends note to container:

>>> container = abjad.Container("c'4 ( d'4 f'4 )")
>>> show(container) 
>>> container.append(abjad.Note("e'4"))
>>> show(container) 

Returns none.

(Container).extend(argument)

Extends container with argument.

Extends container with three notes:

>>> container = abjad.Container("c'4 ( d'4 f'4 )")
>>> show(container) 
>>> notes = [abjad.Note("e'32"), abjad.Note("d'32"), abjad.Note("e'16")]
>>> container.extend(notes)
>>> show(container) 

Returns none.

(Container).index(component)

Returns index of component in container.

Gets index of last element in container:

>>> container = abjad.Container("c'4 d'4 f'4 e'4")
>>> show(container) 
>>> note = container[-1]
>>> note
Note("e'4")
>>> container.index(note)
3

Returns nonnegative integer.

(Container).insert(i, component, fracture_spanners=False)

Inserts component at index i in container.

Inserts note. Does not fracture spanners:

>>> container = abjad.Container([])
>>> container.extend("fs16 cs' e' a'")
>>> container.extend("cs''16 e'' cs'' a'")
>>> container.extend("fs'16 e' cs' fs")
>>> slur = abjad.Slur(direction=Down)
>>> abjad.attach(slur, container[:])
>>> show(container) 
>>> container.insert(-4, abjad.Note("e'4"), fracture_spanners=False)
>>> show(container) 

Inserts note. Fractures spanners:

>>> container = abjad.Container([])
>>> container.extend("fs16 cs' e' a'")
>>> container.extend("cs''16 e'' cs'' a'")
>>> container.extend("fs'16 e' cs' fs")
>>> slur = abjad.Slur(direction=Down)
>>> abjad.attach(slur, container[:])
>>> show(container) 
>>> container.insert(-4, abjad.Note("e'4"), fracture_spanners=True)
>>> show(container) 

Returns none.

(Container).pop(i=-1)

Pops component from container at index i.

Pops last element from container:

>>> container = abjad.Container("c'4 ( d'4 f'4 ) e'4")
>>> show(container) 
>>> container.pop()
Note("e'4")
>>> show(container) 

Returns component.

(Container).remove(component)

Removes component from container.

Removes note from container:

>>> container = abjad.Container("c'4 ( d'4 f'4 ) e'4")
>>> show(container) 
>>> note = container[2]
>>> note
Note("f'4")
>>> container.remove(note)
>>> show(container) 

Returns none.

(Container).reverse()

Reverses contents of container.

Reverses staff:

>>> staff = abjad.Staff("c'8 [ d'8 ] e'8 ( f'8 )")
>>> show(staff) 
>>> staff.reverse()
>>> show(staff) 

Returns none.

Special methods

(Container).__contains__(argument)

Is true when argument appears in container. Otherwise false.

Returns true or false.

(Component).__copy__(*arguments)

Copies component with indicators but without children of component or spanners attached to component.

Returns new component.

(Container).__delitem__(i)

Deletes components(s) at index i in container.

Deletes first tuplet in voice:

>>> voice = abjad.Voice()
>>> voice.append(abjad.Tuplet((2, 3), "c'4 d'4 e'4"))
>>> voice.append(abjad.Tuplet((2, 3), "e'4 d'4 c'4"))
>>> leaves = abjad.select(voice).by_leaf()
>>> abjad.attach(abjad.Slur(), leaves)
>>> show(voice) 
>>> tuplet_1 = voice[0]
>>> del(voice[0])

First tuplet no longer appears in voice:

>>> show(voice) 
>>> abjad.inspect(voice).is_well_formed()
True

First tuplet is no longer slurred but is still well-formed:

>>> show(tuplet_1) 
>>> abjad.inspect(tuplet_1).is_well_formed()
True

Withdraws component(s) from crossing spanners.

Preserves spanners that component(s) cover(s).

Returns none.

(AbjadObject).__eq__(argument)

Is true when ID of argument equals ID of Abjad object. Otherwise false.

Returns true or false.

(Component).__format__(format_specification='')

Formats component.

Set format_specification to ‘’, ‘lilypond’ or ‘storage’.

Returns string.

(Container).__getitem__(argument)

Gets item or slice identified by argument.

Traverses top-level items only.

Returns component.

(Container).__graph__(spanner=None, **keywords)

Graphviz graph representation of container.

Returns Graphviz graph.

(AbjadObject).__hash__()

Hashes Abjad object.

Required to be explicitly redefined on Python 3 if __eq__ changes.

Returns integer.

(Component).__illustrate__()

Illustrates component.

Returns LilyPond file.

(Container).__iter__()

Iterates container.

Abjad containers are iterables:

>>> import collections
>>> container = abjad.Container()
>>> isinstance(container, collections.Iterable)
True

Abjad containers are not sequences:

>>> import collections
>>> container = abjad.Container()
>>> isinstance(container, collections.Sequence)
False

Yields container elements.

Returns generator.

(Container).__len__()

Gets number of items in container.

Returns nonnegative integer.

(Component).__mul__(n)

Copies component n times and detaches spanners.

Returns list of new components.

(AbjadObject).__ne__(argument)

Is true when Abjad object does not equal argument. Otherwise false.

Returns true or false.

(Component).__repr__()

Gets interpreter representation of leaf.

Returns string.

(Component).__rmul__(n)

Copies component n times and detach spanners.

Returns list of new components.

(Container).__setitem__(i, argument)

Sets container i equal to argument. Finds spanners that dominate self[i] and children of self[i]. Replaces contents at self[i] with ‘argument’. Reattaches spanners to new contents. Always leaves score tree in tact.

Returns none.