pitchtypes.spelled.SpelledInterval

class pitchtypes.spelled.SpelledInterval(value)

Bases: Spelled, AbstractSpelledInterval, Interval, Diatonic, Chromatic

Represents a spelled interval.

__init__(value)

Takes a string consisting of the form -?<quality><generic-size>:<octaves>, e.g. "M6:0", "-m3:0", or "aa2:1", which stand for a major sixth, a minor third down, and a double-augmented ninth, respectively. possible qualities are d (diminished), m (minor), M (major), P (perfect), and a (augmented), where d and a can be repeated.

Parameters:

value – a string or internal numeric representation of the interval

Methods

__init__(value)

Takes a string consisting of the form -?<quality><generic-size>:<octaves>, e.g. "M6:0", "-m3:0", or "aa2:1", which stand for a major sixth, a minor third down, and a double-augmented ninth, respectively.

abs()

For downward intervals, return their upward counterpart, otherwise just return the interval itself.

alteration()

Return the number of semitones by which the interval is altered from its the perfect or major variant.

chromatic_semitone()

Create a chromatic semitone.

compare(other)

Comparison between two spelled intervals according to diatonic ordering.

convert_to(other_type)

create_subtypes()

degree()

Return the "relative scale degree" (0-6) to which the interval points (unison=0, 2nd=1, octave=0, 2nd down=6, etc.).

diatonic_steps()

Return the diatonic steps of the interval (unison=0, 2nd=1, ..., octave=7, ...).

direction()

Returns the direction of the interval (1 = up, 0 = neutral, -1 = down).

embed()

For interval classes, return an embedding into the interval space in a (type-dependent) default octave.

fifths()

Return the position of the interval on the line of fifths.

from_fifths_and_octaves(fifths, octaves)

Create an interval by directly providing its internal fifths and octaves.

from_independent(fifths, octaves)

Create an interval from fifths (interval class) and independent/external octaves.

from_onehot(onehot, fifth_low, octave_low)

Create a spelled interval from a one-hot matrix.

generic()

Return the generic interval, i.e. the number of diatonic steps modulo octave.

generic_interval_class_from_fifths(fifth_steps)

Return the generic interval class corresponding to the given number of fifths.

ic()

Return the interval class that corresponds to this interval.

internal_octaves()

Return the internal octave representation of a pitch, which is dependent on the fifths.

interval_class_from_fifths(fifths[, inverse])

Return the interval class corresponding to the given number of steps along the line of fifths.

interval_quality_from_fifths(fifth_steps)

Return the interval quality (major, minor, perfect, augmented, diminished, doubly-augmented etc) given the number of steps along the line of fifths.

is_step()

Return True if the interval is considered a step, False otherwise.

link_interval_class_type([skip_name_check, ...])

A decorator to link an interval class type to its base type.

link_interval_type([skip_name_check, ...])

A decorator to link an interval type to its base type.

link_pitch_class_type([skip_name_check, ...])

A decorator to link a pitch class type to its base type.

link_pitch_type([skip_name_check, ...])

A decorator to link a pitch type to its base type.

name()

The name of the pitch or interval in string notation

name_check(cls, sub_type, suffix, ...)

Check if sub_type follows the standard naming convention.

octave()

Create a perfect octave.

octaves()

For intervals, return the number of octaves the interval spans.

onehot(fifth_range, octave_range[, dtype])

Returns a one-hot encoding of the interval in fifths (first dimension) and independent octaves (second dimension).

parse_interval(s)

Parse a string as a spelled interval or spelled interval class.

pitch_class_from_fifths(fifth_steps)

Return the pitch class given the number of steps along the line of fifths

semitones()

Return the number of semitones corresponding to the interval.

set_func_attr(sub_type, flags, names, funcs)

Add functions funcs as methods with names to class sub_type, controlled by flags.

steps()

Return the number of diatonic steps corresponding to the interval.

to_class()

Alias for ic(), but also supported by pitch types.

unison()

Create a perfect unison.

Interval

alias of SpelledInterval

IntervalClass

alias of SpelledIntervalClass

Pitch

alias of SpelledPitch

PitchClass

alias of SpelledPitchClass

__abs__()

For downward intervals, return their upward counterpart, otherwise just return the interval itself.

__add__(other)

Returns the sum of two intervals.

__eq__(other)

Return self==value.

__ge__(other, NotImplemented=NotImplemented)

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

__gt__(other, NotImplemented=NotImplemented)

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

__hash__ = None
__le__(other, NotImplemented=NotImplemented)

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

__lt__(other)

Return self<value.

__mul__(other)

Returns an integer multiple of the interval.

__neg__()

Returns the inversion of the interval (same size in the other direction).

__repr__()

Return repr(self).

__rmul__(other)

Returns an integer multiple of the interval.

