IntervalClassSegment

class pitchtools.IntervalClassSegment(items=None, item_class=None)

Interval-class segment.

Example 1. An interval-class segment:

>>> intervals = 'm2 M10 -aug4 P5'
>>> pitchtools.IntervalClassSegment(intervals)
IntervalClassSegment(['+m2', '+M3', '-aug4', '+P5'])

Example 2. Another interval-class segment:

>>> intervals = 'P4 P5 P11 P12'
>>> pitchtools.IntervalClassSegment(intervals)
IntervalClassSegment(['+P4', '+P5', '+P4', '+P5'])

Returns interval-class segment.

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.AbjadObject.AbstractBase" -> "abjad.tools.abctools.AbjadObject.AbjadObject"; } subgraph cluster_datastructuretools { graph [label=datastructuretools]; "abjad.tools.datastructuretools.TypedCollection.TypedCollection" [color=3, group=2, label=TypedCollection, shape=oval, style=bold]; "abjad.tools.datastructuretools.TypedTuple.TypedTuple" [color=3, group=2, label=TypedTuple, shape=box]; "abjad.tools.datastructuretools.TypedCollection.TypedCollection" -> "abjad.tools.datastructuretools.TypedTuple.TypedTuple"; } subgraph cluster_pitchtools { graph [label=pitchtools]; "abjad.tools.pitchtools.IntervalClassSegment.IntervalClassSegment" [color=black, fontcolor=white, group=3, label=<<B>IntervalClassSegment</B>>, shape=box, style="filled, rounded"]; "abjad.tools.pitchtools.Segment.Segment" [color=4, group=3, label=Segment, shape=oval, style=bold]; "abjad.tools.pitchtools.Segment.Segment" -> "abjad.tools.pitchtools.IntervalClassSegment.IntervalClassSegment"; } subgraph cluster_builtins { graph [label=builtins]; "builtins.object" [color=2, group=1, label=object, shape=box]; } "abjad.tools.abctools.AbjadObject.AbjadObject" -> "abjad.tools.datastructuretools.TypedCollection.TypedCollection"; "abjad.tools.datastructuretools.TypedTuple.TypedTuple" -> "abjad.tools.pitchtools.Segment.Segment"; "builtins.object" -> "abjad.tools.abctools.AbjadObject.AbstractBase"; }

Attribute summary

count(item) Changes item to item.
from_selection(class_, selection[, item_class]) Initialize interval-class segment from component selection:
has_duplicates True if segment contains duplicate items:
index(item) Changes item to item.
is_tertian Is true when all named interval-classes in segment are tertian.
item_class Item class to coerce items into.
items Gets collection items.
__add__(expr) Adds typed tuple to expr.
__contains__(item) Change item to item and return true if item exists in collection.
__eq__(expr) Is true when expr is a typed collection with items that compare equal to those of this typed collection.
__format__([format_specification]) Formats Abjad object.
__getitem__(i) Gets i from type tuple.
__getslice__(start, stop) Gets slice from start to stop in typed tuple.
__hash__() Hashes typed tuple.
__illustrate__(\*\*kwargs) Illustrates segment.
__iter__() Iterates typed collection.
__len__() Length of typed collection.
__mul__(expr) Multiplies typed tuple by expr.
__ne__(expr) Is true when expr is not a typed collection with items equal to this typed collection.
__radd__(expr) Right-adds expr to typed tuple.
__repr__() Gets interpreter representation of Abjad object.
__rmul__(expr) Multiplies expr by typed tuple.
__str__() Gets string representation of segment.

Read-only properties

IntervalClassSegment.has_duplicates

True if segment contains duplicate items:

>>> intervals = 'm2 M3 -aug4 m2 P5'
>>> segment = pitchtools.IntervalClassSegment(intervals)
>>> segment.has_duplicates
True
>>> intervals = 'M3 -aug4 m2 P5'
>>> segment = pitchtools.IntervalClassSegment(intervals)
>>> segment.has_duplicates
False

Returns true or false.

IntervalClassSegment.is_tertian

Is true when all named interval-classes in segment are tertian. Otherwise false:

>>> interval_class_segment = pitchtools.IntervalClassSegment(
...     items=[('major', 3), ('minor', 6), ('major', 6)],
...     item_class=pitchtools.NamedIntervalClass,
...     )
>>> interval_class_segment.is_tertian
True

Returns true or false.

(TypedCollection).item_class

Item class to coerce items into.

(TypedCollection).items

Gets collection items.

Methods

(TypedTuple).count(item)

Changes item to item.

Returns count in collection.

(TypedTuple).index(item)

Changes item to item.

Returns index in collection.

Class & static methods

classmethod IntervalClassSegment.from_selection(class_, selection, item_class=None)

Initialize interval-class segment from component selection:

>>> staff_1 = Staff("c'4 <d' fs' a'>4 b2")
>>> staff_2 = Staff("c4. r8 g2")
>>> selection = select((staff_1, staff_2))
>>> pitchtools.IntervalClassSegment.from_selection(selection)
IntervalClassSegment(['-M2', '-M3', '-m3', '+m7', '+M7', '-P5'])

Returns interval-class segment.

Special methods

(TypedTuple).__add__(expr)

Adds typed tuple to expr.

Returns new typed tuple.

(TypedTuple).__contains__(item)

Change item to item and return true if item exists in collection.

Returns none.

(TypedCollection).__eq__(expr)

Is true when expr is a typed collection with items that compare equal to those of this typed collection. Otherwise false.

Returns true or false.

(AbjadObject).__format__(format_specification='')

Formats Abjad object.

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

Returns string.

(TypedTuple).__getitem__(i)

Gets i from type tuple.

Returns item.

(TypedTuple).__getslice__(start, stop)

Gets slice from start to stop in typed tuple.

Returns new typed tuple.

(TypedTuple).__hash__()

Hashes typed tuple.

Returns integer.

(Segment).__illustrate__(**kwargs)

Illustrates segment.

Returns LilyPond file.

(TypedCollection).__iter__()

Iterates typed collection.

Returns generator.

(TypedCollection).__len__()

Length of typed collection.

Returns nonnegative integer.

(TypedTuple).__mul__(expr)

Multiplies typed tuple by expr.

Returns new typed tuple.

(TypedCollection).__ne__(expr)

Is true when expr is not a typed collection with items equal to this typed collection. Otherwise false.

Returns true or false.

(TypedTuple).__radd__(expr)

Right-adds expr to typed tuple.

(AbjadObject).__repr__()

Gets interpreter representation of Abjad object.

Returns string.

(TypedTuple).__rmul__(expr)

Multiplies expr by typed tuple.

Returns new typed tuple.

(Segment).__str__()

Gets string representation of segment.

Returns string.