§
    ƒØju�  ã                  óš  — d Z ddlmZ ddlZddlZddlmZ ddlmZ ddlm	Z	 ddlm
Z
 ddlmZ 	 	 d)d*d„Z	 	 d)d*d„Z	 	 d)d*d„Zd+d„Zd+d„Zd,d„Zd,d„Zd,d„Zd,d„Zd+d„Zd+d„Zd,d„Zd,d„Zd„ Zd„ Zd-d„Zd.d#„ZeeeeeeeeeeeeegZ G d$„ d%ej        ¦  «        Z G d&„ d'ej         ¦  «        Z!e"d(k    rddlZ ej#        e!¦  «         dS dS )/al  
.. note:: The terminology, V43, viio, iv, etc. are explained elsewhere,
     such as *The Music Theory Handbook* by Marjorie Merryman.

This module contains methods which can properly resolve
`dominant seventh <https://en.wikipedia.org/wiki/Dominant_seventh_chord>`_,
`diminished seventh <https://en.wikipedia.org/wiki/Diminished_seventh_chord>`_, and
`augmented sixth <https://en.wikipedia.org/wiki/Augmented_sixth_chord>`_
chords expressed as possibilities (See :mod:`~music21.figuredBass.possibility`).
Although these methods can stand alone, they are speed-enhanced for instances
of :class:`~music21.figuredBass.segment.Segment`, where there are many
possibilities formed around the same chord. If provided with additional
arguments, the methods only :meth:`~music21.pitch.Pitch.transpose` each
:class:`~music21.pitch.Pitch` in a possibility by the appropriate interval.
é    )ÚannotationsN)Úexceptions21)Úchord)Únote)Úpitch)ÚstreamÚaugSixthTypeú
int | NoneÚaugSixthChordInfoúlist[pitch.Pitch | None] | NoneÚreturnútuple[pitch.Pitch, ...]c                ój  ‡‡‡‡‡	— |€Át          j        | ¦  «        }|                     ¦   «         st          d¦  «        ‚t	          t          j        | ¦  «        ¦  «        }‰€g|                     ¦   «         rt          d¦  «        ‚|                     ¦   «         rdŠn-|                     ¦   «         rdŠn|                     ¦   «         rdŠt          j
        r|€J ‚‰dv r	|\  ŠŠŠ	}Šn!‰dk    r	|\  ŠŠ	}ŠŠnt          d‰›�¦  «        ‚t          j
        rpt          ‰t          j        ¦  «        sJ ‚t          ‰	t          j        ¦  «        sJ ‚t          ‰t          j        ¦  «        sJ ‚t          ‰t          j        ¦  «        sJ ‚ˆfd	„d
