
    3j3                        U d Z ddlmZ ddlZddlmZ g dZg dZg dZd Z	d	 Z
d
 Zd Z G d dej                        Zg Zded<   edk(  rddlZ ej$                  e       yy)z0
Multilingual conversion of pitch, etc. objects
    )annotationsN)pitch)defrites)	z----z---z--- #z##z###z####)ABCDEFGc                   | t         vri S i }g }t        D ]!  }t        D ]  }|j                  ||z           # | dk(  r-|D ]&  }t	        j
                  |      }|||j                  <   ( |S | dk(  r-|D ]&  }t	        j
                  |      }|||j                  <   ( |S | dk(  r-|D ]&  }t	        j
                  |      }|||j                  <   ( |S | dk(  r+|D ]&  }t	        j
                  |      }|||j                  <   ( |S )Nr   r   r   r   )
SUPPORTED_LANGUAGESSUPPORTED_MICROTONESSUPPORTED_ACCIDENTALSappendr   Pitchgermanfrenchitalianspanish)languageString
dictionarypitchStrings	microtone
accidentalpitchStringps          \/DATA/.local/lib/python3.12/site-packages/music21/languageExcerpts/naturalLanguageObjects.pygenerateLanguageDictionaryr%      s#    00	JL)	/J	J 67 0 * 'KK(A#.Jqxx  (   
4	'KK(A#.Jqxx  (  
4	'KK(A$/Jqyy! (  
4	'KK(A$/Jqyy! (     c                z    t        |      }| |vrt        j                  d      S t        j                  ||          S )a  
    Converts a string to a :class:`music21.pitch.Pitch` object given a language.

    Supported languages are French, German, Italian, and Spanish

    Defaults to C natural

    >>> languageExcerpts.naturalLanguageObjects.toPitch('Es', 'de')
    <music21.pitch.Pitch E->

    >>> languageExcerpts.naturalLanguageObjects.toPitch('H', 'de')
    <music21.pitch.Pitch B>
    >>> for i in ['As', 'A', 'Ais']:
    ...     print(languageExcerpts.naturalLanguageObjects.toPitch(i, 'de'))
    A-
    A
    A#
    r   )r%   r   r   )r"   r   langDicts      r$   toPitchr)   =   s9    & *.9H("{{3;;x,--r&   c                D    ddl m} |j                  t        | |            S )a,  
    Converts a string to a :class:`music21.note.Note` object given a language

    Supported languages are French, German, Italian, and Spanish

    Defaults to C Natural

    >>> languageExcerpts.naturalLanguageObjects.toNote('Es', 'de')
    <music21.note.Note E->

    >>> languageExcerpts.naturalLanguageObjects.toNote('H', 'de')
    <music21.note.Note B>
    >>> for i in ['As', 'A', 'Ais']:
    ...     print(languageExcerpts.naturalLanguageObjects.toNote(i, 'de'))
    <music21.note.Note A->
    <music21.note.Note A>
    <music21.note.Note A#>
    r   )note)music21r+   Noter)   )r"   r   r+   s      r$   toNoter.   W   s    ( 99W[.9::r&   c                l    ddl m} | D cg c]  }t        ||       }}|j                  |      S c c}w )aI  
    Converts a list of strings to a :class:`music21.chord.Chord` object given a language

    Supported languages are French, German, Italian, and Spanish

    Unsupported strings default to pitch C Natural

    >>> languageExcerpts.naturalLanguageObjects.toChord(['Es', 'E', 'Eis'], 'de')
    <music21.chord.Chord E- E E#>
    r   )chord)r,   r0   r.   Chord)
