Rotation

digraph InheritanceGraph { graph [bgcolor=transparent, color=lightsteelblue2, fontname=Arial, fontsize=10, outputorder=edgesfirst, overlap=prism, penwidth=2, rankdir=LR, splines=spline, style="dashed, rounded", truecolor=true]; node [colorscheme=pastel19, fontname=Arial, fontsize=10, height=0, penwidth=2, shape=box, style="filled, rounded", width=0]; edge [color=lightslategrey, penwidth=1]; subgraph "cluster_abjad.pitch" { graph [label="abjad.pitch"]; node [color=1]; "abjad.pitch.Rotation.Rotation" [URL="../api/abjad/pitch/Rotation.html#abjad.pitch.Rotation.Rotation", color=black, fontcolor=white, label=Rotation, target=_top]; } subgraph "cluster_abjad.system" { graph [label="abjad.system"]; node [color=2]; "abjad.system.AbjadObject.AbjadObject" [URL="../api/abjad/pitch/../system/AbjadObject.html#abjad.system.AbjadObject.AbjadObject", label="Abjad\nObject", target=_top]; "abjad.system.AbjadValueObject.AbjadValueObject" [URL="../api/abjad/pitch/../system/AbjadValueObject.html#abjad.system.AbjadValueObject.AbjadValueObject", label="Abjad\nValue\nObject", target=_top]; "abjad.system.AbjadObject.AbjadObject" -> "abjad.system.AbjadValueObject.AbjadValueObject"; } subgraph cluster_builtins { graph [label=builtins]; node [color=3]; "builtins.object" [URL="https://docs.python.org/3.6/library/functions.html#object", label=object, target=_top]; } "abjad.system.AbjadValueObject.AbjadValueObject" -> "abjad.pitch.Rotation.Rotation"; "builtins.object" -> "abjad.system.AbjadObject.AbjadObject"; }

class abjad.pitch.Rotation.Rotation(*, n=0, period=None, stravinsky=None)

Rotation operator.

>>> abjad.Rotation()
Rotation(n=0)
>>> abjad.Rotation(n=1)
Rotation(n=1)

Object model of the twelve-tone rotation operator.


Attributes Summary

__add__ Composes rotation and operator.
__call__ Calls rotation on argument.
__radd__ Right-addition not defined on rotation.
__str__ Gets string representation of operator.
n Gets index of rotation.
period Gets period of rotation.
stravinsky Is true when rotation uses Stravinsky-style back-transposition to zero.

Special methods

__add__(operator)

Composes rotation and operator.

Example segment:

>>> items = [0, 2, 4, 5]
>>> segment = abjad.PitchClassSegment(items=items)
>>> abjad.show(segment) 

Example operators:

>>> rotation = abjad.Rotation(n=-1)
>>> transposition = abjad.Transposition(n=3)

Transposition followed by rotation:

>>> operator = rotation + transposition
>>> str(operator)
'r-1T3'
>>> segment_ = operator(segment)
>>> abjad.show(segment_) 

Same as above because rotation and transposition commute:

>>> operator = transposition + rotation
>>> str(operator)
'T3r-1'
>>> segment_ = operator(segment)
>>> abjad.show(segment_) 

Returns compound operator:

>>> abjad.f(operator)
abjad.CompoundOperator(
    operators=[
        abjad.Rotation(
            n=-1,
            ),
        abjad.Transposition(
            n=3,
            ),
        ],
    )
__call__(argument)

Calls rotation on argument.

Rotates pitch classes:

>>> rotation = abjad.Rotation(n=1)
>>> pitch_classes = abjad.PitchClassSegment([0, 1, 4, 7])
>>> rotation(pitch_classes)
PitchClassSegment([7, 0, 1, 4])

Rotates pitch classes with Stravinsky-style back-transposition to zero:

>>> rotation = abjad.Rotation(n=1, stravinsky=True)
>>> pitch_classes = abjad.PitchClassSegment([0, 1, 4, 7])
>>> rotation(pitch_classes)
PitchClassSegment([0, 5, 6, 9])

Does not rotate single pitches or pitch-classes:

>>> rotation = abjad.Rotation(n=1)
>>> pitch_class = abjad.NumberedPitchClass(6)
>>> rotation(pitch_class)
NumberedPitchClass(6)

Periodic rotation:

Todo

Deprecated.

>>> rotation = abjad.Rotation(n=1, period=3)
>>> pitches = abjad.PitchSegment("c' d' e' f' g' a' b' c''")
>>> rotation(pitches)
PitchSegment("e' c' d' a' f' g' c'' b'")

Stravinsky-style periodic rotation:

Todo

Deprecated.

>>> rotation = abjad.Rotation(
...     n=1,
...     period=3,
...     stravinsky=True,
...     )
>>> pitches = abjad.PitchSegment("c' d' e' f' g' a' b' c''")
>>> rotation(pitches)
PitchSegment("c' af bf f' df' ef' b' as'")

Returns new object with type equal to that of argument.

(AbjadValueObject).__copy__(*arguments)

Copies Abjad value object.

Returns new Abjad value object.

(AbjadValueObject).__eq__(argument)

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

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.

__radd__(operator)

Right-addition not defined on rotation.

>>> abjad.Rotation().__radd__(abjad.Rotation())
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/Users/josiah/Source/github.com/Abjad/abjad/abjad/pitch/Rotation.py", line 226, in __radd__
    raise NotImplementedError(message)
NotImplementedError: right-addition not defined on Rotation.

Raises not implemented error.

(AbjadObject).__repr__()

Gets interpreter representation of Abjad object.

Returns string.

__str__()

Gets string representation of operator.

>>> str(abjad.Rotation())
'r0'
>>> str(abjad.Rotation(n=1))
'r1'
>>> str(abjad.Rotation(stravinsky=True))
'rs0'
>>> str(abjad.Rotation(n=1, stravinsky=True))
'rs1'

Read-only properties

n

Gets index of rotation.

>>> rotation = abjad.Rotation()
>>> rotation.n
0
>>> rotation = abjad.Rotation(n=2)
>>> rotation.n
2

Returns integer.

period

Gets period of rotation.

Todo

Deprecated.

>>> rotation = abjad.Rotation(n=2, period=3)
>>> rotation.period
3

Returns integer or none.

stravinsky

Is true when rotation uses Stravinsky-style back-transposition to zero.

>>> rotation = abjad.Rotation(n=2, stravinsky=False)
>>> rotation.stravinsky
False

Returns true or false.