fˆ	fd„dfˆfd„d
fˆˆfd„dfˆˆfd„d
fg}t          | |¦  «        S )až  
    Resolves French (augSixthType = 1), German (augSixthType = 2), and Swiss (augSixthType = 3)
    augmented sixth chords to the root position dominant triad.

    Proper Italian augmented sixth resolutions not supported within this method.

    >>> from music21.figuredBass import resolution
    >>> Bb2 = pitch.Pitch('B-2')
    >>> D4 = pitch.Pitch('D4')
    >>> E4 = pitch.Pitch('E4')
    >>> Es4 = pitch.Pitch('E#4')
    >>> F4 = pitch.Pitch('F4')
    >>> G4 = pitch.Pitch('G4')
    >>> Gs4 = pitch.Pitch('G#4')
    >>> iv6 = (G4, D4, D4, Bb2)
    >>> itAug6 = (Gs4, D4, D4, Bb2)
    >>> frAug6 = (Gs4, E4, D4, Bb2)
    >>> grAug6 = (Gs4, F4, D4, Bb2)
    >>> swAug6 = (Gs4, Es4, D4, Bb2)

    >>> frRes = resolution.augmentedSixthToDominant(frAug6)
    >>> frRes
    (<music21.pitch.Pitch A4>, <music21.pitch.Pitch E4>,
     <music21.pitch.Pitch C#4>, <music21.pitch.Pitch A2>)
    >>> [str(p) for p in frRes]
    ['A4', 'E4', 'C#4', 'A2']

    >>> grRes = resolution.augmentedSixthToDominant(grAug6)
    >>> [str(p) for p in grRes]
    ['A4', 'E4', 'C#4', 'A2']

    >>> swRes = resolution.augmentedSixthToDominant(swAug6)
    >>> [str(p) for p in swRes]
    ['A4', 'E4', 'C#4', 'A2']
    >>> #_DOCS_SHOW resolution.showResolutions(frAug6, frRes, grAug6, grRes, swAug6, swRes)

        .. image:: images/figuredBass/fbResolution_a6toV.*
            :width: 700

    Above: French, German, and Swiss resolutions, respectively.
    Nú,Possibility is not an augmented sixth chord.ú@Italian augmented sixth resolution not supported in this method.é   é   é   ©r   r   úUnknown augSixthType: c                ó,   •— | o‰o| j         ‰j         k    S ©N©Úname©ÚpÚbasss    €ú“/Users/tedpeters/Documents/Projects/Claude Projects/Misc Tools/notename-sheets/.venv/lib/python3.11/site-packages/music21/figuredBass/resolution.pyú<lambda>z*augmentedSixthToDominant.<locals>.<lambda>s   ó   ø€ ˜qÐA TÐA¨a¬f¸¼	Ò.A€ ó    ú-m2c                ó,   •— | o‰o| j         ‰j         k    S r   r   ©r   Úroots    €r   r   z*augmentedSixthToDominant.<locals>.<lambda>t   r    r!   Úm2c                ó,   •— | o‰o| j         ‰j         k    S r   r   ©r   Úfifths    €r   r   z*augmentedSixthToDominant.<locals>.<lambda>u   ó   ø€ ˜qÐC UÐC¨q¬v¸¼Ò/C€ r!   c                ó8   •— | o‰o| j         ‰j         k    o‰dk    S ©Nr   r   ©r   r	   Úothers    €€r   r   z*augmentedSixthToDominant.<locals>.<lambda>v   ó%   ø€ ˜qÐY UÐY¨q¬v¸¼Ò/CÐYÈÐXYÒHY€ r!   Úd1c                ó8   •— | o‰o| j         ‰j         k    o‰dk    S ©Nr   r   r-   s    €€r   r   z*augmentedSixthToDominant.<locals>.<lambda>w   r/   r!   ©r   ÚChordÚisAugmentedSixthÚResolutionExceptionÚ_unpackSeventhChordÚisItalianAugmentedSixthÚisFrenchAugmentedSixthÚisGermanAugmentedSixthÚisSwissAugmentedSixthÚtÚTYPE_CHECKINGÚ
isinstancer   ÚPitchÚ_resolvePitches©
ÚaugSixthPossibr	   r   ÚaugSixthChordÚunused_thirdÚhowToResolver   r)   r.   r%   s
    `    @@@@r   ÚaugmentedSixthToDominantrF   $   s'  øøøøø€ ð\ Ð Ýœ NÑ3Ô3ˆØ×-Ò-Ñ/Ô/ð 	VÝ%Ð&TÑUÔUÐUÝ/µ´¸NÑ0KÔ0KÑLÔLÐàÐØ×4Ò4Ñ6Ô6ð XÝ)ØVñXô Xð Xð ×3Ò3Ñ5Ô5ð !Ø ��Ø×5Ò5Ñ7Ô7ð !Ø ��Ø×4Ò4Ñ6Ô6ð !Ø �å„ð -Ø Ð,Ð,Ð,Ø�vÐÐØ3DÑ0ˆˆu�d˜L¨%¨%Ø	˜Ò	Ð	Ø3DÑ0ˆˆt�\ 5¨%¨%å!Ð"K¸<Ð"KÐ"KÑLÔLÐLå„ð .Ý˜$¥¤Ñ,Ô,Ð,Ð,Ð,Ý˜$¥¤Ñ,Ô,Ð,Ð,Ð,Ý˜%¥¤Ñ-Ô-Ð-Ð-Ð-Ý˜%¥¤Ñ-Ô-Ð-Ð-Ð-àAÐAÐAÐAÀ5ÐIØAÐAÐAÐAÀ4ÐHØCÐCÐCÐCÀUÐKØYÐYÐYÐYÐYÐ[_Ð`ØYÐYÐYÐYÐYÐ[`Ðað	c€Lõ ˜>¨<Ñ8Ô8Ð8r!   c                óx  ‡‡‡‡‡	— |€Át          j        | ¦  «        }|                     ¦   «         st          d¦  «        ‚t	          t          j        | ¦  «        ¦  «        }‰€g|                     ¦   «         rt          d¦  «        ‚|                     ¦   «         rdŠn-|                     ¦   «         rdŠn|                     ¦   «         rdŠt          j
        r|€J ‚‰dv r	|\  ŠŠŠ	}Šn!‰dk    r	|\  ŠŠ	}ŠŠnt          d‰›�¦  «        ‚t          j
        rpt          ‰t          j        ¦  «        sJ ‚t          ‰	t          j        ¦  «        sJ ‚t          ‰t          j        ¦  «        sJ ‚t          ‰t          j        ¦  «        sJ ‚ˆfd	„d
fˆ	fd„dfˆfd„dfˆˆfd„dfˆˆfd„dfˆˆfd„dfg}t          | |¦  «        S )a  
    Resolves French (augSixthType = 1), German (augSixthType = 2), and Swiss (augSixthType = 3)
    augmented sixth chords to the major tonic 6,4.

    Proper Italian augmented sixth resolutions not supported within this method.

    >>> from music21.figuredBass import resolution
    >>> Bb2 = pitch.Pitch('B-2')
    >>> D4 = pitch.Pitch('D4')
    >>> E4 = pitch.Pitch('E4')
    >>> Es4 = pitch.Pitch('E#4')
    >>> F4 = pitch.Pitch('F4')
    >>> G4 = pitch.Pitch('G4')
    >>> Gs4 = pitch.Pitch('G#4')
    >>> iv6 = (G4, D4, D4, Bb2)
    >>> itAug6 = (Gs4, D4, D4, Bb2)
    >>> frAug6 = (Gs4, E4, D4, Bb2)
    >>> grAug6 = (Gs4, F4, D4, Bb2)
    >>> swAug6 = (Gs4, Es4, D4, Bb2)
    >>> frRes = resolution.augmentedSixthToMajorTonic(frAug6)
    >>> [str(p) for p in frRes]
    ['A4', 'F#4', 'D4', 'A2']
    >>> grRes = resolution.augmentedSixthToMajorTonic(grAug6)
    >>> [str(p) for p in grRes]
    ['A4', 'F#4', 'D4', 'A2']
    >>> swRes = resolution.augmentedSixthToMajorTonic(swAug6)
    >>> [str(p) for p in swRes]
    ['A4', 'F#4', 'D4', 'A2']
    >>> #_DOCS_SHOW resolution.showResolutions(frAug6, frRes, grAug6, grRes, swAug6, swRes)

        .. image:: images/figuredBass/fbResolution_a6toI.*
            :width: 700

    Above: French, German, and Swiss resolutions, respectively.
    Nr   r   r   r   r   r   r   c                ó,   •— | o‰o| j         ‰j         k    S r   r   r   s    €r   r   z,augmentedSixthToMajorTonic.<locals>.<lambda>Æ   r    r!   r"   c                ó,   •— | o‰o| j         ‰j         k    S r   r   r$   s    €r   r   z,augmentedSixthToMajorTonic.<locals>.<lambda>Ç   r    r!   r&   c                ó,   •— | o‰o| j         ‰j         k    S r   r   r(   s    €r   r   z,augmentedSixthToMajorTonic.<locals>.<lambda>È   r*   r!   ÚP1c                ó8   •— | o‰o| j         ‰j         k    o‰dk    S ©Nr   r   r-   s    €€r   r   z,augmentedSixthToMajorTonic.<locals>.<lambda>É   r/   r!   ÚM2c                ó8   •— | o‰o| j         ‰j         k    o‰dk    S r2   r   r-   s    €€r   r   z,augmentedSixthToMajorTonic.<locals>.<lambda>Ê   r/   r!   ÚA1c                ó8   •— | o‰o| j         ‰j         k    o‰dk    S r,   r   r-   s    €€r   r   z,augmentedSixthToMajorTonic.<locals>.<lambda>Ë   r/   r!   r3   rA   s
    `    @@@@r   ÚaugmentedSixthToMajorTonicrR   |   s<  øøøøø€ ðP Ð Ýœ NÑ3Ô3ˆØ×-Ò-Ñ/Ô/ð 	VÝ%Ð&TÑUÔUÐUÝ/µ´¸NÑ0KÔ0KÑLÔLÐàÐØ×4Ò4Ñ6Ô6ð XÝ)ØVñXô Xð Xð ×3Ò3Ñ5Ô5ð !Ø ��Ø×5Ò5Ñ7Ô7ð !Ø ��Ø×4Ò4Ñ6Ô6ð !Ø �å„ð -Ø Ð,Ð,Ð,à�vÐÐØ3DÑ0ˆˆu�d˜L¨%¨%Ø	˜Ò	Ð	Ø3DÑ0ˆˆt�\ 5¨%¨%å!Ð"K¸<Ð"KÐ"KÑLÔLÐLå„ð .Ý˜$¥¤Ñ,Ô,Ð,Ð,Ð,Ý˜$¥¤Ñ,Ô,Ð,Ð,Ð,Ý˜%¥¤Ñ-Ô-Ð-Ð-Ð-Ý˜%¥¤Ñ-Ô-Ð-Ð-Ð-àAÐAÐAÐAÀ5ÐIØAÐAÐAÐAÀ4ÐHØCÐCÐCÐCÀTÐJØYÐYÐYÐYÐYÐ[_Ð`ØYÐYÐYÐYÐYÐ[_Ð`ØYÐYÐYÐYÐYÐ[_Ð`ðb€Lõ ˜>¨<Ñ8Ô8Ð8r!   c                ój  ‡‡‡‡‡	— |€Át          j        | ¦  «        }|                     ¦   «         st          d¦  «        ‚t	          t          j        | ¦  «        ¦  «        }‰€g|                     ¦   «         rt          d¦  «        ‚|                     ¦   «         rdŠn-|                     ¦   «         rdŠn|                     ¦   «         rdŠt          j
        r|€J ‚‰dv r	|\  ŠŠŠ	}Šn!‰dk    r	|\  ŠŠ	}ŠŠnt          d‰›�¦  «        ‚t          j
        rpt          ‰t          j        ¦  «        sJ ‚t          ‰	t          j        ¦  «        sJ ‚t          ‰t          j        ¦  «        sJ ‚t          ‰t          j        ¦  «        sJ ‚ˆfd	„d
