The ‘Interval’ class¶
-
class
music_essentials.interval.Interval(interval_type, size)¶ Representation of an interval (i.e., gap) between notes.
-
NAMED_INTERVAL_TYPES= ('M', 'm', 'P', 'dim', 'aug')¶ Explicit interval types supported - major, minor, diminished, augmented.
-
VALID_INTERVAL_TYPES= ('dim1', 'P1', 'aug1', 'dim2', 'm2', 'aug2', 'M2', 'dim3', 'm3', 'M3', 'aug3', 'dim4', 'P4', 'aug4', 'dim5', 'P5', 'aug5', 'dim6', 'm6', 'M6', 'aug6', 'dim7', 'm7', 'M7', 'aug7')¶ List of valid intervals up to (but not including) a perfect octave.
Compound intervals are formed/processed internally by adding perfect octaves to these valid interval types.
Inclues:
'dim1'/'P1'/'aug1': diminished/perfect/augmented unison'dim2'/'m2'/'M2'/'aug2': diminished/minor/major/augmented second'dim3'/'m3'/'M3'/'aug3': diminished/minor/major/augmented third'dim4'/'P4'/'aug4': diminished/perfect/augmented fourth'dim5'/'P5'/'aug5': diminished/perfect/augmented fifth'dim6'/'m6'/'M6'/'aug6': diminished/minor/major/augmented sixth'dim7'/'m7'/'M7'/'aug7': diminished/minor/major/augmented seventh
-
__init__(interval_type, size)¶ Create a new Interval.
- Args:
- interval_type : str
- The type of interval. Should be one of
NAMED_INTERVAL_TYPES. - distance : int
- The size of the interval. Should be positive.
- Returns:
Interval- A new interval of the given type and size.
- Raises:
- ValueError:
- If an invalid interval type, size, or combination of type and size is provided.
- TypeError:
- If the interval type is not a string, or size is not an integer.
- Examples:
>>> i = Interval('M', 3) >>> print(i) M4 >>> i = Interval('dim', 13) >>> print(i) dim13 >>> i = Interval('i', 6) ValueError: Unsupported interval type specified: i >>> i = Interval('m', -1) ValueError: Expected interval distance to be positive, got -1 >>> i = Interval('M', 5) ValueError: Impossible interval specified: M5
-
classmethod
from_interval_string(interval_string)¶ Create a new Interval.
Processes the interval string then uses the constructor
__init__()- Args:
- interval_string : str
- A string representing the interval to create. Should be in the form:
<interval type><size>
The interval type should be one of
NAMED_INTERVAL_TYPES.The size of the interval should be positive.
- Returns:
Interval- A new interval of the given type and size.
- Raises:
- ValueError:
- If an invalid interval type, size, or combination of type and size is provided.
- TypeError:
- If the interval string is not a string.
- Examples:
>>> i = Interval.from_interval_string('M3') >>> print(i) M4 >>> i = Interval.from_interval_string('dim13') >>> print(i) dim13 >>> i = Interval.from_interval_string('i6') ValueError: Unsupported interval type specified: i >>> i = Interval.from_interval_string('m-1') ValueError: Expected interval distance to be positive, got -1 >>> i = Interval.from_interval_string('M5') ValueError: Impossible interval specified: M5
-
__str__()¶ Create a string representation of the interval in the form
<interval type><size>Can be used as an interval string argument for
from_interval_string().- Examples:
>>> i = Interval.from_interval_string('m7') >>> print(i) m7
-