Duplication

class sequencetools.Duplication(counts=None, indices=None, period=None)

Duplication operator.

>>> operator_ = sequencetools.Duplication(counts=2, period=4)
>>> print(format(operator_))
sequencetools.Duplication(
    counts=2,
    period=4,
    )

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.AbjadValueObject.AbjadValueObject" [color=1, group=0, label=AbjadValueObject, shape=box]; "abjad.tools.abctools.AbjadObject.AbjadObject" -> "abjad.tools.abctools.AbjadValueObject.AbjadValueObject"; "abjad.tools.abctools.AbjadObject.AbstractBase" -> "abjad.tools.abctools.AbjadObject.AbjadObject"; } subgraph cluster_sequencetools { graph [label=sequencetools]; "abjad.tools.sequencetools.Duplication.Duplication" [color=black, fontcolor=white, group=2, label=<<B>Duplication</B>>, shape=box, style="filled, rounded"]; } subgraph cluster_builtins { graph [label=builtins]; "builtins.object" [color=2, group=1, label=object, shape=box]; } "abjad.tools.abctools.AbjadValueObject.AbjadValueObject" -> "abjad.tools.sequencetools.Duplication.Duplication"; "builtins.object" -> "abjad.tools.abctools.AbjadObject.AbstractBase"; }

Bases

Attribute summary

counts Gets counts of duplication.
indices Gets indices of duplication.
period Gets period of duplication.
__call__(expr) Calls rotation on expr.
__copy__(\*args) Copies Abjad value object.
__eq__(expr) Is true when all initialization values of Abjad value object equal the initialization values of expr.
__format__([format_specification]) Formats Abjad object.
__hash__() Hashes Abjad value object.
__ne__(expr) Is true when Abjad object does not equal expr.
__repr__() Gets interpreter representation of Abjad object.

Read-only properties

Duplication.counts

Gets counts of duplication.

>>> operator_ = sequencetools.Duplication(counts=1, period=3)
>>> operator_.counts
1

Returns integer or none.

Duplication.indices

Gets indices of duplication.

>>> operator_ = sequencetools.Duplication(
...     counts=1,
...     indices=(0, -1),
...     )
>>> operator_.indices
(0, -1)

Returns integer or none.

Duplication.period

Gets period of duplication.

>>> operator_ = sequencetools.Duplication(counts=1, period=3)
>>> operator_.period
3

Returns integer or none.

Special methods

Duplication.__call__(expr)

Calls rotation on expr.

Example 1. Duplicates once without period.

>>> operator_ = sequencetools.Duplication(counts=1)
>>> numbers = [1, 2, 3, 4]
>>> operator_(numbers)
[1, 2, 3, 4, 1, 2, 3, 4]

Example 2. Duplicates twice without period.

>>> operator_ = sequencetools.Duplication(counts=2)
>>> pitch_classes = pitchtools.PitchClassSegment([0, 1, 4, 7])
>>> operator_(pitch_classes)
PitchClassSegment([0, 1, 4, 7, 0, 1, 4, 7, 0, 1, 4, 7])

Example 3. Duplicates periodically.

>>> operator_ = sequencetools.Duplication(counts=1, period=3)
>>> pitches = pitchtools.PitchSegment("c' d' e' f' g' a' b' c''")
>>> for pitch in operator_(pitches):
...     pitch
...
NamedPitch("c'")
NamedPitch("d'")
NamedPitch("e'")
NamedPitch("c'")
NamedPitch("d'")
NamedPitch("e'")
NamedPitch("f'")
NamedPitch("g'")
NamedPitch("a'")
NamedPitch("f'")
NamedPitch("g'")
NamedPitch("a'")
NamedPitch("b'")
NamedPitch("c''")
NamedPitch("b'")
NamedPitch("c''")

Example 4. Duplicate indices.

>>> operator_ = sequencetools.Duplication(
...     counts=1,
...     indices=(0, -1),
...     )
>>> pitch_classes = pitchtools.PitchClassSegment([0, 1, 4, 7])
>>> operator_(pitch_classes)
PitchClassSegment([0, 0, 1, 4, 7, 7])

Example 5. Duplicate indices periodically.

>>> operator_ = sequencetools.Duplication(
...     counts=1,
...     indices=(0,),
...     period=2,
...     )
>>> pitch_classes = pitchtools.PitchClassSegment([0, 1, 4, 7, 9])
>>> operator_(pitch_classes)
PitchClassSegment([0, 0, 1, 4, 4, 7, 9, 9])

Example 6. Duplicate indices periodically with different counts.

>>> operator_ = sequencetools.Duplication(
...     counts=(1, 2),
...     indices=(0,),
...     period=2,
...     )
>>> pitch_classes = pitchtools.PitchClassSegment([0, 1, 4, 7, 9])
>>> operator_(pitch_classes)
PitchClassSegment([0, 0, 1, 4, 4, 4, 7, 9, 9])

Example 7. Cyclic counts.

>>> operator_ = sequencetools.Duplication(counts=(0, 1, 2, 3))
>>> pitch_classes = pitchtools.PitchClassSegment([0, 1, 4, 7, 9])
>>> operator_(pitch_classes)
PitchClassSegment([0, 1, 1, 4, 4, 4, 7, 7, 7, 7, 9])

Returns new object with type equal to that of expr.

(AbjadValueObject).__copy__(*args)

Copies Abjad value object.

Returns new Abjad value object.

(AbjadValueObject).__eq__(expr)

Is true when all initialization values of Abjad value object equal the initialization values of expr.

Returns true or false.

(AbjadObject).__format__(format_specification='')

Formats Abjad object.

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

Returns string.

(AbjadValueObject).__hash__()

Hashes Abjad value object.

Returns integer.

(AbjadObject).__ne__(expr)

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

Returns true or false.

(AbjadObject).__repr__()

Gets interpreter representation of Abjad object.

Returns string.