fˆ	fd„dfˆfd„dfˆˆfd„dfˆˆfd„dfg}t          | |¦  «        S )a  
    Resolves French (augSixthType = 1), German (augSixthType = 2), and Swiss (augSixthType = 3)
    augmented sixth chords to the minor tonic 6,4.

    Proper Italian augmented sixth resolutions not supported within this method.

    >>> from music21.figuredBass import resolution
    >>> Bb2 = pitch.Pitch('B-2')
    >>> D4 = pitch.Pitch('D4')
    >>> E4 = pitch.Pitch('E4')
    >>> Es4 = pitch.Pitch('E#4')
    >>> F4 = pitch.Pitch('F4')
    >>> G4 = pitch.Pitch('G4')
    >>> Gs4 = pitch.Pitch('G#4')
    >>> iv6 = (G4, D4, D4, Bb2)
    >>> itAug6 = (Gs4, D4, D4, Bb2)
    >>> frAug6 = (Gs4, E4, D4, Bb2)
    >>> grAug6 = (Gs4, F4, D4, Bb2)
    >>> swAug6 = (Gs4, Es4, D4, Bb2)
    >>> frRes = resolution.augmentedSixthToMinorTonic(frAug6)
    >>> [str(p) for p in frRes]
    ['A4', 'F4', 'D4', 'A2']
    >>> grRes = resolution.augmentedSixthToMinorTonic(grAug6)
    >>> [str(p) for p in grRes]
    ['A4', 'F4', 'D4', 'A2']
    >>> swRes = resolution.augmentedSixthToMinorTonic(swAug6)
    >>> [str(p) for p in swRes]
    ['A4', 'F4', 'D4', 'A2']
    >>> #_DOCS_SHOW resolution.showResolutions(frAug6, frRes, grAug6, grRes, swAug6, swRes)

        .. image:: images/figuredBass/fbResolution_a6toIm.*
            :width: 700

    Above: French, German, and Swiss resolutions, respectively.
    Nr   r   r   r   r   r   r   c                ó,   •— | o‰o| j         ‰j         k    S r   r   r   s    €r   r   z,augmentedSixthToMinorTonic.<locals>.<lambda>  r    r!   r"   c                ó,   •— | o‰o| j         ‰j         k    S r   r   r$   s    €r   r   z,augmentedSixthToMinorTonic.<locals>.<lambda>  r    r!   r&   c                ó,   •— | o‰o| j         ‰j         k    S r   r   r(   s    €r   r   z,augmentedSixthToMinorTonic.<locals>.<lambda>  r*   r!   rK   c                ó8   •— | o‰o| j         ‰j         k    o‰dk    S rM   r   r-   s    €€r   r   z,augmentedSixthToMinorTonic.<locals>.<lambda>  r/   r!   c                ó8   •— | o‰o| j         ‰j         k    o‰dk    S r,   r   r-   s    €€r   r   z,augmentedSixthToMinorTonic.<locals>.<lambda>  r/   r!   Úd2r3   rA   s
    `    @@@@r   ÚaugmentedSixthToMinorTonicrZ   Ð   s'  øøøøø€ ðP Ð Ýœ NÑ3Ô3ˆØ×-Ò-Ñ/Ô/ð 	VÝ%Ð&TÑUÔUÐUÝ/µ´¸NÑ0KÔ0KÑLÔLÐàÐØ×4Ò4Ñ6Ô6ð XÝ)ØVñXô Xð Xð ×3Ò3Ñ5Ô5ð !Ø ��Ø×5Ò5Ñ7Ô7ð !Ø ��Ø×4Ò4Ñ6Ô6ð !Ø �å„ð -Ø Ð,Ð,Ð,à�vÐÐØ3DÑ0ˆˆu�d˜L¨%¨%Ø	˜Ò	Ð	Ø3DÑ0ˆˆt�\ 5¨%¨%å!Ð"K¸<Ð"KÐ"KÑLÔLÐLå„ð .Ý˜$¥¤Ñ,Ô,Ð,Ð,Ð,Ý˜$¥¤Ñ,Ô,Ð,Ð,Ð,Ý˜%¥¤Ñ-Ô-Ð-Ð-Ð-Ý˜%¥¤Ñ-Ô-Ð-Ð-Ð-àAÐAÐAÐAÀ5ÐIØAÐAÐAÐAÀ4ÐHØCÐCÐCÐCÀTÐJØYÐYÐYÐYÐYÐ[_Ð`ØYÐYÐYÐYÐYÐ[_Ð`ð	b€Lõ ˜>¨<Ñ8Ô8Ð8r!   Fc                óD  ‡‡‡‡‡‡	— |€Xt          j        | ¦  «        }|                     ¦   «         st          d¦  «        ‚t	          t          j        | ¦  «        ¦  «        }|\  ŠŠŠ	ŠŠˆˆfd„dfˆ	fd„dfˆˆfd„dfˆfd	„d
fˆˆfd„dfˆfd„dfg}t          | |¦  «        S )aÅ  
    Resolves a dominant seventh chord in root position or any of its
    inversions to the major tonic, in root position or first inversion.

    The second inversion (4,3) dominant seventh chord can resolve to
    the tonic in either inversion. This is controlled by
    resolveV43toI6, and is set to True
    by :meth:`~music21.figuredBass.segment.Segment.resolveDominantSeventhSegment`
    only when the :attr:`~music21.figuredBass.segment.Segment.segmentChord`
    of a :class:`~music21.figuredBass.segment.Segment`
    spells out a dominant seventh chord in second inversion.

    >>> from music21.figuredBass import resolution
    >>> G2 = pitch.Pitch('G2')
    >>> C3 = pitch.Pitch('C3')
    >>> E3 = pitch.Pitch('E3')
    >>> G3 = pitch.Pitch('G3')
    >>> Bb3 = pitch.Pitch('B-3')
    >>> B3 = pitch.Pitch('B3')
    >>> C4 = pitch.Pitch('C4')
    >>> F4 = pitch.Pitch('F4')
    >>> Bb4 = pitch.Pitch('B-4')
    >>> D5 = pitch.Pitch('D5')
    >>> E5 = pitch.Pitch('E5')
    >>> domPossibA1 = (D5, F4, B3, G2)
    >>> resPossibA1 = resolution.dominantSeventhToMajorTonic(domPossibA1)
    >>> resPossibA1
    (<music21.pitch.Pitch C5>, <music21.pitch.Pitch E4>,
     <music21.pitch.Pitch C4>, <music21.pitch.Pitch C3>)
    >>> #_DOCS_SHOW resolution.showResolutions(domPossibA1, resPossibA1)

    .. image:: images/figuredBass/fbResolution_V7toI_1.*
            :width: 150

    >>> domPossibA2 = (Bb3, G3, E3, C3)
    >>> resPossibA2 = resolution.dominantSeventhToMajorTonic(domPossibA2)
    >>> [str(p) for p in resPossibA2]
    ['A3', 'F3', 'F3', 'F3']
    >>> #_DOCS_SHOW resolution.showResolutions(domPossibA2, resPossibA2)

    .. image:: images/figuredBass/fbResolution_V7toI_2.*
            :width: 150

    >>> domPossibA3 = (E5, Bb4, C4, G3)
    >>> resPossibA3a = resolution.dominantSeventhToMajorTonic(domPossibA3, False)
    >>> [str(p) for p in resPossibA3a]
    ['F5', 'A4', 'C4', 'F3']
    >>> resPossibA3b = resolution.dominantSeventhToMajorTonic(domPossibA3, True)
    >>> [str(p) for p in resPossibA3b]
    ['F5', 'C5', 'C4', 'A3']
    >>> #_DOCS_SHOW resolution.showResolutions(domPossibA3, resPossibA3a, domPossibA3, resPossibA3b)

    .. image:: images/figuredBass/fbResolution_V7toI_3.*
            :width: 200
    Nú,Possibility is not a dominant seventh chord.c                ó0   •— | j         ‰j         k    o| ‰k    S r   r   ©r   r   r%   s    €€r   r   z-dominantSeventhToMajorTonic.<locals>.<lambda>b  ó   ø€ ˜qœv¨¬Ò2Ð@°q¸D²y€ r!   ÚP4c                ó$   •— | j         ‰j         k    S r   r   ©r   Úthirds    €r   r   z-dominantSeventhToMajorTonic.<locals>.<lambda>c  ó   ø€ ˜qœv¨¬Ò3€ r!   r&   c                ó(   •— | j         ‰j         k    o‰S r   r   )r   r)   ÚresolveV43toI6s    €€r   r   z-dominantSeventhToMajorTonic.<locals>.<lambda>d  ó   ø€ ˜qœv¨¬Ò3ÐF¸€ r!   rN   c                ó$   •— | j         ‰j         k    S r   r   r(   s    €r   r   z-dominantSeventhToMajorTonic.<locals>.<lambda>e  rd   r!   ú-M2c                ó(   •— | j         ‰j         k    o‰S r   r   )r   rf   Úsevenths    €€r   r   z-dominantSeventhToMajorTonic.<locals>.<lambda>f  ó   ø€ ˜qœv¨¬Ò5ÐH¸.€ r!   c                ó$   •— | j         ‰j         k    S r   r   ©r   rk   s    €r   r   z-dominantSeventhToMajorTonic.<locals>.<lambda>g  ó   ø€ ˜qœv¨¬Ò5€ r!   r"   ©r   r4   ÚisDominantSeventhr6   r7   r@   )
Ú	domPossibrf   ÚdomChordInfoÚdomChordrE   r   r)   r%   rk   rc   s
    `   @@@@@r   ÚdominantSeventhToMajorTonicru   #  óó   øøøøøø€ ðp ÐÝ”;˜yÑ)Ô)ˆØ×)Ò)Ñ+Ô+ð 	VÝ%Ð&TÑUÔUÐUÝ*­5¬;°yÑ+AÔ+AÑBÔBˆØ*6Ñ'€Tˆ4�˜˜wà@Ð@Ð@Ð@Ð@À$ÐGØ3Ð3Ð3Ð3°TÐ:ØFÐFÐFÐFÐFÈÐMØ3Ð3Ð3Ð3°UÐ;ØHÐHÐHÐHÐHÈ$ÐOØ5Ð5Ð5Ð5°uÐ=ð?€Lõ ˜9 lÑ3Ô3Ð3r!   c                óD  ‡‡‡‡‡‡	— |€Xt          j        | ¦  «        }|                     ¦   «         st          d¦  «        ‚t	          t          j        | ¦  «        ¦  «        }|\  ŠŠŠ	ŠŠˆˆfd„dfˆ	fd„dfˆˆfd„dfˆfd„d	fˆˆfd
„dfˆfd„d	fg}t          | |¦  «        S )a�  
    Resolves a dominant seventh chord in root position or any of its
    inversions to the minor tonic, in root position or first inversion,
    accordingly.

    The second inversion (4,3) dominant seventh chord can resolve to
    the tonic in either inversion. This is controlled by
    resolveV43toi6, and is set to True by
    :meth:`~music21.figuredBass.segment.Segment.resolveDominantSeventhSegment`
    only when the :attr:`~music21.figuredBass.segment.Segment.segmentChord`
    of a :class:`~music21.figuredBass.segment.Segment`
    spells out a dominant seventh chord in second inversion.

    >>> from music21.figuredBass import resolution
    >>> G2 = pitch.Pitch('G2')
    >>> C3 = pitch.Pitch('C3')
    >>> E3 = pitch.Pitch('E3')
    >>> G3 = pitch.Pitch('G3')
    >>> Bb3 = pitch.Pitch('B-3')
    >>> B3 = pitch.Pitch('B3')
    >>> C4 = pitch.Pitch('C4')
    >>> F4 = pitch.Pitch('F4')
    >>> Bb4 = pitch.Pitch('B-4')
    >>> D5 = pitch.Pitch('D5')
    >>> E5 = pitch.Pitch('E5')
    >>> domPossibA1 = (D5, F4, B3, G2)
    >>> resPossibA1 = resolution.dominantSeventhToMinorTonic(domPossibA1)
    >>> [str(p) for p in resPossibA1]
    ['C5', 'E-4', 'C4', 'C3']
    >>> #_DOCS_SHOW resolution.showResolutions(domPossibA1, resPossibA1)

    .. image:: images/figuredBass/fbResolution_V7toIm_1.*
            :width: 150

    >>> domPossibA2 = (Bb3, G3, E3, C3)
    >>> resPossibA2 = resolution.dominantSeventhToMinorTonic(domPossibA2)
    >>> ', '.join([str(p) for p in resPossibA2])
    'A-3, F3, F3, F3'
    >>> #_DOCS_SHOW resolution.showResolutions(domPossibA2, resPossibA2)

    .. image:: images/figuredBass/fbResolution_V7toIm_2.*
            :width: 150

    >>> domPossibA3 = (E5, Bb4, C4, G3)
    >>> resPossibA3a = resolution.dominantSeventhToMinorTonic(domPossibA3, False)
    >>> [str(p) for p in resPossibA3a]
    ['F5', 'A-4', 'C4', 'F3']
    >>> resPossibA3b = resolution.dominantSeventhToMinorTonic(domPossibA3, True)
    >>> [str(p) for p in resPossibA3b]
    ['F5', 'C5', 'C4', 'A-3']
    >>> #_DOCS_SHOW resolution.showResolutions(domPossibA3, resPossibA3a, domPossibA3, resPossibA3b)

    .. image:: images/figuredBass/fbResolution_V7toIm_3.*
            :width: 200
    Nr\   c                ó0   •— | j         ‰j         k    o| ‰k    S r   r   r^   s    €€r   r   z-dominantSeventhToMinorTonic.<locals>.<lambda>«  r_   r!   r`   c                ó$   •— | j         ‰j         k    S r   r   rb   s    €r   r   z-dominantSeventhToMinorTonic.<locals>.<lambda>¬  rd   r!   r&   c                ó(   •— | j         ‰j         k    o‰S r   r   )r   r)   ÚresolveV43toi6s    €€r   r   z-dominantSeventhToMinorTonic.<locals>.<lambda>­  rg   r!   c                ó$   •— | j         ‰j         k    S r   r   r(   s    €r   r   z-dominantSeventhToMinorTonic.<locals>.<lambda>®  rd   r!   ri   c                ó(   •— | j         ‰j         k    o‰S r   r   )r   r{   rk   s    €€r   r   z-dominantSeventhToMinorTonic.<locals>.<lambda>¯  rl   r!   rN   c                ó$   •— | j         ‰j         k    S r   r   rn   s    €r   r   z-dominantSeventhToMinorTonic.<locals>.<lambda>°  ro   r!   rp   )
rr   r{   rs   rt   rE   r   r)   r%   rk   rc   s
    `   @@@@@r   ÚdominantSeventhToMinorTonicr   l  rv   r!   c                óp  ‡‡‡‡— |€t          j        | ¦  «        }|                     ¦   «         st          d¦  «        ‚t	          t          j        | ¦  «        ¦  «        }|                     ¦   «         dk    st          d¦  «        ‚|\  }ŠŠŠŠˆfd„dfˆfd„dfˆfd„d	fˆfd
