§
    ƒØjŸ  ã                  óŒ   — d Z ddlmZ ddlmZ ddlmZ ddlmZ  G d„ de¦  «        Z	e
dk    rdd	lZ ej        ¦   «          d	S d	S )
zÑ
The FiguredBass object is a subclass of Harmony that will (eventually) be able
to represent figured bass symbols in music notation and also realize it.

BETA at this point.

Based on work by Jose Cabal-Ugaz.
é    )Úannotations)ÚIterable)ÚHarmony)Únotationc                  óâ   ‡ — e Zd ZdZ	 dddœdˆ fd	„Zedd„¦   «         Zej        dd„¦   «         Zedd„¦   «         Zej        dd„¦   «         Zedd„¦   «         Z	e	j        dd„¦   «         Z	d„ Z
ˆ xZS )ÚFiguredBassaí  
    *BETA*: FiguredBass objects are currently in beta and may change without warning.

    The FiguredBass objects store information about thorough bass figures.
    It is created as a representation for <fb> tags in MEI and <figured-bass> tags in MusicXML.
    The FiguredBass object derives from the Harmony object and can be used
    in the following way:

    >>> fb = figuredBass.FiguredBass('#,6#')
    >>> fb
    <music21.figuredBass.harmony.FiguredBass #,6#>

    (note that the FiguredBass object can be found in either music21.figuredBass.FiguredBass
    or music21.figuredBass.harmony.FiguredBass.  It is the same class)

    The single figures are stored as figuredBass.notation.Figure objects:

    >>> fb.notation.figures[0]
    <music21.figuredBass.notation.Figure 3 <Modifier # sharp>>

    The figures can be accessed and manipulated individually by passing in `figureStrings`
    (plural), and extenders are allowed as with `_`:

    >>> fb2 = figuredBass.FiguredBass(figureStrings=['#_', '6#'])
    >>> fb2
    <music21.figuredBass.harmony.FiguredBass #_,6#>
    >>> fb2.notation.hasExtenders
    True

    Currently, figured bass objects do not have associated pitches.  This will change.

    >>> fb.pitches
    ()

    * New in v9.3.
    Ú © )ÚfigureStringsÚfigureStringÚstrr   úIterable[str]c               óØ   •—  t          ¦   «         j        di |¤Ž d| _        |dk    r|| _        n|rd                     |¦  «        | _        t          j        | j        ¦  «        | _        d S )Nr	   ú,r
   )ÚsuperÚ__init__Ú_figsr   Újoinr   ÚNotationÚ_figNotation)Úselfr   r   ÚkeywordsÚ	__class__s       €ú�/Users/tedpeters/Documents/Projects/Claude Projects/Misc Tools/notename-sheets/.venv/lib/python3.11/site-packages/music21/figuredBass/harmony.pyr   zFiguredBass.__init__A   sv   ø€ ð
 	�‰ŒÔÐ$Ð$˜8Ð$Ð$Ð$àˆŒ
à˜2ÒÐØ ,ˆDÔÐØð 	8Ø #§¢¨Ñ 7Ô 7ˆDÔå/7Ô/@ÀÄÑ/LÔ/LˆÔÐÐó    Úreturnúnotation.Notationc                ó   — | j         S )aõ  
        Gets or sets the notation property of the FiguresBass object

        >>> fb = figuredBass.FiguredBass('6,#')
        >>> fb.figureString
        '6,#'
        >>> fb.notation
        <music21.figuredBass.notation.Notation 6,#>

        When setting, this updates the figureString property as well.

        >>> fb.notation = figuredBass.notation.Notation('7b,b')
        >>> fb.notation
        <music21.figuredBass.notation.Notation 7b,b>
        >>> fb.figureString
        '7b,b'
        )r   ©r   s    r   r   zFiguredBass.notationQ   s   € ð& Ô Ð r   ÚfigureNotationc                ó,   — || _         |j        | _        d S ©N)r   ÚnotationColumnr   )r   r    s     r   r   zFiguredBass.notationf   s   € à*ˆÔØ#Ô2ˆŒ
ˆ
ˆ
r   c                ó   — | j         S )aÚ  
        Get the figures as strings of the FiguresBass object.

        >>> fb = figuredBass.FiguredBass('6,#')
        >>> fb.figureString
        '6,#'
        >>> fb.notation
        <music21.figuredBass.notation.Notation 6,#>

        When setting the figureString the notation property is updated as well:

        >>> fb.figureString = '5,b'
        >>> fb.figureString
        '5,b'
        >>> fb.notation
        <music21.figuredBass.notation.Notation 5,b>
        )r   r   s    r   r   zFiguredBass.figureStringk   s   € ð& ŒzÐr   c                óP   — || _         t          j        | j         ¦  «        | _        d S r"   )r   r   r   )r   r   s     r   r   zFiguredBass.figureString€   s!   € à!ˆŒ
Ý Ô)¨$¬*Ñ5Ô5ˆŒˆˆr   ú	list[str]c                ó6   — | j                              d¦  «        S )a¬  
        Does the same as figureStrings but returns a list:

        >>> fb = figuredBass.FiguredBass('6,#')
        >>> fb.figureStrings
        ['6', '#']

        Like figureString, figureStrings can be set as well and updates the notation property:

        >>> fb.figureStrings = ['5', 'b']
        >>> fb.figureStrings
        ['5', 'b']
        >>> fb.notation
        <music21.figuredBass.notation.Notation 5,b>
        r   )r   Úsplitr   s    r   r   zFiguredBass.figureStrings…   s   € ð" Ô ×&Ò& sÑ+Ô+Ð+r   ÚNonec                ó:   — d                      |¦  «        | _        d S )Nr   )r   r   )r   r   s     r   r   zFiguredBass.figureStrings˜   s   € àŸHšH ]Ñ3Ô3ˆÔÐÐr   c                ó   — | j         j        S r"   )r   r#   r   s    r   Ú_reprInternalzFiguredBass._reprInternalœ   s   € ØŒ}Ô+Ð+r   )r	   )r   r   r   r   )r   r   )r    r   )r   r   )r   r   )r   r&   )r   r   r   r)   )Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   Úpropertyr   Úsetterr   r   r,   Ú__classcell__)r   s   @r   r   r      sC  ø€ € € € € ð#ð #ðJ &(ðMð 13ðMð Mð Mð Mð Mð Mð Mð Mð  ð!ð !ð !ñ „Xð!ð( „_ð3ð 3ð 3ñ „_ð3ð ðð ð ñ „Xðð( Ôð6ð 6ð 6ñ Ôð6ð ð,ð ,ð ,ñ „Xð,ð$ Ôð4ð 4ð 4ñ Ôð4ð,ð ,ð ,ð ,ð ,ð ,ð ,r   r   Ú__main__N)r0   Ú
__future__r   Úcollections.abcr   Úmusic21.harmonyr   Úmusic21.figuredBassr   r   r-   Úmusic21ÚmainTestr
   r   r   ú<module>r;      sÁ   ððð ð #Ð "Ð "Ð "Ð "Ð "à $Ð $Ð $Ð $Ð $Ð $à #Ð #Ð #Ð #Ð #Ð #à (Ð (Ð (Ð (Ð (Ð (ðA,ð A,ð A,ð A,ð A,�'ñ A,ô A,ð A,ðJ ˆzÒÐØ€N€N€NØ€GÔÑÔÐÐÐð Ðr   