MultipartBeam

class spannertools.MultipartBeam(beam_rests=False, direction=None, overrides=None)

Multipart beam.

Beams together everything that can be beamed and ignores everything else.

>>> staff = Staff("c'8 d'8 e'4 f'8 g'8 r4")
>>> beam = spannertools.MultipartBeam()
>>> attach(beam, staff[:])
>>> set_(staff).auto_beaming = False
>>> show(staff) 
>>> staff = Staff("c'8 r8 d'8 r8 f'8 g'8 r4")
>>> beam = spannertools.MultipartBeam()
>>> attach(beam, staff[:])
>>> set_(staff).auto_beaming = False
>>> show(staff) 

Avoids rests.

Avoids large-duration notes.

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_spannertools { graph [label=spannertools]; "abjad.tools.spannertools.Beam.Beam" [color=3, group=2, label=Beam, shape=box]; "abjad.tools.spannertools.MultipartBeam.MultipartBeam" [color=black, fontcolor=white, group=2, label=<<B>MultipartBeam</B>>, shape=box, style="filled, rounded"]; "abjad.tools.spannertools.Spanner.Spanner" [color=3, group=2, label=Spanner, shape=box]; "abjad.tools.spannertools.Beam.Beam" -> "abjad.tools.spannertools.MultipartBeam.MultipartBeam"; "abjad.tools.spannertools.Spanner.Spanner" -> "abjad.tools.spannertools.Beam.Beam"; } subgraph cluster_builtins { graph [label=builtins]; "builtins.object" [color=2, group=1, label=object, shape=box]; } "abjad.tools.abctools.AbjadObject.AbjadObject" -> "abjad.tools.spannertools.Spanner.Spanner"; "builtins.object" -> "abjad.tools.abctools.AbjadObject.AbstractBase"; }

Bases

Attribute summary

beam_rests Is true when beam should include rests.
components Gets components in spanner.
direction Gets direction.
name Gets spanner name.
overrides Gets overrides.
__contains__(argument) Is true when spanner contains argument.
__copy__(*arguments) Copies spanner.
__eq__(argument) Is true when ID of argument equals ID of Abjad object.
__format__([format_specification]) Formats Abjad object.
__getitem__(argument) Gets item or slice identified by argument.
__hash__() Hashes Abjad object.
__len__() Gets number of components in spanner.
__lt__(argument) Is true when spanner is less than argument.
__ne__(argument) Is true when Abjad object does not equal argument.
__repr__() Gets interpreter representation of Abjad object.

Read-only properties

MultipartBeam.beam_rests

Is true when beam should include rests. Otherwise false.

Without beamed rests:

>>> staff = Staff("c'8 d'8 r8 f'8 g'8 r4.")
>>> set_(staff).auto_beaming = False
>>> beam = spannertools.MultipartBeam()
>>> attach(beam, staff[:])
>>> show(staff) 
>>> f(staff)
\new Staff \with {
    autoBeaming = ##f
} {
    c'8 [
    d'8 ]
    r8
    f'8 [
    g'8 ]
    r4.
}

Abjad beams no rests.

LilyPond beams no rests.

With beamed rests:

>>> staff = Staff("c'8 d'8 r8 f'8 g'8 r4.")
>>> set_(staff).auto_beaming = False
>>> beam = spannertools.MultipartBeam(beam_rests=True)
>>> attach(beam, staff[:])
>>> show(staff) 
>>> f(staff)
\new Staff \with {
    autoBeaming = ##f
} {
    c'8 [
    d'8
    r8
    f'8
    g'8
    r4. ]
}

Abjad beams all rests.

LilyPond beams only small-duration rests.

With beamed rests:

>>> staff = Staff("c'8 d'8 r4. f'8 g'8 r8")
>>> set_(staff).auto_beaming = False
>>> beam = spannertools.MultipartBeam(beam_rests=True)
>>> attach(beam, staff[:])
>>> show(staff) 
>>> f(staff)
\new Staff \with {
    autoBeaming = ##f
} {
    c'8 [
    d'8
    r4.
    f'8
    g'8
    r8 ]
}

Abjad beams all rests.

LilyPond beams only small-duration rests.

With beamed skips:

>>> staff = Staff("c'8 d'8 s4. f'8 g'8 s8")
>>> set_(staff).auto_beaming = False
>>> beam = spannertools.MultipartBeam(beam_rests=True)
>>> attach(beam, staff[:])
>>> show(staff) 
>>> f(staff)
\new Staff \with {
    autoBeaming = ##f
} {
    c'8 [
    d'8
    s4.
    f'8
    g'8
    s8 ]
}

Abjad beams all skips.

LilyPond beams all (internal) skips.

Defaults to false.

Set to true or false.

Returns true of false.

(Spanner).components

Gets components in spanner.

Returns selection.

(Beam).direction

Gets direction.

Defaults to none.

Set to up, down or none.

Returns up, down or none.

(Spanner).name

Gets spanner name.

Returns string.

(Spanner).overrides

Gets overrides.

Returns dict.

Special methods

(Spanner).__contains__(argument)

Is true when spanner contains argument. Otherwise false.

Returns true or false.

(Spanner).__copy__(*arguments)

Copies spanner.

Does not copy spanner components.

Returns new spanner.

(AbjadObject).__eq__(argument)

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

Returns true or false.

(AbjadObject).__format__(format_specification='')

Formats Abjad object.

Set format_specification to ‘’ or ‘storage’. Interprets ‘’ equal to ‘storage’.

Returns string.

(Spanner).__getitem__(argument)

Gets item or slice identified by argument.

Returns component.

(AbjadObject).__hash__()

Hashes Abjad object.

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

Returns integer.

(Spanner).__len__()

Gets number of components in spanner.

Returns nonnegative integer.

(Spanner).__lt__(argument)

Is true when spanner is less than argument. Otherwise false.

Trivial comparison to allow doctests to work.

Returns true or false.

(AbjadObject).__ne__(argument)

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

Returns true or false.

(AbjadObject).__repr__()

Gets interpreter representation of Abjad object.

Returns string.