„d	fg}t          | |¦  «        S )a~  
    Resolves a dominant seventh chord in root position to the
    major submediant (VI) in root position.

    >>> from music21.figuredBass import resolution
    >>> G2 = pitch.Pitch('G2')
    >>> B3 = pitch.Pitch('B3')
    >>> F4 = pitch.Pitch('F4')
    >>> D5 = pitch.Pitch('D5')
    >>> domPossibA1 = (D5, F4, B3, G2)
    >>> resPossibA1 = resolution.dominantSeventhToMajorSubmediant(domPossibA1)
    >>> [p.nameWithOctave for p in resPossibA1]
    ['C5', 'E-4', 'C4', 'A-2']
    >>> #_DOCS_SHOW resolution.showResolutions(domPossibA1, resPossibA1)

    .. image:: images/figuredBass/fbResolution_V7toVI.*
            :width: 150
    Nr\   r   ú%Possibility must be in root position.c                ó$   •— | j         ‰j         k    S r   r   r$   s    €r   r   z2dominantSeventhToMajorSubmediant.<locals>.<lambda>Ñ  ó   ø€ ˜qœv¨¬Ò2€ r!   r&   c                ó$   •— | j         ‰j         k    S r   r   rb   s    €r   r   z2dominantSeventhToMajorSubmediant.<locals>.<lambda>Ò  rd   r!   c                ó$   •— | j         ‰j         k    S r   r   r(   s    €r   r   z2dominantSeventhToMajorSubmediant.<locals>.<lambda>Ó  rd   r!   ri   c                ó$   •— | j         ‰j         k    S r   r   rn   s    €r   r   z2dominantSeventhToMajorSubmediant.<locals>.<lambda>Ô  ro   r!   ©r   r4   rq   r6   r7   Ú	inversionr@   ©	rr   rs   rt   Úunused_bassrE   r)   r%   rk   rc   s	        @@@@r   Ú dominantSeventhToMajorSubmediantr‹   µ  óë   øøøø€ ð& ÐÝ”;˜yÑ)Ô)ˆØ×)Ò)Ñ+Ô+ð 	VÝ%Ð&TÑUÔUÐUÝ*­5¬;°yÑ+AÔ+AÑBÔBˆØ×!Ò!Ñ#Ô# qÒ(Ð(Ý%Ð&MÑNÔNÐNØ1=Ñ.€[�$˜˜u gà2Ð2Ð2Ð2°DÐ9Ø3Ð3Ð3Ð3°TÐ:Ø3Ð3Ð3Ð3°UÐ;Ø5Ð5Ð5Ð5°uÐ=ð?€Lõ
 ˜9 lÑ3Ô3Ð3r!   c                óp  ‡‡‡‡— |€t          j        | ¦  «        }|                     ¦   «         st          d¦  «        ‚t	          t          j        | ¦  «        ¦  «        }|                     ¦   «         dk    st          d¦  «        ‚|\  }ŠŠŠŠˆfd„dfˆfd„dfˆfd	„d
