spannertools.DuratedComplexBeamSpanner

Inheritance diagram of abjad.tools.spannertools.DuratedComplexBeamSpanner.DuratedComplexBeamSpanner.DuratedComplexBeamSpanner

class abjad.tools.spannertools.DuratedComplexBeamSpanner.DuratedComplexBeamSpanner.DuratedComplexBeamSpanner(components=None, durations=None, span=1, lone=False, direction=None)[source]

Abjad durated complex beam spanner:

staff = Staff("c'16 d'16 e'16 f'16")
durations = [Duration(1, 8), Duration(1, 8)]
beam = spannertools.DuratedComplexBeamSpanner(staff[:], durations, 1)
f(staff)
\new Staff {
    \set stemLeftBeamCount = #0
    \set stemRightBeamCount = #2
    c'16 [
    \set stemLeftBeamCount = #2
    \set stemRightBeamCount = #1
    d'16
    \set stemLeftBeamCount = #1
    \set stemRightBeamCount = #2
    e'16
    \set stemLeftBeamCount = #2
    \set stemRightBeamCount = #0
    f'16 ]
}

Beam all beamable leaves in spanner explicitly.

Group leaves in spanner according to durations.

Span leaves between duration groups according to span.

Return durated complex beam spanner.

Read-only Properties

DuratedComplexBeamSpanner.components

Return read-only tuple of components in spanner.

abjad> voice = Voice("c'8 d'8 e'8 f'8")
abjad> spanner = spannertools.Spanner(voice[:2])
abjad> spanner.components
(Note("c'8"), Note("d'8"))

Changed in version 1.1: Now returns an (immutable) tuple instead of a (mutable) list.

Note

Inherited from spannertools.Spanner

DuratedComplexBeamSpanner.duration_in_seconds

Sum of duration of all leaves in spanner, in seconds.

Note

Inherited from spannertools.Spanner

DuratedComplexBeamSpanner.leaves

Return read-only tuple of leaves in spanner.

abjad> voice = Voice("c'8 d'8 e'8 f'8")
abjad> spanner = spannertools.Spanner(voice[:2])
abjad> spanner.leaves
(Note("c'8"), Note("d'8"))

Changed in version 1.1: Now returns an (immutable) tuple instead of a (mutable) list.

Note

When dealing with large, complex scores accessing this attribute can take some time. Best to make a local copy with leaves = spanner.leaves first. Or use spanner- specific iteration tools.

Note

Inherited from spannertools.Spanner

DuratedComplexBeamSpanner.offset

New in version 1.1.

Return read-only reference to spanner offset interface.

Spanner offset interface implements start and stop attributes.

abjad> voice = Voice("c'8 d'8 e'8 f'8")
abjad> spanner = spannertools.Spanner(voice[2:])
abjad> spanner
Spanner(e'8, f'8)
abjad> spanner._offset.start
Offset(1, 4)
abjad> spanner._offset.stop
Offset(1, 2)

Return duration.

Note

Inherited from spannertools.Spanner

DuratedComplexBeamSpanner.override

LilyPond grob override component plug-in.

Note

Inherited from spannertools.Spanner

DuratedComplexBeamSpanner.preprolated_duration

Sum of preprolated duration of all components in spanner.

Note

Inherited from spannertools.Spanner

DuratedComplexBeamSpanner.prolated_duration

Sum of prolated duration of all components in spanner.

Note

Inherited from spannertools.Spanner

DuratedComplexBeamSpanner.set

LilyPond context setting component plug-in.

Note

Inherited from spannertools.Spanner

DuratedComplexBeamSpanner.written_duration

Sum of written duration of all components in spanner.

Note

Inherited from spannertools.Spanner

Read/write Properties

DuratedComplexBeamSpanner.direction

Note

Inherited from spannertools._DirectedSpanner

DuratedComplexBeamSpanner.durations[source]

Get spanner leaf group durations:

abjad> staff = Staff("c'16 d'16 e'16 f'16")
abjad> durations = [Duration(1, 8), Duration(1, 8)]
abjad> beam = spannertools.DuratedComplexBeamSpanner(staff[:], durations)
abjad> beam.durations
[Duration(1, 8), Duration(1, 8)]

Set spanner leaf group durations:

abjad> staff = Staff("c'16 d'16 e'16 f'16")
abjad> durations = [Duration(1, 8), Duration(1, 8)]
abjad> beam = spannertools.DuratedComplexBeamSpanner(staff[:], durations)
abjad> beam.durations = [Duration(1, 4)]
abjad> beam.durations
[Duration(1, 4)]

Set iterable.

DuratedComplexBeamSpanner.lone

Beam lone leaf and force beam nibs to left:

abjad> note = Note("c'16")
abjad> beam = spannertools.ComplexBeamSpanner([note], lone = 'left')
abjad> f(note)
\set stemLeftBeamCount = #2
\set stemRightBeamCount = #0
c'16 [ ]

Beam lone leaf and force beam nibs to right:

abjad> note = Note("c'16")
abjad> beam = spannertools.ComplexBeamSpanner([note], lone = 'right')
abjad> f(note)
\set stemLeftBeamCount = #0
\set stemRightBeamCount = #2
c'16 [ ]

Beam lone leaf and force beam nibs to both left and right:

abjad> note = Note("c'16")
abjad> beam = spannertools.ComplexBeamSpanner([note], lone = 'both')
abjad> f(note)
\set stemLeftBeamCount = #2
\set stemRightBeamCount = #2
c'16 [ ]

Beam lone leaf and accept LilyPond default nibs at both left and right:

abjad> note = Note("c'16")
abjad> beam = spannertools.ComplexBeamSpanner([note], lone = True)
abjad> f(note)
\set stemLeftBeamCount = #2
\set stemRightBeamCount = #2
c'16 [ ]

Do not beam lone leaf:

abjad> note = Note("c'16")
abjad> beam = spannertools.ComplexBeamSpanner([note], lone = False)
abjad> f(note)
c'16

Set to 'left', 'right', 'both', true or false as shown above.

Ignore this setting when spanner contains more than one leaf.

Note

Inherited from spannertools.ComplexBeamSpanner

DuratedComplexBeamSpanner.span[source]

Get top-level beam count:

abjad> staff = Staff("c'16 d'16 e'16 f'16")
abjad> durations = [Duration(1, 8), Duration(1, 8)]
abjad> beam = spannertools.DuratedComplexBeamSpanner(staff[:], durations, 1)
abjad> beam.span
1

Set top-level beam count:

abjad> staff = Staff("c'16 d'16 e'16 f'16")
abjad> durations = [Duration(1, 8), Duration(1, 8)]
abjad> beam = spannertools.DuratedComplexBeamSpanner(staff[:], durations, 1)
abjad> beam.span = 2
abjad> beam.span
2

Set nonnegative integer.

Methods

DuratedComplexBeamSpanner.append(component)

Add component to right of spanner.

