progressions

None

chords_from_progression

Returns a list of chords that match a progression in a key. Can be in 
    either the chords or parallel chords.
       
    'error' string is used if a chord can't be found in the progression.

    Diminished chords can be passed as '°' or 'dim' ('ii°' or 'viidim')

    Note: 
    The shorthand 'vii' is accepted as a synonym for 'vii°' or 'viidim' to
    improve usability and reflect common practice in major keys.

    'ii' without a diminished marker is NOT accepted as shorthand for
    'iidim' because the diatonic ii chord is typically minor in major keys,
    while 'iidim' only appears in parallel keys and is less commonly written
    without explicit notation.

    e.g. key=C Major, progression=['I', 'i', 'IV', 'V']
        -> [Chord(C, Major), Chord(C, Minor), Chord(F, Major), Chord(G, Major)]
        
Args:
    key:
        The key the chords are from.
    progression:
        A list of roman numerals notating the chords.
    error:
        A placeholder for missing or invalid chords in the key.

Returns:
    list[Chord|str]: A List of Chord objects or a string containing the 'error' 
    parameter.

NumeralCadences

Represents common musical cadences.

A cadence is a chord progression of at least two chords that concludes a musical phrase or section.

Notes:
    - The Major/Minor Plagal Cadences differ from a standard Plagal Cadence in their respective keys.

Attributes:
    plagal (list of str): Also known as the Amen Cadence.
    minor_plagal (list of str): A variation of the Plagal Cadence in a minor key.
    authentic (list of str): Also called a Perfect Cadence.

    deceptive (list of str): Also known as interupted. It decieves or interupts the resolution.
    imperfect (list of str): Also called half-cadance. Doesn't resolve and hangs. Used mainly at the end of songs.

    super_mario (list of str): The end of level fanfare.

NumeralProgressions

Represents common musical chord progressions using Roman numerals.

Each progression is stored as a list of strings, where each string
represents a chord in the progression (e.g., ["I", "V", "vi", "IV"]).

Attributes:
    axis: 
        A very common progression in Western pop music, popularized by the 
        'Axis of Awesome - 4 Chord Song'.
    axis_alt: 
        A minor-key variant of the Axis progression.
    royal_road: 
        Frequently used in Japanese music.
    twelve_bar_blues: 
        A very common blues progression.
    andalusian_cadence: 
        Often called a cadence, though technically a progression. Common in
        flamenco and classical music.
    andalusian_alt: 
        A variant of the Andalusian cadence that ends on the VII chord 
        instead of V.
    doo_wop: 
        Also known as the '50s progression', characteristic of many doo-wop 
        and early rock 'n' roll songs.
    doo_wop_alt: 
        A jazzier or more modern variation, sometimes called a circle 
        progression or ii-V turnaround.

Progression

Represents a chord progression.
    

Progression.__init__

Initialize self.  See help(type(self)) for accurate signature.

Progression.pretty_print

None

Progression.__str__

Return str(self).

Progression.__repr__

Return repr(self).

SongProgressions

Represents famous songs and their chord progressions using Roman numerals.

Attributes:
    seal_kiss_from_a_rose
    beatles_hey_jude 

Each progression is stored as a list of strings, where each string
represents a chord in the progression (e.g., ["I", "V", "vi", "IV"]).