fˆfd„dfg}t          | |¦  «        S )a}  
    Resolves a dominant seventh chord in root position to the
    minor submediant (vi) in root position.

    >>> from music21.figuredBass import resolution
    >>> G2 = pitch.Pitch('G2')
    >>> B3 = pitch.Pitch('B3')
    >>> F4 = pitch.Pitch('F4')
    >>> D5 = pitch.Pitch('D5')
    >>> domPossibA1 = (D5, F4, B3, G2)
    >>> resPossibA1 = resolution.dominantSeventhToMinorSubmediant(domPossibA1)
    >>> [p.nameWithOctave for p in resPossibA1]
    ['C5', 'E4', 'C4', 'A2']
    >>> #_DOCS_SHOW resolution.showResolutions(domPossibA1, resPossibA1)

    .. image:: images/figuredBass/fbResolution_V7toVIm.*
            :width: 150
    Nr\   r   r�   c                ó$   •— | j         ‰j         k    S r   r   r$   s    €r   r   z2dominantSeventhToMinorSubmediant.<locals>.<lambda>õ  rƒ   r!   rN   c                ó$   •— | j         ‰j         k    S r   r   rb   s    €r   r   z2dominantSeventhToMinorSubmediant.<locals>.<lambda>ö  rd   r!   r&   c                ó$   •— | j         ‰j         k    S r   r   r(   s    €r   r   z2dominantSeventhToMinorSubmediant.<locals>.<lambda>÷  rd   r!   ri   c                ó$   •— | j         ‰j         k    S r   r   rn   s    €r   r   z2dominantSeventhToMinorSubmediant.<locals>.<lambda>ø  ro   r!   r"   r‡   r‰   s	        @@@@r   Ú dominantSeventhToMinorSubmediantr’   Ù  rŒ   r!   c                ób  ‡‡‡— |€t          j        | ¦  «        }|                     ¦   «         st          d¦  «        ‚t	          t          j        | ¦  «        ¦  «        }|                     ¦   «         dk    st          d¦  «        ‚|\  }ŠŠŠ}ˆfd„dfˆfd„dfˆfd	„d
fg}t          | |¦  «        S )a€  
    Resolves a dominant seventh chord in root position
    to the major subdominant (IV) in first inversion.

    >>> from music21.figuredBass import resolution
    >>> G2 = pitch.Pitch('G2')
    >>> B3 = pitch.Pitch('B3')
    >>> F4 = pitch.Pitch('F4')
    >>> D5 = pitch.Pitch('D5')
    >>> domPossibA1 = (D5, F4, B3, G2)
    >>> resPossibA1 = resolution.dominantSeventhToMajorSubdominant(domPossibA1)
    >>> [p.nameWithOctave for p in resPossibA1]
    ['C5', 'F4', 'C4', 'A2']
    >>> #_DOCS_SHOW resolution.showResolutions(domPossibA1, resPossibA1)

    .. image:: images/figuredBass/fbResolution_V7toIV.*
            :width: 150
    Nr\   r   r�   c                ó$   •— | j         ‰j         k    S r   r   r$   s    €r   r   z3dominantSeventhToMajorSubdominant.<locals>.<lambda>  rƒ   r!   rN   c                ó$   •— | j         ‰j         k    S r   r   rb   s    €r   r   z3dominantSeventhToMajorSubdominant.<locals>.<lambda>  rd   r!   r&   c                ó$   •— | j         ‰j         k    S r   r   r(   s    €r   r   z3dominantSeventhToMajorSubdominant.<locals>.<lambda>  rd   r!   ri   r‡   ©	rr   rs   rt   rŠ   Úunused_seventhrE   r)   r%   rc   s	         @@@r   Ú!dominantSeventhToMajorSubdominantr™   ý  óÙ   øøø€ ð& ÐÝ”;˜yÑ)Ô)ˆØ×)Ò)Ñ+Ô+ð 	VÝ%Ð&TÑUÔUÐUÝ*­5¬;°yÑ+AÔ+AÑBÔBˆØ×!Ò!Ñ#Ô# qÒ(Ð(Ý%Ð&MÑNÔNÐNØ8DÑ5€[�$˜˜u nà2Ð2Ð2Ð2°DÐ9Ø3Ð3Ð3Ð3°TÐ:Ø3Ð3Ð3Ð3°UÐ;ð=€Lõ ˜9 lÑ3Ô3Ð3r!   c                ób  ‡‡‡— |€t          j        | ¦  «        }|                     ¦   «         st          d¦  «        ‚t	          t          j        | ¦  «        ¦  «        }|                     ¦   «         dk    st          d¦  «        ‚|\  }ŠŠŠ}ˆfd„dfˆfd„dfˆfd„d	fg}t          | |¦  «        S )
