
    rh3                        % S r SSKJr  SSKrSSKJr  / SQr/ SQr/ SQrS r	S	 r
S
 rS r " S S\R                  5      r/ rS\S'   \S:X  a  SSKr\R$                  " \5        gg)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                $   U [         ;  a  0 $ 0 n/ n[         H#  n[         H  nUR                  X4-   5        M     M%     U S:X  a/  U H'  n[        R
                  " U5      nXQUR                  '   M)     U$ U S:X  a/  U H'  n[        R
                  " U5      nXQUR                  '   M)     U$ U S:X  a/  U H'  n[        R
                  " U5      nXQUR                  '   M)     U$ U S:X  a-  U H'  n[        R
                  " U5      nXQUR                  '   M)     U$ )Nr   r   r   r   )
SUPPORTED_LANGUAGESSUPPORTED_MICROTONESSUPPORTED_ACCIDENTALSappendr   Pitchgermanfrenchitalianspanish)languageString
dictionarypitchStrings	microtone
accidentalpitchStringps          i/home/james-whalen/.local/lib/python3.13/site-packages/music21/languageExcerpts/naturalLanguageObjects.pygenerateLanguageDictionaryr%      s    00	JL)	/J	 67 0 * 'KK(A#.qxx  (   
4	'KK(A#.qxx  (  
4	'KK(A$/qyy! (  
4	'KK(A$/qyy! (     c                ~    [        U5      nX;  a  [        R                  " S5      $ [        R                  " X    5      $ )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)   >   s5    & *.9H"{{3;;x,--r&   c                B    SSK Jn  UR                  [        X5      5      $ )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.   X   s    ( 99W[9::r&   c                p    SSK Jn  U  Vs/ s H  n[        X15      PM     nnUR                  U5      $ s  snf )a1  
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   q   s5     AKLXx0HL;;x   Ms   3c                  &    \ rS rSrS rS rS rSrg)Test   c           	        U R                  S[        [        SS5      5      5        U R                  S[        [        SS5      5      5        U R                  S[        [        SS5      5      5        U R                  S[        [        SS5      5      5        U R                  S[        [        SS5      5      5        U R                  S[        [        SS5      5      5        U R                  S[        [        SS5      5      5        U R                  S[        [        SS5      5      5        U R                  S[        [        SS5      5      5        U R                  S[        [        SS5      5      5        U R                  S[        [        SS5      5      5        U R                  S[        [        SS5      5      5        U R                  S[        [        SS5      5      5        U R                  S[        [        SS5      5      5        U R                  S[        [        SS	5      5      5        U R                  S[        [        SS	5      5      5        U R                  S[        [        SS
5      5      5        U R                  S[        [        SS
5      5      5        U R                  S[        [        SS5      5      5        U R                  S[        [        SS5      5      5        U R                  S[        [        SS5      5      5        U R                  S[        [        SS
5      5      5        U R                  S[        [        SS
5      5      5        U R                  S[        [        SS5      5      5        U R                  S[        [        SS5      5      5        U R                  S[        [        SS5      5      5        U R                  S[        [        SS	5      5      5        U R                  S[        [        SS	5      5      5        g )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$   testConvertPitches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           	        U R                  S[        [        SS5      5      5        U R                  S[        [        SS5      5      5        U R                  S[        [        SS5      5      5        U R                  S[        [        SS5      5      5        U R                  S[        [        SS5      5      5        U R                  S[        [        SS5      5      5        U R                  S[        [        SS5      5      5        U R                  S[        [        SS5      5      5        U R                  S[        [        SS5      5      5        U R                  S[        [        SS5      5      5        U R                  S[        [        SS5      5      5        U R                  S[        [        SS5      5      5        U R                  S[        [        SS5      5      5        U R                  S[        [        SS5      5      5        U R                  S[        [        SS	5      5      5        U R                  S[        [        SS	5      5      5        U R                  S[        [        SS
5      5      5        U R                  S[        [        SS
5      5      5        U R                  S[        [        SS5      5      5        U R                  S[        [        SS5      5      5        U R                  S[        [        SS5      5      5        U R                  S[        [        SS
5      5      5        U R                  S[        [        SS
5      5      5        U R                  S[        [        SS5      5      5        U R                  S[        [        SS5      5      5        U R                  S[        [        SS5      5      5        U R                  S[        [        SS	5      5      5        U R                  S[        [        SS	5      5      5        g )Nz<music21.note.Note C>r:   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--->rA   z<music21.note.Note D>rB   z<music21.note.Note B-->rC   z<music21.note.Note E##>rD   z<music21.note.Note A####>rE   z<music21.note.Note B--->rF   )rG   rH   r.   rI   s    r$   testConvertNotes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           	     $
   U R                  S[        / S5      R                  5        U R                  S[        / S5      R                  5        U R                  S[        / S5      R                  5        U R                  S[        / S5      R                  5        U R                  S[        / S5      R                  5        U R                  S[        / S5      R                  5        U R                  S[        [        S	/S5      5      5        U R                  S[        [        S	/S5      5      5        U R                  S[        [        S
/S5      5      5        U R                  S[        [        S
/S5      5      5        U R                  S[        [        S/S5      5      5        U R                  S[        [        S/S5      5      5        U R                  S[        [        S/S5      5      5        U R                  S[        [        S/S5      5      5        U R                  S[        [        S/S5      5      5        U R                  S[        [        S/S5      5      5        U R                  S[        [        S/S5      5      5        U R                  S[        [        S/S5      5      5        U R                  S[        [        S/S5      5      5        U R                  S[        [        S/S5      5      5        U R                  S[        [        S/S5      5      5        U R                  S[        [        S/S5      5      5        U R                  S[        [        S/S5      5      5        U R                  S[        [        S/S5      5      5        U R                  S[        [        S/S5      5      5        U R                  S[        [        S/S5      5      5        U R                  S[        [        S/S5      5      5        U R                  S[        [        S/S5      5      5        U R                  S[        [        S/S5      5      5        U R                  S[        [        S/S5      5      5        U R                  S[        [        SS/S5      5      5        U R                  S[        [        SS/S5      5      5        U R                  S[        [        SS/S5      5      5        U R                  S [        [        SS/S5      5      5        g )!N r
   r:   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--->rA   z<music21.chord.Chord D>rB   z<music21.chord.Chord B-->rC   z<music21.chord.Chord E##>rD   z<music21.chord.Chord A####>rE   z<music21.chord.Chord B--->rF   z<music21.chord.Chord C## D>z<music21.chord.Chord F## G--->z<music21.chord.Chord B-- E##>z <music21.chord.Chord A#### B--->)rG   r5   pitchesrH   rI   s    r$   testConvertChords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&   rQ   N)__name__
__module____qualname____firstlineno__rK   rN   rS   __static_attributes__rQ   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   rZ   __annotations__rU   mainTestrQ   r&   r$   <module>rb      s    #  . P : "J.4;2!&F[8 F[X 
J  zT r&   