TimespanCollection¶
- class evans.consort.TimespanCollection.TimespanCollection(timespans=None)[source]¶
A mutable always-sorted collection of timespans.
>>> timespans = ( ... abjad.Timespan(0, 3), ... abjad.Timespan(1, 3), ... abjad.Timespan(1, 2), ... abjad.Timespan(2, 5), ... abjad.Timespan(6, 9), ... ) >>> timespan_collection = evans.TimespanCollection(timespans)
Attributes Summary
Is true if this timespan collection contains timespan.
Gets timespan at index i.
Iterates timespans in this timespan collection.
Gets length of this timespan collection.
Sets timespans at index i to new.
Delete material that intersects timespan:
Finds timespans overlapping timespan.
Finds timespans overlapping offset.
Gets simultaneity at offset.
Gets start offst in this timespan collection after offset.
Gets start offst in this timespan collection before offset.
Inserts timespans into this timespan collection.
Iterates simultaneities in this timespan collection.
Iterates simultaneities in this timespan collection in groups of n.
Removes timespans from this timespan collection.
Special methods
- __contains__(timespan)[source]¶
Is true if this timespan collection contains timespan. Otherwise false.
>>> timespans = ( ... abjad.Timespan(0, 3), ... abjad.Timespan(1, 3), ... abjad.Timespan(1, 2), ... abjad.Timespan(2, 5), ... abjad.Timespan(6, 9), ... ) >>> timespan_collection = evans.TimespanCollection(timespans) >>> timespans[0] in timespan_collection True
>>> abjad.Timespan(-1, 100) in timespan_collection False
Returns boolean.
-
(
AbjadObject
).__eq__(argument)¶ Is true when ID of argument equals ID of Abjad object. 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.
- __getitem__(i)[source]¶
Gets timespan at index i.
>>> timespans = ( ... abjad.Timespan(0, 3), ... abjad.Timespan(1, 3), ... abjad.Timespan(1, 2), ... abjad.Timespan(2, 5), ... abjad.Timespan(6, 9), ... ) >>> timespan_collection = evans.TimespanCollection(timespans) >>> timespan_collection[-1] Timespan(Offset((6, 1)), Offset((9, 1)))
>>> for timespan in timespan_collection[:3]: ... timespan ... Timespan(Offset((0, 1)), Offset((3, 1))) Timespan(Offset((1, 1)), Offset((2, 1))) Timespan(Offset((1, 1)), Offset((3, 1)))
Returns timespan or timespans.
-
(
AbjadObject
).__hash__()¶ Hashes Abjad object. Required to be explicitly redefined on Python 3 if __eq__ changes. Returns integer.
- __iter__()[source]¶
Iterates timespans in this timespan collection.
>>> timespans = ( ... abjad.Timespan(0, 3), ... abjad.Timespan(1, 3), ... abjad.Timespan(1, 2), ... abjad.Timespan(2, 5), ... abjad.Timespan(6, 9), ... ) >>> timespan_collection = evans.TimespanCollection(timespans) >>> for timespan in timespan_collection: ... timespan ... Timespan(Offset((0, 1)), Offset((3, 1))) Timespan(Offset((1, 1)), Offset((2, 1))) Timespan(Offset((1, 1)), Offset((3, 1))) Timespan(Offset((2, 1)), Offset((5, 1))) Timespan(Offset((6, 1)), Offset((9, 1)))
Returns generator.
- __len__()[source]¶
Gets length of this timespan collection.
>>> timespans = ( ... abjad.Timespan(0, 3), ... abjad.Timespan(1, 3), ... abjad.Timespan(1, 2), ... abjad.Timespan(2, 5), ... abjad.Timespan(6, 9), ... ) >>> timespan_collection = evans.TimespanCollection(timespans) >>> len(timespan_collection) 5
Returns integer.
-
(
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.
- __setitem__(i, new)[source]¶
Sets timespans at index i to new.
>>> timespans = ( ... abjad.Timespan(0, 3), ... abjad.Timespan(1, 3), ... abjad.Timespan(1, 2), ... abjad.Timespan(2, 5), ... abjad.Timespan(6, 9), ... ) >>> timespan_collection = evans.TimespanCollection(timespans) >>> timespan_collection[:3] = [abjad.Timespan(100, 200)]
Returns none.
-
(
AbjadObject
).__str__()¶ Return str(self).
- __sub__(timespan)[source]¶
Delete material that intersects timespan:
>>> timespan_collection = evans.TimespanCollection( ... [ ... abjad.Timespan(0, 16), ... abjad.Timespan(5, 12), ... abjad.Timespan(-2, 8), ... ] ... ) >>> timespan = abjad.Timespan(5, 10) >>> result = timespan_collection - timespan >>> print(abjad.storage(timespan_collection)) evans.TimespanCollection( [ abjad.Timespan( start_offset=abjad.Offset((-2, 1)), stop_offset=abjad.Offset((5, 1)), ), abjad.Timespan( start_offset=abjad.Offset((0, 1)), stop_offset=abjad.Offset((5, 1)), ), abjad.Timespan( start_offset=abjad.Offset((10, 1)), stop_offset=abjad.Offset((12, 1)), ), abjad.Timespan( start_offset=abjad.Offset((10, 1)), stop_offset=abjad.Offset((16, 1)), ), ] )
Operates in place and returns timespan collection.
Methods
- find_timespans_intersecting_timespan(timespan)[source]¶
Finds timespans overlapping timespan.
>>> timespans = ( ... abjad.Timespan(0, 3), ... abjad.Timespan(1, 3), ... abjad.Timespan(1, 2), ... abjad.Timespan(2, 5), ... abjad.Timespan(6, 9), ... ) >>> timespan_collection = evans.TimespanCollection(timespans) >>> timespan = abjad.Timespan(2, 4) >>> for x in timespan_collection.find_timespans_intersecting_timespan(timespan): ... x ... Timespan(Offset((0, 1)), Offset((3, 1))) Timespan(Offset((1, 1)), Offset((3, 1))) Timespan(Offset((2, 1)), Offset((5, 1)))
Returns tuple of 0 or more timespans.
- find_timespans_overlapping_offset(offset)[source]¶
Finds timespans overlapping offset.
>>> timespans = ( ... abjad.Timespan(0, 3), ... abjad.Timespan(1, 3), ... abjad.Timespan(1, 2), ... abjad.Timespan(2, 5), ... abjad.Timespan(6, 9), ... ) >>> timespan_collection = evans.TimespanCollection(timespans) >>> for x in timespan_collection.find_timespans_overlapping_offset(1.5): ... x ... Timespan(Offset((0, 1)), Offset((3, 1))) Timespan(Offset((1, 1)), Offset((2, 1))) Timespan(Offset((1, 1)), Offset((3, 1)))
Returns tuple of 0 or more timespans.
- get_simultaneity_at(offset)[source]¶
Gets simultaneity at offset.
>>> timespans = ( ... abjad.Timespan(0, 3), ... abjad.Timespan(1, 3), ... abjad.Timespan(1, 2), ... abjad.Timespan(2, 5), ... abjad.Timespan(6, 9), ... ) >>> timespan_collection = evans.TimespanCollection(timespans) >>> timespan_collection.get_simultaneity_at(1) <TimespanSimultaneity(1 <<3>>)>
>>> timespan_collection.get_simultaneity_at(6.5) <TimespanSimultaneity(6.5 <<1>>)>
- get_start_offset_after(offset)[source]¶
Gets start offst in this timespan collection after offset.
>>> timespans = ( ... abjad.Timespan(0, 3), ... abjad.Timespan(1, 3), ... abjad.Timespan(1, 2), ... abjad.Timespan(2, 5), ... abjad.Timespan(6, 9), ... ) >>> timespan_collection = evans.TimespanCollection(timespans) >>> timespan_collection.get_start_offset_after(-1) Offset((0, 1))
>>> timespan_collection.get_start_offset_after(0) Offset((1, 1))
>>> timespan_collection.get_start_offset_after(1) Offset((2, 1))
>>> timespan_collection.get_start_offset_after(2) Offset((6, 1))
>>> timespan_collection.get_start_offset_after(6) is None True
- get_start_offset_before(offset)[source]¶
Gets start offst in this timespan collection before offset.
>>> timespans = ( ... abjad.Timespan(0, 3), ... abjad.Timespan(1, 3), ... abjad.Timespan(1, 2), ... abjad.Timespan(2, 5), ... abjad.Timespan(6, 9), ... ) >>> timespan_collection = evans.TimespanCollection(timespans) >>> timespan_collection.get_start_offset_before(7) Offset((6, 1))
>>> timespan_collection.get_start_offset_before(6) Offset((2, 1))
>>> timespan_collection.get_start_offset_before(2) Offset((1, 1))
>>> timespan_collection.get_start_offset_before(1) Offset((0, 1))
>>> timespan_collection.get_start_offset_before(0) is None True
- insert(timespans)[source]¶
Inserts timespans into this timespan collection.
>>> timespan_collection = evans.TimespanCollection() >>> timespan_collection.insert(abjad.Timespan(1, 3)) >>> timespan_collection.insert( ... ( ... abjad.Timespan(0, 4), ... abjad.Timespan(2, 6), ... ) ... ) >>> for x in timespan_collection: ... x ... Timespan(Offset((0, 1)), Offset((4, 1))) Timespan(Offset((1, 1)), Offset((3, 1))) Timespan(Offset((2, 1)), Offset((6, 1)))
timespans may be a single timespan or an iterable of timespans.
Returns none.
- iterate_simultaneities(reverse=False)[source]¶
Iterates simultaneities in this timespan collection.
>>> timespans = ( ... abjad.Timespan(0, 3), ... abjad.Timespan(1, 3), ... abjad.Timespan(1, 2), ... abjad.Timespan(2, 5), ... abjad.Timespan(6, 9), ... ) >>> timespan_collection = evans.TimespanCollection(timespans) >>> for x in timespan_collection.iterate_simultaneities(): ... x ... <TimespanSimultaneity(0 <<1>>)> <TimespanSimultaneity(1 <<3>>)> <TimespanSimultaneity(2 <<3>>)> <TimespanSimultaneity(6 <<1>>)>
>>> for x in timespan_collection.iterate_simultaneities(reverse=True): ... x ... <TimespanSimultaneity(6 <<1>>)> <TimespanSimultaneity(2 <<3>>)> <TimespanSimultaneity(1 <<3>>)> <TimespanSimultaneity(0 <<1>>)>
Returns generator.
- iterate_simultaneities_nwise(n=3, reverse=False)[source]¶
Iterates simultaneities in this timespan collection in groups of n.
>>> timespans = ( ... abjad.Timespan(0, 3), ... abjad.Timespan(1, 3), ... abjad.Timespan(1, 2), ... abjad.Timespan(2, 5), ... abjad.Timespan(6, 9), ... ) >>> timespan_collection = evans.TimespanCollection(timespans) >>> for x in timespan_collection.iterate_simultaneities_nwise(n=2): ... x ... (<TimespanSimultaneity(0 <<1>>)>, <TimespanSimultaneity(1 <<3>>)>) (<TimespanSimultaneity(1 <<3>>)>, <TimespanSimultaneity(2 <<3>>)>) (<TimespanSimultaneity(2 <<3>>)>, <TimespanSimultaneity(6 <<1>>)>)
>>> for x in timespan_collection.iterate_simultaneities_nwise(n=2, reverse=True): ... x ... (<TimespanSimultaneity(2 <<3>>)>, <TimespanSimultaneity(6 <<1>>)>) (<TimespanSimultaneity(1 <<3>>)>, <TimespanSimultaneity(2 <<3>>)>) (<TimespanSimultaneity(0 <<1>>)>, <TimespanSimultaneity(1 <<3>>)>)
Returns generator.
- remove(timespans)[source]¶
Removes timespans from this timespan collection.
>>> timespans = ( ... abjad.Timespan(0, 3), ... abjad.Timespan(1, 3), ... abjad.Timespan(1, 2), ... abjad.Timespan(2, 5), ... abjad.Timespan(6, 9), ... ) >>> timespan_collection = evans.TimespanCollection(timespans) >>> timespan_collection.remove(timespans[1:-1])
>>> for timespan in timespan_collection: ... timespan ... Timespan(Offset((0, 1)), Offset((3, 1))) Timespan(Offset((6, 1)), Offset((9, 1)))
Read-only properties
- all_offsets¶
- all_start_offsets¶
- all_stop_offsets¶
- earliest_start_offset¶
- earliest_stop_offset¶
- latest_start_offset¶
- latest_stop_offset¶
- start_offset¶
- stop_offset¶