a‚  
    Resolves a dominant seventh chord in root position
    to the minor subdominant (iv) in first inversion.

    >>> from music21.figuredBass import resolution
    >>> G2 = pitch.Pitch('G2')
    >>> B3 = pitch.Pitch('B3')
    >>> F4 = pitch.Pitch('F4')
    >>> D5 = pitch.Pitch('D5')
    >>> domPossibA1 = (D5, F4, B3, G2)
    >>> resPossibA1 = resolution.dominantSeventhToMinorSubdominant(domPossibA1)
    >>> [p.nameWithOctave for p in resPossibA1]
    ['C5', 'F4', 'C4', 'A-2']
    >>> #_DOCS_SHOW resolution.showResolutions(domPossibA1, resPossibA1)

    .. image:: images/figuredBass/fbResolution_V7toIVm.*
            :width: 150
    Nr\   r   r�   c                ó$   •— | j         ‰j         k    S r   r   r$   s    €r   r   z3dominantSeventhToMinorSubdominant.<locals>.<lambda><  rƒ   r!   r&   c                ó$   •— | j         ‰j         k    S r   r   rb   s    €r   r   z3dominantSeventhToMinorSubdominant.<locals>.<lambda>=  rd   r!   c                ó$   •— | j         ‰j         k    S r   r   r(   s    €r   r   z3dominantSeventhToMinorSubdominant.<locals>.<lambda>>  rd   r!   ri   r‡   r—   s	         @@@r   Ú!dominantSeventhToMinorSubdominantrŸ      rš   r!   c                ó2  ‡‡‡‡‡	— |€Xt          j        | ¦  «        }|                     ¦   «         st          d¦  «        ‚t	          t          j        | ¦  «        ¦  «        }|\  }ŠŠ	ŠŠˆfd„dfˆˆ	fd„dfˆ	fd„dfˆfd	„d
