StaffPosition

class pitchtools.StaffPosition(number=0)

Staff position.

>>> import abjad

Initializes staff position at middle line of staff:

>>> abjad.StaffPosition(0)
StaffPosition(0)

Initializes staff position one space below middle line of staff:

>>> abjad.StaffPosition(-1)
StaffPosition(-1)

Initializes staff position one line below middle line of staff:

>>> abjad.StaffPosition(-2)
StaffPosition(-2)

Initializes from other staff position:

>>> staff_position = abjad.StaffPosition(-2)
>>> abjad.StaffPosition(staff_position)
StaffPosition(-2)

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

Bases

Attribute summary

number Gets staff position number.
to_pitch([clef]) Makes named pitch from staff position and clef.
__copy__(*arguments) Copies Abjad value object.
__eq__(argument) Is true when argument is a staff position with the same number as this staff position.
__format__([format_specification]) Formats Abjad object.
__ge__(other[, NotImplemented]) Return a >= b.
__gt__(other[, NotImplemented]) Return a > b.
__hash__() Hashes staff position.
__le__(other[, NotImplemented]) Return a <= b.
__lt__(argument) Is true when staff position is less than argument.
__ne__(argument) Is true when Abjad object does not equal argument.
__repr__() Gets interpreter representation of Abjad object.
__str__() Gets string representation of staff position.

Read-only properties

StaffPosition.number

Gets staff position number.

>>> abjad.StaffPosition(-2).number
-2

Returns number.

Methods

StaffPosition.to_pitch(clef=None)

Makes named pitch from staff position and clef.

From absolute staff position:

>>> for n in range(-6, 6):
...     staff_position = abjad.StaffPosition(n)
...     pitch = staff_position.to_pitch()
...     message = '{!s}\t{}'.format(staff_position, pitch)
...     print(message)
StaffPosition(-6)       d
StaffPosition(-5)       e
StaffPosition(-4)       f
StaffPosition(-3)       g
StaffPosition(-2)       a
StaffPosition(-1)       b
StaffPosition(0)        c'
StaffPosition(1)        d'
StaffPosition(2)        e'
StaffPosition(3)        f'
StaffPosition(4)        g'
StaffPosition(5)        a'

Treble clef:

>>> clef = abjad.Clef('treble')
>>> for n in range(-6, 6):
...     staff_position = abjad.StaffPosition(n)
...     pitch = staff_position.to_pitch(clef=clef)
...     message = '{!s}\t{}'.format(staff_position, pitch)
...     print(message)
StaffPosition(-6)       c'
StaffPosition(-5)       d'
StaffPosition(-4)       e'
StaffPosition(-3)       f'
StaffPosition(-2)       g'
StaffPosition(-1)       a'
StaffPosition(0)        b'
StaffPosition(1)        c''
StaffPosition(2)        d''
StaffPosition(3)        e''
StaffPosition(4)        f''
StaffPosition(5)        g''

Bass clef:

>>> clef = abjad.Clef('bass')
>>> for n in range(-6, 6):
...     staff_position = abjad.StaffPosition(n)
...     pitch = staff_position.to_pitch(clef=clef)
...     message = '{!s}\t{}'.format(staff_position, pitch)
...     print(message)
StaffPosition(-6)       e,
StaffPosition(-5)       f,
StaffPosition(-4)       g,
StaffPosition(-3)       a,
StaffPosition(-2)       b,
StaffPosition(-1)       c
StaffPosition(0)        d
StaffPosition(1)        e
StaffPosition(2)        f
StaffPosition(3)        g
StaffPosition(4)        a
StaffPosition(5)        b

Alto clef:

>>> clef = abjad.Clef('alto')
>>> for n in range(-6, 6):
...     staff_position = abjad.StaffPosition(n)
...     pitch = staff_position.to_pitch(clef=clef)
...     message = '{!s}\t{}'.format(staff_position, pitch)
...     print(message)
StaffPosition(-6)       d
StaffPosition(-5)       e
StaffPosition(-4)       f
StaffPosition(-3)       g
StaffPosition(-2)       a
StaffPosition(-1)       b
StaffPosition(0)        c'
StaffPosition(1)        d'
StaffPosition(2)        e'
StaffPosition(3)        f'
StaffPosition(4)        g'
StaffPosition(5)        a'

Returns new named pitch.

Special methods

(AbjadValueObject).__copy__(*arguments)

Copies Abjad value object.

Returns new Abjad value object.

StaffPosition.__eq__(argument)

Is true when argument is a staff position with the same number as this staff position. Otherwise false.

>>> staff_position_1 = abjad.StaffPosition(-2)
>>> staff_position_2 = abjad.StaffPosition(-2)
>>> staff_position_3 = abjad.StaffPosition(0)
>>> staff_position_1 == staff_position_1
True
>>> staff_position_1 == staff_position_2
True
>>> staff_position_1 == staff_position_3
False
>>> staff_position_2 == staff_position_1
True
>>> staff_position_2 == staff_position_2
True
>>> staff_position_2 == staff_position_3
False
>>> staff_position_3 == staff_position_1
False
>>> staff_position_3 == staff_position_2
False
>>> staff_position_3 == staff_position_3
True

Returns true or false.

(AbjadObject).__format__(format_specification='')

Formats Abjad object.

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

Returns string.

StaffPosition.__ge__(other, NotImplemented=NotImplemented)

Return a >= b. Computed by @total_ordering from (not a < b).

StaffPosition.__gt__(other, NotImplemented=NotImplemented)

Return a > b. Computed by @total_ordering from (not a < b) and (a != b).

StaffPosition.__hash__()

Hashes staff position.

Returns integer.

StaffPosition.__le__(other, NotImplemented=NotImplemented)

Return a <= b. Computed by @total_ordering from (a < b) or (a == b).

StaffPosition.__lt__(argument)

Is true when staff position is less than argument.

>>> staff_position_1 = abjad.StaffPosition(-2)
>>> staff_position_2 = abjad.StaffPosition(-2)
>>> staff_position_3 = abjad.StaffPosition(0)
>>> staff_position_1 < staff_position_1
False
>>> staff_position_1 < staff_position_2
False
>>> staff_position_1 < staff_position_3
True
>>> staff_position_2 < staff_position_1
False
>>> staff_position_2 < staff_position_2
False
>>> staff_position_2 < staff_position_3
True
>>> staff_position_3 < staff_position_1
False
>>> staff_position_3 < staff_position_2
False
>>> staff_position_3 < staff_position_3
False

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.

StaffPosition.__str__()

Gets string representation of staff position.

>>> str(abjad.StaffPosition(-2))
'StaffPosition(-2)'

Returns string.