PitchOperation

class pitchtools.PitchOperation(operators=None)

Pitch operation.

Example 1. Rotation followed by transposition:

>>> pitch_operation = pitchtools.PitchOperation(
...     operators=(
...         pitchtools.Rotation(1),
...         pitchtools.Transposition(2),
...         ),
...     )
>>> print(format(pitch_operation))
pitchtools.PitchOperation(
    operators=(
        pitchtools.Rotation(
            index=1,
            transpose=True,
            ),
        pitchtools.Transposition(
            index=2,
            ),
        ),
    )
>>> pitch_classes = pitchtools.PitchClassSegment([0, 1, 4, 7])
>>> pitch_operation(pitch_classes)
PitchClassSegment([2, 7, 8, 11])

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_pitchtools { graph [label=pitchtools]; "abjad.tools.pitchtools.PitchOperation.PitchOperation" [color=black, fontcolor=white, group=2, label=<<B>PitchOperation</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.pitchtools.PitchOperation.PitchOperation"; "builtins.object" -> "abjad.tools.abctools.AbjadObject.AbstractBase"; }

Bases

Attribute summary

duplicate([counts, indices, period]) Configures pitch operation to duplicate pitches by counts, with optional indices and period.
invert([axis]) Configures pitch operation to invert pitches by index.
multiply([index]) Configures pitch operation to multiply pitch-classes by index.
operators Gets pitch operators.
retrograde([period]) Configures pitch operation to retrograde pitches.
rotate([index, transpose, period]) Configures pitch operation to rotate pitches by index.
transpose([index]) Configures pitch operation to transpose pitches by index.
__call__(expr) Calls pitch operation 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

PitchOperation.operators

Gets pitch operators.

>>> pitch_operation = pitchtools.PitchOperation()
>>> pitch_operation = pitch_operation.rotate(1)
>>> pitch_operation = pitch_operation.transpose(2)
>>> for operator in pitch_operation.operators:
...     print(format(operator))
...
pitchtools.Rotation(
    index=1,
    transpose=True,
    )
pitchtools.Transposition(
    index=2,
    )

Returns tuple of operators.

Methods

PitchOperation.duplicate(counts=None, indices=None, period=None)

Configures pitch operation to duplicate pitches by counts, with optional indices and period.

>>> pitch_operation = pitchtools.PitchOperation()
>>> pitch_operation = pitch_operation.duplicate(1)
>>> print(format(pitch_operation))
pitchtools.PitchOperation(
    operators=(
        sequencetools.Duplication(
            counts=1,
            ),
        ),
    )

Returns new pitch operation.

PitchOperation.invert(axis=None)

Configures pitch operation to invert pitches by index.

>>> pitch_operation = pitchtools.PitchOperation()
>>> pitch_operation = pitch_operation.invert(2)
>>> print(format(pitch_operation))
pitchtools.PitchOperation(
    operators=(
        pitchtools.Inversion(
            axis=pitchtools.NamedPitch("d'"),
            ),
        ),
    )

Returns new pitch operation.

PitchOperation.multiply(index=1)

Configures pitch operation to multiply pitch-classes by index.

>>> pitch_operation = pitchtools.PitchOperation()
>>> pitch_operation = pitch_operation.multiply(3)
>>> print(format(pitch_operation))
pitchtools.PitchOperation(
    operators=(
        pitchtools.Multiplication(
            index=3,
            ),
        ),
    )

Returns new pitch operation.

PitchOperation.retrograde(period=None)

Configures pitch operation to retrograde pitches.

>>> pitch_operation = pitchtools.PitchOperation()
>>> pitch_operation = pitch_operation.retrograde()
>>> print(format(pitch_operation))
pitchtools.PitchOperation(
    operators=(
        pitchtools.Retrogression(),
        ),
    )

Returns new pitch operation.

PitchOperation.rotate(index=0, transpose=True, period=None)

Configures pitch operation to rotate pitches by index.

>>> pitch_operation = pitchtools.PitchOperation()
>>> pitch_operation = pitch_operation.rotate(-1)
>>> print(format(pitch_operation))
pitchtools.PitchOperation(
    operators=(
        pitchtools.Rotation(
            index=-1,
            transpose=True,
            ),
        ),
    )

Returns new pitch operation.

PitchOperation.transpose(index=0)

Configures pitch operation to transpose pitches by index.

>>> pitch_operation = pitchtools.PitchOperation()
>>> pitch_operation = pitch_operation.transpose(1)
>>> print(format(pitch_operation))
pitchtools.PitchOperation(
    operators=(
        pitchtools.Transposition(
            index=1,
            ),
        ),
    )

Returns new pitch operation.

Special methods

PitchOperation.__call__(expr)

Calls pitch operation on expr.

>>> pitch_classes = pitchtools.PitchClassSegment([0, 1, 4, 7])
>>> pitch_operation(pitch_classes)
PitchClassSegment([2, 7, 8, 11])

Returns new pitch expression.

(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.