fˆfd„d
fg}t          | |¦  «        S )a¬  
    Resolves a fully diminished seventh chord to the major tonic,
    in root position or either inversion.

    The resolution of the diminished seventh chord can have a
    doubled third (standard resolution) or a doubled root
    (alternate resolution), because the third of the diminished
    chord can either rise or fall. The desired resolution is
    attained using doubledRoot, and is set by
    :meth:`~music21.figuredBass.segment.Segment.resolveDiminishedSeventhSegment`.

    >>> from music21.figuredBass import resolution
    >>> Cs3 = pitch.Pitch('C#3')
    >>> G3 = pitch.Pitch('G3')
    >>> E4 = pitch.Pitch('E4')
    >>> Bb4 = pitch.Pitch('B-4')
    >>> dimPossibA = (Bb4, E4, G3, Cs3)
    >>> resPossibAa = resolution.diminishedSeventhToMajorTonic(dimPossibA, False)
    >>> [str(p) for p in resPossibAa]
    ['A4', 'F#4', 'F#3', 'D3']
    >>> resPossibAb = resolution.diminishedSeventhToMajorTonic(dimPossibA, True)
    >>> [p.nameWithOctave for p in resPossibAb]
    ['A4', 'D4', 'F#3', 'D3']
    >>> #_DOCS_SHOW resolution.showResolutions(dimPossibA, resPossibAa, dimPossibA, resPossibAb)

    .. image:: images/figuredBass/fbResolution_vii7toI.*
            :width: 200
    Nú4Possibility is not a fully diminished seventh chord.c                ó$   •— | j         ‰j         k    S r   r   r$   s    €r   r   z/diminishedSeventhToMajorTonic.<locals>.<lambda>g  rƒ   r!   r&   c                ó(   •— | j         ‰j         k    o‰S r   r   ©r   ÚdoubledRootrc   s    €€r   r   z/diminishedSeventhToMajorTonic.<locals>.<lambda>h  ó   ø€ ˜qœv¨¬Ò3ÐC¸€ r!   ri   c                ó$   •— | j         ‰j         k    S r   r   rb   s    €r   r   z/diminishedSeventhToMajorTonic.<locals>.<lambda>i  rd   r!   rN   c                ó$   •— | j         ‰j         k    S r   r   r(   s    €r   r   z/diminishedSeventhToMajorTonic.<locals>.<lambda>j  rd   r!   r"   c                ó$   •— | j         ‰j         k    S r   r   rn   s    €r   r   z/diminishedSeventhToMajorTonic.<locals>.<lambda>k  ro   r!   ©r   r4   ÚisDiminishedSeventhr6   r7   r@   ©
Ú	dimPossibr¥   ÚdimChordInfoÚdimChordrŠ   rE   r)   r%   rk   rc   s
    `    @@@@r   ÚdiminishedSeventhToMajorTonicr°   C  óÚ   øøøøø€ ð: ÐÝ”;˜yÑ)Ô)ˆØ×+Ò+Ñ-Ô-ð 	^Ý%Ð&\Ñ]Ô]Ð]Ý*­5¬;°yÑ+AÔ+AÑBÔBˆØ1=Ñ.€[�$˜˜u gà2Ð2Ð2Ð2°DÐ9ØCÐCÐCÐCÐCÀUÐKØ3Ð3Ð3Ð3°TÐ:Ø3Ð3Ð3Ð3°UÐ;Ø5Ð5Ð5Ð5°uÐ=ð	?€Lõ ˜9 lÑ3Ô3Ð3r!   c                ó2  ‡‡‡‡‡	— |€Xt          j        | ¦  «        }|                     ¦   «         st          d¦  «        ‚t	          t          j        | ¦  «        ¦  «        }|\  }ŠŠ	ŠŠˆfd„dfˆˆ	fd„dfˆ	fd„dfˆfd„dfˆfd	„d
fg}t          | |¦  «        S )a´  
    Resolves a fully diminished seventh chord to the minor tonic,
    in root position or either inversion.

    The resolution of the diminished seventh chord can have a
    doubled third (standard resolution) or a doubled root
    (alternate resolution), because the third of the diminished
    chord can either rise or fall. The desired resolution is
    attained using doubledRoot, and is set by
    :meth:`~music21.figuredBass.segment.Segment.resolveDiminishedSeventhSegment`.

    >>> from music21.figuredBass import resolution
    >>> Cs3 = pitch.Pitch('C#3')
    >>> G3 = pitch.Pitch('G3')
    >>> E4 = pitch.Pitch('E4')
    >>> Bb4 = pitch.Pitch('B-4')
    >>> dimPossibA = (Bb4, E4, G3, Cs3)
    >>> resPossibAa = resolution.diminishedSeventhToMinorTonic(dimPossibA, False)
    >>> [p.nameWithOctave for p in resPossibAa]
    ['A4', 'F4', 'F3', 'D3']
    >>> resPossibAb = resolution.diminishedSeventhToMinorTonic(dimPossibA, True)
    >>> [p.nameWithOctave for p in resPossibAb]
    ['A4', 'D4', 'F3', 'D3']
    >>> #_DOCS_SHOW resolution.showResolutions(dimPossibA, resPossibAa, dimPossibA, resPossibAb)

    .. image:: images/figuredBass/fbResolution_vii7toIm.*
            :width: 200
    Nr¡   c                ó$   •— | j         ‰j         k    S r   r   r$   s    €r   r   z/diminishedSeventhToMinorTonic.<locals>.<lambda>”  rƒ   r!   r&   c                ó(   •— | j         ‰j         k    o‰S r   r   r¤   s    €€r   r   z/diminishedSeventhToMinorTonic.<locals>.<lambda>•  r¦   r!   ri   c                ó$   •— | j         ‰j         k    S r   r   rb   s    €r   r   z/diminishedSeventhToMinorTonic.<locals>.<lambda>–  rd   r!   c                ó$   •— | j         ‰j         k    S r   r   r(   s    €r   r   z/diminishedSeventhToMinorTonic.<locals>.<lambda>—  rd   r!   c                ó$   •— | j         ‰j         k    S r   r   rn   s    €r   r   z/diminishedSeventhToMinorTonic.<locals>.<lambda>˜  ro   r!   r"   rª   r¬   s
    `    @@@@r   ÚdiminishedSeventhToMinorTonicr¸   p  r±   r!   c                ó  ‡‡‡— |€Xt          j        | ¦  «        }|                     ¦   «         st          d¦  «        ‚t	          t          j        | ¦  «        ¦  «        }|\  }ŠŠ}Šˆfd„dfˆfd„dfˆfd„dfg}t          | |¦  «        S )	a^  
    Resolves a fully diminished seventh chord to the
    major subdominant (IV).

    >>> from music21.figuredBass import resolution
    >>> Cs3 = pitch.Pitch('C#3')
    >>> G3 = pitch.Pitch('G3')
    >>> E4 = pitch.Pitch('E4')
    >>> Bb4 = pitch.Pitch('B-4')
    >>> dimPossibA = (Bb4, E4, G3, Cs3)
    >>> resPossibA = resolution.diminishedSeventhToMajorSubdominant(dimPossibA)
    >>> [str(p) for p in resPossibA]
    ['B4', 'D4', 'G3', 'D3']
    >>> #_DOCS_SHOW resolution.showResolutions(dimPossibA, resPossibA)

    .. image:: images/figuredBass/fbResolution_vii7toIV.*
            :width: 150
    Nr¡   c                ó$   •— | j         ‰j         k    S r   r   r$   s    €r   r   z5diminishedSeventhToMajorSubdominant.<locals>.<lambda>·  rƒ   r!   r&   c                ó$   •— | j         ‰j         k    S r   r   rb   s    €r   r   z5diminishedSeventhToMajorSubdominant.<locals>.<lambda>¸  rd   r!   ri   c                ó$   •— | j         ‰j         k    S r   r   rn   s    €r   r   z5diminishedSeventhToMajorSubdominant.<locals>.<lambda>¹  ro   r!   rP   rª   )	r­   r®   r¯   rŠ   Úunused_fifthrE   r%   rk   rc   s	         @@@r   Ú#diminishedSeventhToMajorSubdominantr¾   �  s³   øøø€ ð& ÐÝ”;˜yÑ)Ô)ˆØ×+Ò+Ñ-Ô-ð 	^Ý%Ð&\Ñ]Ô]Ð]Ý*­5¬;°yÑ+AÔ+AÑBÔBˆØ8DÑ5€[�$˜˜|¨Wà2Ð2Ð2Ð2°DÐ9Ø3Ð3Ð3Ð3°UÐ;Ø5Ð5Ð5Ð5°tÐ<ð>€Lõ ˜9 lÑ3Ô3Ð3r!   c                ó  ‡‡— |€Xt          j        | ¦  «        }|                     ¦   «         st          d¦  «        ‚t	          t          j        | ¦  «        ¦  «        }|\  }ŠŠ}}ˆfd„dfˆfd„dfg}t          | |¦  «        S )a`  
    Resolves a fully diminished seventh chord to the
    minor subdominant (iv).

    >>> from music21.figuredBass import resolution
    >>> Cs3 = pitch.Pitch('C#3')
    >>> G3 = pitch.Pitch('G3')
    >>> E4 = pitch.Pitch('E4')
    >>> Bb4 = pitch.Pitch('B-4')
    >>> dimPossibA = (Bb4, E4, G3, Cs3)
    >>> resPossibA = resolution.diminishedSeventhToMinorSubdominant(dimPossibA)
    >>> [str(p) for p in resPossibA]
    ['B-4', 'D4', 'G3', 'D3']
    >>> #_DOCS_SHOW resolution.showResolutions(dimPossibA, resPossibA)

    .. image:: images/figuredBass/fbResolution_vii7toIVm.*
            :width: 150
    Nr¡   c                ó$   •— | j         ‰j         k    S r   r   r$   s    €r   r   z5diminishedSeventhToMinorSubdominant.<locals>.<lambda>Ø  rƒ   r!   r&   c                ó$   •— | j         ‰j         k    S r   r   rb   s    €r   r   z5diminishedSeventhToMinorSubdominant.<locals>.<lambda>Ù  rd   r!   ri   rª   )	r­   r®   r¯   rŠ   r½   r˜   rE   r%   rc   s	          @@r   Ú#diminishedSeventhToMinorSubdominantrÂ   ¾  s¡   øø€ ð& ÐÝ”;˜yÑ)Ô)ˆØ×+Ò+Ñ-Ô-ð 	^Ý%Ð&\Ñ]Ô]Ð]Ý*­5¬;°yÑ+AÔ+AÑBÔBˆØ?KÑ<€[�$˜˜|¨^à2Ð2Ð2Ð2°DÐ9Ø3Ð3Ð3Ð3°UÐ;ð=€Lõ ˜9 lÑ3Ô3Ð3r!   c                 óÞ  — t          j        ¦   «         }t          j        ¦   «         }| D ]p}t          j        |dd…         ¦  «        }d|_        t          j        |d         ¦  «        }d|_        |                     |¦  «         |                     |¦  «         Œqt          j        ¦   «         }| 	                    d|¦  «         | 	                    d|¦  «         | 
                    ¦   «          dS )zž
    Takes in possibilities as arguments and adds them in order
    to a :class:`~music21.stream.Score` which is then displayed
    in external software.
    r   éÿÿÿÿg       @N)r   ÚPartr   r4   ÚquarterLengthr   ÚNoteÚappendÚScoreÚinsertÚshow)Ú	allPossibÚ