__setattr__(key, value)

Implement setattr(self, name, value).

__str__()

Return str(self).

__sub__(other)

Returns the difference of two intervals.

__weakref__

list of weak references to the object (if defined)

abs()

For downward intervals, return their upward counterpart, otherwise just return the interval itself.

Returns:

the absolute interval

alteration()

Return the number of semitones by which the interval is altered from its the perfect or major variant. Positive alteration always indicates augmentation, negative alteration indicates diminution (minor or smaller) of the interval. For pitches, return the accidentals (positive=sharps, negative=flats, 0=natural).

Returns:

alteration (integer)

classmethod chromatic_semitone()

Create a chromatic semitone.

Returns:

a1:0

compare(other)

Comparison between two spelled intervals according to diatonic ordering.

Returns 0 if the intervals are equal, 1 if the first interval (self) is greater, and -1 if the second interval (other) is greater.

This method can be indirectly used through binary comparison operators (including ==, < etc.).

Parameters:

other – an interval to compare to (SpelledInterval)

Returns:

-1 / 0 / 1 (integer)

degree()

Return the “relative scale degree” (0-6) to which the interval points (unison=0, 2nd=1, octave=0, 2nd down=6, etc.). For pitches, return the integer that corresponds to the letter (C=0, D=1, …).

Returns:

degree (integer)

diatonic_steps()

Return the diatonic steps of the interval (unison=0, 2nd=1, …, octave=7, …). Respects both direction and octaves.

Returns:

number of diatonic steps (integer)

direction()

Returns the direction of the interval (1 = up, 0 = neutral, -1 = down). Only perfect unisons are considered neutral.

Returns:

-1 / 0 / 1 (integer)

embed()

For interval classes, return an embedding into the interval space in a (type-dependent) default octave. For non-class intervals, return the interval itself.

Returns:

a non-class version of this interval

fifths()

Return the position of the interval on the line of fifths.

Returns:

fifth position (integer)

static from_fifths_and_octaves(fifths, octaves)

Create an interval by directly providing its internal fifths and octaves.

Parameters:
  • fifths – the fifths (= interval class) of the interval (integer)

  • octaves – the internal/dependent octaves of the interval (integer)

Returns:

the resulting interval (SpelledInterval)

static from_independent(fifths, octaves)

Create an interval from fifths (interval class) and independent/external octaves.

Parameters:
  • fifths – the fifth (= interval class) of the interval (integer)

  • octaves – the external/independent octaves the interval spans (integer)

Returns:

the resulting interval (SpelledInterval)

static from_onehot(onehot, fifth_low, octave_low)

Create a spelled interval from a one-hot matrix.

Requires the lower bounds of the fifth and octave range used by the one-hot matrix.

Parameters:
  • onehot – a one-hot matrix representing the interval (numpy array)

  • fifth_low – the lowest fifth expressible in the one-hot matrix

  • octave_low – the lowest octave expressible in the one-hot matrix

Returns:

the resulting interval (SpelledInterval)

generic()

Return the generic interval, i.e. the number of diatonic steps modulo octave. Unlike degree(), the result respects the sign of the interval (unison=0, 2nd up=1, 2nd down=-1).

Returns:

generic interval (integer)

ic()

Return the interval class that corresponds to this interval. If the interval is already an interval class, it is returned itself.

Returns:

the interval’s corresponding interval class

internal_octaves()

Return the internal octave representation of a pitch, which is dependent on the fifths.

Only use this if you know what you are doing.

Returns:

internal/dependent octave (integer)

is_step()

Return True if the interval is considered a step, False otherwise.

Returns:

the stepness of the interval (boolean)

name()

The name of the pitch or interval in string notation

Returns:

the object’s notation name (string)

classmethod octave()

Create a perfect octave.

Returns:

P1:1

octaves()

For intervals, return the number of octaves the interval spans. Negative intervals start with -1, decreasing. For pitches, return the absolute octave of the pitch.

Returns:

external/independent octave (integer)

onehot(fifth_range, octave_range, dtype=<class 'int'>)

Returns a one-hot encoding of the interval in fifths (first dimension) and independent octaves (second dimension). The range of fifths and octaves is given by fifth_range and octave_range respectively, where each is a tuple (lower, upper).

Parameters:
  • fifth_range – the (inclusive) range of fifths (pair of integers)

  • octave_range – the (inclusive) range of octaves (pair of integers)

  • dtype – dtype of the resulting array

Returns:

a one-hot matrix (numpy array)

semitones()

Return the number of semitones corresponding to the interval.

steps()

Return the number of diatonic steps corresponding to the interval.

to_class()

Alias for ic(), but also supported by pitch types.

Returns:

the interval’s corresponding interval class

classmethod unison()

Create a perfect unison.

Returns:

P1:0