Tone rows can be thought of as a very restrictive type of ordered pitch class collection in which all possible elements are present. As a result, there are many methods for sets that are meaningless, and therefore withheld from the ToneRow class, such as .ordered() and the methods for adding/removing pitch classes.
The following are some methods which ToneRow objects inherit from a parent class common to sets (SetRowBase), but are in no way meaningful to tone rows: * pitches, pcs, uo_pitches, uo_pcs - Tone rows are always ordered pitch class collections, so these methods are irrelavent to the API and only exist for consistency internally. * multiset, ordered - These are overridden in ToneRow to do nothing
The following are some methods that have a different meaning or use with ToneRow objects: * Wheras the x_rotations (where x is t, i, m, or mi) methods are thought of as rotations when used with sets, here they constitue the T, I, M, and MI matrices * default_m - The prime form is not meaningful in tone rows (they are always the aggregate) but the default_m is used to determine the m used by the M and MI matrices, as well as any TTO operations containing M/MI on the row.
The following are methods that are unique to ToneRow objects:
- swap(a, b) - Given indices a and b, swap the PC’s in the tone row that are in these positions.
- P - Prime form of the row
- I - Inversion of the row
- R - Retrograde of the row
- RI - Retrograde inversion of the row
- M - Mm of the row (m is supplied by default_m)
- MI - MmI of the row
- RM - Retrograde of the Mm of the row
- RMI - Retrograde of the MmI of the row