upperPartsÚbassLineÚpossibAÚchordAÚbassAÚscores          r   ÚshowResolutionsrÓ   Þ  sÐ   € õ ”‘”€JÝŒ{‰}Œ}€HØð ð ˆÝ”˜W Q r Tœ]Ñ+Ô+ˆØ"ˆÔÝ”	˜' "œ+Ñ&Ô&ˆØ!ˆÔØ×Ò˜&Ñ!Ô!Ð!Ø�Š˜ÑÔÐÐÝŒL‰NŒN€EØ	‡L‚L��JÑÔÐØ	‡L‚L��HÑÔÐØ	‡J‚J�L„L€L€L€Lr!   c                ó,   — |                       |¦  «        S r   )Ú	transpose)ÚsamplePitchÚintervalStrings     r   Ú
_transposerØ   ö  s   € Ø× Ò  Ñ0Ô0Ð0r!   c                óÎ   — |                      d„ df¦  «         g }| D ]:}|D ]5\  }} ||¦  «        r%|                      t          ||¦  «        ¦  «          nŒ6Œ;t          |¦  «        S )zë
    Takes in a possibility to resolve and a list of (lambda function, intervalString)
    pairs and transposes each pitch by the intervalString corresponding to the lambda
    function that returns True when applied to the pitch.
    c                ó   — dS )NT© )r   s    r   r   z!_resolvePitches.<locals>.<lambda>   s   €  4€ r!   rK   )rÈ   rØ   Útuple)ÚpossibToResolverE   Ú
resPitchesrÖ   Ú
expressionr×   s         r   r@   r@   ú  s’   € ð ×Ò˜˜¨Ð.Ñ/Ô/Ð/Ø$&€JØ&ð ð ˆØ,8ð 	ð 	Ñ(ˆZ˜Øˆz˜+Ñ&Ô&ð Ø×!Ò!¥*¨[¸.Ñ"IÔ"IÑJÔJÐJØ�ðøõ �ÑÔÐr!   ÚseventhChordúchord.Chordúlist[pitch.Pitch | None]c                óâ   — |                       ¦   «         }|                      ¦   «         }|                      d¦  «        }|                      d¦  «        }|                      d¦  «        }|||||g}|S )zx
    Takes in a Chord and returns a list of Pitches (or Nones) corresponding
    to the bass, root, fifth, seventh.
    r   é   é   )r   r%   ÚgetChordStep)rà   r   r%   rc   r)   rk   ÚseventhChordInfos          r   r7   r7     sv   € ð ×ÒÑÔ€DØ×ÒÑÔ€DØ×%Ò% aÑ(Ô(€EØ×%Ò% aÑ(Ô(€EØ×'Ò'¨Ñ*Ô*€GØ˜d E¨5°'Ð:ÐØÐr!   c                  ó   — e Zd ZdS )r6   N©Ú__name__Ú
__module__Ú__qualname__rÛ   r!   r   r6   r6   &  ó   € € € € € Ø€Dr!   r6   c                  ó   — e Zd ZdS )ÚTestNré   rÛ   r!   r   rï   rï   ,  rí   r!   rï   Ú__main__)NN)r	   r
   r   r   r   r   )FNr   )r   r   )rà   rá   r   râ   )$Ú__doc__Ú
__future__r   Útypingr<   ÚunittestÚmusic21r   r   r   r   r   rF   rR   rZ   ru   r   r‹   r’   r™   rŸ   r°   r¸   r¾   rÂ   rÓ   rØ   r@   r7   Ú
_DOC_ORDERÚMusic21Exceptionr6   ÚTestCaserï   rê   ÚmainTestrÛ   r!   r   ú<module>rú      sé  ððð ð #Ð "Ð "Ð "Ð "Ð "à Ð Ð Ð Ø €€€à  Ð  Ð  Ð  Ð  Ð  Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð ð
  $Ø9=ðU9ð U9ð U9ð U9ð U9ðt  $Ø9=ðQ9ð Q9ð Q9ð Q9ð Q9ðl  $Ø9=ðP9ð P9ð P9ð P9ð P9ðfF4ð F4ð F4ð F4ðRF4ð F4ð F4ð F4ðR!4ð !4ð !4ð !4ðH!4ð !4ð !4ð !4ðH 4ð  4ð  4ð  4ðF 4ð  4ð  4ð  4ðF*4ð *4ð *4ð *4ðZ*4ð *4ð *4ð *4ðZ4ð 4ð 4ð 4ðB4ð 4ð 4ð 4ð@ð ð ð01ð 1ð 1ðð ð ð ð"ð ð ð ð  'Ø(Ð*DØ)Ð+FØ.Ð0PØ/Ð1RØ+Ð-JØ1Ð3VðX€
ð	ð 	ð 	ð 	ð 	˜,Ô7ñ 	ô 	ð 	ð	ð 	ð 	ð 	ð 	ˆ8Ôñ 	ô 	ð 	ð ˆzÒÐØ€N€N€NØ€GÔ�TÑÔÐÐÐð Ðr!   