abjad> voice = Voice("c'8 d'8 e'8 f'8")
abjad> spanner = spannertools.Spanner(voice[:2])
abjad> spanner
Spanner(c'8, d'8)
abjad> spanner.append(voice[2])
abjad> spanner
Spanner(c'8, d'8, e'8)

Return none.

Note

Inherited from spannertools.Spanner

DuratedComplexBeamSpanner.append_left(component)

Add component to left of spanner.

abjad> voice = Voice("c'8 d'8 e'8 f'8")
abjad> spanner = spannertools.Spanner(voice[2:])
abjad> spanner
Spanner(e'8, f'8)
abjad> spanner.append_left(voice[1])
abjad> spanner
Spanner(d'8, e'8, f'8)

Return none.

Note

Inherited from spannertools.Spanner

DuratedComplexBeamSpanner.clear()

Remove all components from spanner:

abjad> voice = Voice("c'8 d'8 e'8 f'8")
abjad> spanner = spannertools.Spanner(voice[:])
abjad> spanner
Spanner(c'8, d'8, e'8, f'8)
abjad> spanner.clear()
abjad> spanner
Spanner()

Return none.

Note

Inherited from spannertools.Spanner

DuratedComplexBeamSpanner.extend(components)

Add iterable components to right of spanner:

abjad> voice = Voice("c'8 d'8 e'8 f'8")
abjad> spanner = spannertools.Spanner(voice[:2])
abjad> spanner
Spanner(c'8, d'8)
abjad> spanner.extend(voice[2:])
abjad> spanner
Spanner(c'8, d'8, e'8, f'8)

Return none.

Note

Inherited from spannertools.Spanner

DuratedComplexBeamSpanner.extend_left(components)

Add iterable components to left of spanner:

abjad> voice = Voice("c'8 d'8 e'8 f'8")
abjad> spanner = spannertools.Spanner(voice[2:])
abjad> spanner
Spanner(e'8, f'8)
abjad> spanner.extend_left(voice[:2])
abjad> spanner
Spanner(c'8, d'8, e'8, f'8)

Return none.

Note

Inherited from spannertools.Spanner

DuratedComplexBeamSpanner.fracture(i, direction='both')

Fracture spanner at direction of component at index i.

Valid values for direction are 'left', 'right' and 'both'.

Return original, left and right spanners.

abjad> voice = Voice("c'8 d'8 e'8 f'8")
abjad> beam = spannertools.BeamSpanner(voice[:])
abjad> beam
BeamSpanner(c'8, d'8, e'8, f'8)
abjad> beam.fracture(1, direction = 'left')
(BeamSpanner(c'8, d'8, e'8, f'8), BeamSpanner(c'8), BeamSpanner(d'8, e'8, f'8))
abjad> print voice.format
\new Voice {
    c'8 [ ]
    d'8 [
    e'8
    f'8 ]
}

Return tuple.

Note

Inherited from spannertools.Spanner

DuratedComplexBeamSpanner.fuse(spanner)

Fuse contiguous spanners.

Return new spanner.

abjad> voice = Voice("c'8 d'8 e'8 f'8")
abjad> left_beam = spannertools.BeamSpanner(voice[:2])
abjad> right_beam = spannertools.BeamSpanner(voice[2:])
abjad> print voice.format
\new Voice {
    c'8 [
    d'8 ]
    e'8 [
    f'8 ]
}
abjad> left_beam.fuse(right_beam)
[(BeamSpanner(c'8, d'8), BeamSpanner(e'8, f'8), BeamSpanner(c'8, d'8, e'8, f'8))]
abjad> print voice.format
\new Voice {
    c'8 [
    d'8
    e'8
    f'8 ]
}

Todo

Return (immutable) tuple instead of (mutable) list.

Note

Inherited from spannertools.Spanner

DuratedComplexBeamSpanner.index(component)

Return nonnegative integer index of component in spanner.

abjad> voice = Voice("c'8 d'8 e'8 f'8")
abjad> spanner = spannertools.Spanner(voice[2:])
abjad> spanner
Spanner(e'8, f'8)
abjad> spanner.index(voice[-2])
0

Return nonnegative integer.

Note

Inherited from spannertools.Spanner

DuratedComplexBeamSpanner.pop()

Remove and return rightmost component in spanner.

abjad> voice = Voice("c'8 d'8 e'8 f'8")
abjad> spanner = spannertools.Spanner(voice[:])
abjad> spanner
Spanner(c'8, d'8, e'8, f'8)
abjad> spanner.pop()
Note("f'8")
abjad> spanner
Spanner(c'8, d'8, e'8)

Return component.

Note

Inherited from spannertools.Spanner

DuratedComplexBeamSpanner.pop_left()

Remove and return leftmost component in spanner.

abjad> voice = Voice("c'8 d'8 e'8 f'8")
abjad> spanner = spannertools.Spanner(voice[:])
abjad> spanner
Spanner(c'8, d'8, e'8, f'8)
abjad> spanner.pop_left()
Note("c'8")
abjad> spanner
Spanner(d'8, e'8, f'8)

Return component.

Note

Inherited from spannertools.Spanner

Special Methods

DuratedComplexBeamSpanner.__contains__(expr)

Note

Inherited from spannertools.Spanner

DuratedComplexBeamSpanner.__delattr__()

x.__delattr__(‘name’) <==> del x.name

Note

Inherited from __builtin__.object

DuratedComplexBeamSpanner.__eq__(arg)

True when id(self) equals id(arg).

Return boolean.

Note

Inherited from abctools.AbjadObject

DuratedComplexBeamSpanner.__ge__(arg)

Abjad objects by default do not implement this method.

Raise exception.

Note

Inherited from abctools.AbjadObject

DuratedComplexBeamSpanner.__getitem__(expr)

Note

Inherited from spannertools.Spanner

DuratedComplexBeamSpanner.__gt__(arg)

Abjad objects by default do not implement this method.

Raise exception

Note

Inherited from abctools.AbjadObject

DuratedComplexBeamSpanner.__hash__() <==> hash(x)

Note

Inherited from __builtin__.object

DuratedComplexBeamSpanner.__le__(arg)

Abjad objects by default do not implement this method.

Raise exception.

Note

Inherited from abctools.AbjadObject

DuratedComplexBeamSpanner.__len__()

Note

Inherited from spannertools.Spanner

DuratedComplexBeamSpanner.__lt__(other)

Trivial comparison to allow doctests to work.

Note

Inherited from spannertools.Spanner

DuratedComplexBeamSpanner.__ne__(arg)

True when id(self) does not equal id(arg).

Return boolean.

Note

Inherited from abctools.AbjadObject

DuratedComplexBeamSpanner.__repr__()

Note

Inherited from spannertools.Spanner

DuratedComplexBeamSpanner.__setattr__()

x.__setattr__(‘name’, value) <==> x.name = value

Note

Inherited from __builtin__.object

DuratedComplexBeamSpanner.__str__() <==> str(x)

Note

Inherited from __builtin__.object

Table Of Contents

This Page