pitchArrayr   r0   pitchObjnoteLists        r$   toChordr5   p   s7     AKLXx0HL;;x   Ms   1c                      e Zd Zd Zd Zd Zy)Testc           	        | j                  dt        t        dd                   | j                  dt        t        dd                   | j                  dt        t        dd                   | j                  dt        t        dd                   | j                  dt        t        dd                   | j                  dt        t        dd                   | j                  dt        t        dd                   | j                  dt        t        dd                   | j                  dt        t        dd                   | j                  dt        t        dd                   | j                  dt        t        dd                   | j                  dt        t        dd                   | j                  dt        t        dd                   | j                  dt        t        dd                   | j                  dt        t        dd	                   | j                  dt        t        dd	                   | j                  dt        t        dd
                   | j                  dt        t        dd
                   | j                  dt        t        dd                   | j                  dt        t        dd                   | j                  dt        t        dd                   | j                  dt        t        dd
                   | j                  dt        t        dd
                   | j                  dt        t        dd                   | j                  dt        t        dd                   | j                  dt        t        dd                   | j                  dt        t        dd	                   | j                  dt        t        dd	                   y )Nz<music21.pitch.Pitch C>hellor
   EisHSolRer   r   r   r   z<music21.pitch.Pitch C##>do doppio diesisz<music21.pitch.Pitch F##>fa doble sostenidoz<music21.pitch.Pitch G--->sol triple bemolz<music21.pitch.Pitch D>rez<music21.pitch.Pitch B-->Hesesz<music21.pitch.Pitch E##>Eisisz<music21.pitch.Pitch A####>   la quadruple dièsez<music21.pitch.Pitch B--->   si triple bémol)assertEqualreprr)   selfs    r$   testConvertPitcheszTest.testConvertPitches   s[   2D"9M4NO2DW9M4NO2D'9R4ST2DR4IJ 	2D9P4QR2D9K4LM2Dg9N4OP2Db9I4JK2D9P4QR2D9K4LM2Dw9O4PQ2Dr9J4KL 	2D$9O4PQ2DT9J4KL2D$9O4PQ2DT9J4KL2D$9O4PQ2DT9J4KL2D$9O4PQ2DT9J4KL 	4d7CUCG<I 7J 	K4d7CWCG<I 7J 	K5tGDVDH=J 8K 	L2Dt9L4MN4d77D;Q6RS4d77D;Q6RS6g&;TBC	E5tGDVX\<]7^_r&   c           	        | j                  dt        t        dd                   | j                  dt        t        dd                   | j                  dt        t        dd                   | j                  dt        t        dd                   | j                  dt        t        dd                   | j                  dt        t        dd                   | j                  dt        t        dd                   | j                  dt        t        dd                   | j                  dt        t        dd                   | j                  dt        t        dd                   | j                  dt        t        dd                   | j                  dt        t        dd                   | j                  dt        t        dd                   | j                  dt        t        dd                   | j                  dt        t        dd	                   | j                  dt        t        dd	                   | j                  dt        t        dd
                   | j                  dt        t        dd
                   | j                  dt        t        dd                   | j                  dt        t        dd                   | j                  dt        t        dd                   | j                  dt        t        dd
                   | j                  dt        t        dd
                   | j                  dt        t        dd                   | j                  dt        t        dd                   | j                  dt        t        dd                   | j                  dt        t        dd	                   | j                  dt        t        dd	                   y )Nz<music21.note.Note C>r9   r
   r:   r;   r<   r=   r   r   r   r   z<music21.note.Note C##>r>   z<music21.note.Note F##>r?   z<music21.note.Note G--->r@   z<music21.note.Note D>rA   z<music21.note.Note B-->rB   z<music21.note.Note E##>rC   z<music21.note.Note A####>rD   z<music21.note.Note B--->rE   )rF   rG   r.   rH   s    r$   testConvertNoteszTest.testConvertNotes   s?   0$vgr7J2KL0$vb'7J2KL0$vgw7O2PQ0$vb"~2FG 	0$veW7M2NO0$veR7H2IJ0$vc77K2LM0$vc22GH0$veW7M2NO0$veR7H2IJ0$vdG7L2MN0$vdB7G2HI 	0$vgt7L2MN0$vb$7G2HI0$vgt7L2MN0$vb$7G2HI0$vgt7L2MN0$vb$7G2HI0$vgt7L2MN0$vb$7G2HI 	2D@RTX9Y4Z[2D@TVZ9[4\]3T&ASUY:Z5[\0$vdD7I2JK2D9N4OP2D9N4OP4 (=t!DE	G3T&ASUY:Z5[\r&   c           	     $
   | j                  dt        g d      j                         | j                  dt        g d      j                         | j                  dt        g d      j                         | j                  dt        g d      j                         | j                  dt        g d      j                         | j                  dt        g d      j                         | j                  dt        t        d	gd                   | j                  dt        t        d	gd                   | j                  dt        t        d
gd                   | j                  dt        t        d
gd                   | j                  dt        t        dgd                   | j                  dt        t        dgd                   | j                  dt        t        dgd                   | j                  dt        t        dgd                   | j                  dt        t        dgd                   | j                  dt        t        dgd                   | j                  dt        t        dgd                   | j                  dt        t        dgd                   | j                  dt        t        dgd                   | j                  dt        t        dgd                   | j                  dt        t        dgd                   | j                  dt        t        dgd                   | j                  dt        t        dgd                   | j                  dt        t        dgd                   | j                  dt        t        dgd                   | j                  dt        t        dgd                   | j                  dt        t        dgd                   | j                  dt        t        dgd                   | j                  dt        t        dgd                   | j                  dt        t        dgd                   | j                  dt        t        ddgd                   | j                  dt        t        ddgd                   | j                  dt        t        ddgd                   | j                  d t        t        ddgd                   y )!N r
   r9   r   r   r   r   z<music21.chord.Chord C>r:   r;   r<   r=   z<music21.chord.Chord C##>r>   z<music21.chord.Chord F##>r?   z<music21.chord.Chord G--->r@   z<music21.chord.Chord D>rA   z<music21.chord.Chord B-->rB   z<music21.chord.Chord E##>rC   z<music21.chord.Chord A####>rD   z<music21.chord.Chord B--->rE   z<music21.chord.Chord C## D>z<music21.chord.Chord F## G--->z<music21.chord.Chord B-- E##>z <music21.chord.Chord A#### B--->)rF   r5   pitchesrG   rH   s    r$   testConvertChordszTest.testConvertChords   s^   WR_445WR199: 	WR.667WR.667WR.667WR.667 	2D%'9R4ST2D%"9M4NO2D#9P4QR2D#9K4LM2D%'9R4ST2D%"9M4NO2D$9Q4RS2D$9L4MN 	2D'D9Q4RS2D"t9L4MN2D'D9Q4RS2D"t9L4MN2D'D9Q4RS2D"t9L4MN2D'D9Q4RS2D"t9L4MN 	4g'9&:DAB	D4g';&<dCD	F5g'9&:DAB	D2D$9N4OP4d7G9d;S6TU4d7G9d;S6TU6g'<&=tDE	G5g'9&:DAB	D 	6g'94&@$GH	J9g';=O&PRVWX	Z8gw&8$?@	B;g'<>P&QSWXY	[r&   N)__name__
__module____qualname__rJ   rL   rP   rN   r&   r$   r7   r7      s    '`R$]L5[r&   r7   z
list[type]
_DOC_ORDER__main__)__doc__
__future__r   unittestr,   r   r   r   r   r%   r)   r.   r5   TestCaser7   rT   __annotations__rQ   mainTestrN   r&   r$   <module>r\      s    #  . P : "J.4;2!&F[8 F[X 
J  zGT r&   