
    3j89                    0   U d Z ddlmZ ddlZdZd Z e       Zd Zd Z e       Z	ed   Z
ed	   Ze
e
z   e
ed
   ed   ed   ed   ed   eeez   d	Zed   Zed   Zeeez   eez   ez   eez   ez   ez   ed   ez   ed   ez   eeez   eez   ez   eez   ez   ez   ed   ez   ed   ez   ed   dZ[[ed   ed   ed   ed   ed   ed   ed   dZed   ed   z   ed   z   ed   ed   z   ed   z   ed   ed   z   ed   z   ed   ed   z   ed   z   ed   ed   z   ed   z   ed   ed   z   ed   d ed   ed   ed   z   ed   ed   z   ed   z   ed   ed   z   ed   z   ed   ed   z   ed   z   ed   ed   z   ed   z   ed   ed   z   ed   z   d!Zd ed   ed   ed   z   ed   ed   z   ed   z   ed   ed   z   ed   z   ed   ed   z   ed   z   ed   ed   z   ed   z   ed   ed   z   ed   z   d"Zed#   ed$   ed%   ed&   ed   ed   ed   ed   ed'   ed(   d)
Zd*ed+<   ed   ed,   ed-   ed   ed.   ed/   ed0   ed1   ed2   ed   d)
Zd*ed3<   ed4   ed5   ed6   ed7   ed8   ed5   ed6   ed7   ed8   ed8   ed
   z   ed&   z   ed8   z   ed8   ed
   z   ed&   z   ed
   z   ed&   z   ed8   z   d9Zd:ed;<   ed
   ed   z   ed,   z   ed	   ed   z   ed,   z   ed   ed   z   ed,   z   d<Zd:ed=<   ed   ed>   z   ed   ed>   z   ed4   z   ed>   ed?   d@Zd:edA<   ed$   ed%   ed?   ed,   ed>   dBZd:edC<   edD   ed   ed$   z   ed   ed   ed4   z   ed   ed   z   ed   ed   z   dEed   ed$   z   ed   ed,   z   ed   ed   ed   z   ed   ed   z   dEed   ed$   z   ed   ed,   z   ed   ed4   z   ed   ed   ed   z   dEed?   ed>   dFdGZed   ed%   z   ed   ed4   z   dHZed2   ed   ed2   z   ed   ed2   z   ed	   ed2   z   ed   ed2   z   ed   ed2   z   dIZedD   ed&   z   edJ   z   ed4   z   edD   ed&   z   edJ   z   ed4   z   edD   ed&   z   edJ   z   ed4   z   edD   ed   z   ed   z   ed&   z   edJ   z   ed4   z   edD   ed   z   ed   z   ed&   z   edJ   z   ed4   z   edD   ed   z   ed   z   ed&   z   edJ   z   ed4   z   dKZi dLed$   dMed%   dNed&   dOed   dPed   dQed   dRed   dSed'   dTed(   dUed#   dVed>   dWed?   dXed8   dYedZ   d[ed\   d]ed^   d_ed`   i daedJ   dbedc   ddede   dfed7   dged6   dhedi   djed5   dkedl   dmedn   doed   dped0   dqed4   dred,   dsed   dted.   dued   dved   ed2   ed1   ed1   ed   ed	   ed1   z   ed1   ed4   z   ed   ed   z   dwZd:edx<   eej?                         D  ci c]  \  } } e |       | c}} z  Zed   ed   ed.   ed.   ed4   z   ed   ed   ed4   z   ed   ed   z   edy   z   ed   ed1   dz	Z!i d{ed   d|ed   ed   z   d}ed   d~ed   ded4   ded   ed&   z   ded	   ded1   ded   ed&   z   ded   ed&   z   ded   ded   dedD   ed/   z   ed   z   ded   edD   z   ded   edD   z   dedD   ded-   ed   ed&   ed	   ed4   ed&   ed&   ed&   z   ed&   ed   ed%   z   ed
   ed-   z   edD   ed2   z   ed   edD   z   ed1   ed   ed   z   ed	   ed4   z   dZ"ed   ed?   z   ed
   ed   z   ed?   z   ed   ed   z   ed?   z   ded   ed   dZ#i ed   doed$   ded,   ded%   ded4   dqed>   ded-   ded?   ded   ded&   ded(   ded   ded   dued8   dedc   ded^   ded   di ed   ded   ded'   ded   ded\   ded0   dedJ   ded
   ded   ded#   ded   dedD   dedZ   dede   ded`   ded	   dred   di ed/   ded   ded   dsed7   ded2   ded6   ded   dted   ded   dedy   ded   ded5   ded   dped   ded   ded   dved.   ded   ded   dedn   ded1   ded   ded   ded   dedi   ded   ded   dedl   ded   ded   diZ$i ed   dѓed$   dғed,   dӓed%   dԓed4   dՓed>   d֓ed-   dדed?   dؓed   dٓed&   dړed(   dۓed   dܓed   dݓed8   dޓedc   dߓed^   ded   di ed   ded   ded'   ded   ded\   ded0   dedJ   ded
   ded   ded#   ded   dedD   dedZ   dede   ded`   ded	   ded   di ed/   ded   ded   ded7   ded2   ded6   ded   ded   ded   dedy   ded   ded5   ded   ded   d ed   ded   ded.   ded   ded   dedn   ded1   ded   ded   d	ed   d
edi   ded   ded   dedl   ded   ded   diZ%eZ&e'dk(  rddl(Z( e(jR                          yyc c}} w (  a(  
This file contains some basic lookups for symbols (used where there is not much more
logical code to deduce).

Music21 standards generally follow Mary Turner De Garmo,
Introduction to Braille Music Transcription (2005) (called "degarmo" or "IBMT2005" below).

Signs from other books will be accepted if
and only if there is no conflict between them and BRL signs listed in IBMT2005.

A place where other signs are found generally is
New International Manual of Braille Music Notation (by Bettye Krolick), which we will cite as
"Krolick" or "krolick".
    )annotationsNTc                 F   i } d}d}t        j                  dd      D ]  }g }t        |      D ]*  \  }}d|z
  }|j                  |du rt	        |      nd       , dj                  t        |            }|dk7  rt        |      nd}	t        ||z         }
|
| |	<   |dz  } | S )	u  
    return a dictionary mapping six-dot braille characters to lists of dot orders.

    >>> B = braille.lookup.makeBrailleDictionary()
    >>> print(B[124])
    ⠋
    >>> print(B[126])
    ⠣

    A special character (unicode 0x2800)

    >>> print(B[0])
    ⠀
    i (  r   FT   )repeatT    )		itertoolsproduct	enumerateappendstrjoinreversedintchr)braille_dict_BRAILLE_STARTibTuplebListpostrueOrFalseposBackOffsetbTextbValcurrentStrValues              C/DATA/.local/lib/python3.12/site-packages/music21/braille/lookup.pymakeBrailleDictionaryr       s     LN	A##M!< )& 1CGMLL{d/B]+K !2 ("b[s5zanq01,T	Q =     c                    g }| D ]4  }t        |      }|D ]"  }|dk(  r	|j                  t        |             $ 6 |j                          t        t        dj                  d |D                       S )u   
    takes in an iterable of dots and returns them added together.

    >>> braille.lookup.dotsAdd([12, 3, 4])
    '⠏'

    Order does not matter:

    >>> braille.lookup.dotsAdd([4, 31, 2])
    '⠏'
    0r   c              3  2   K   | ]  }t        |        y w)N)r   ).0ds     r   	<genexpr>zdotsAdd.<locals>.<genexpr>X   s     2'Q#a&'s   )r   r   r   sort_Br   )dotIterdotsOutnnStrnSubs        r   dotsAddr.   D   sj     G1vDs{NN3t9%   LLNc"''2'22344r    c            	     ,   dddddddd} d	d
ddd	d
ddd}i }| D ]w  }i }|D ]  }t        | |   ||   g      ||<    |d   }|t        d   z   t        d   z   |z   |d<   |t        d   z   t        d   z   t        d   z   t        d   z   |z   |d<   |||<   y |S )N      |     }         )CDEFGABr   r      $   )128th64th32nd16theighthquarterhalfwholerG   -      brevelonga)r.   r(   )	stepNamesdurationTypes	stepDictsstepstepDictSingledurationrG   s          r   makePitchNameToNotesrR   [   s    I    ! M I%H'.	$xAX/Y'ZN8$ &w'"'"R&.2b6"9E"Aw"'"R&.2b6"9BrF"BRV"Ke"Sw(	$  r       r   rH   i     .   8   )	r   r	      r>   rS   rT   r            ~      )sharpzdouble-sharpztriple-sharpzquadruple-sharpz
half-sharpzone-and-a-half-sharpflatzdouble-flatztriple-flatzquadruple-flatz	half-flatzone-and-a-half-flatnatural"   iZ  i  #   id     r?   )rW   r>   rS   rT   r   rX   rY   r3   r2   r1   r0   r   )iir   r	   rW   r>   rS   rT   r   rX   )r   r	   rW   r>   rS   rT   r   rX   r6   r	      rI   r4   r5   )
r   r	   rW   r>   rS   rT   r   rX   rY   	   zdict[int, str]numbersUpperrW               i4	     numbersLowerr>   iB  i        )dummyr@   rA   rB   rC   rD   rE   rF   rG   rJ   rK   zdict[str, str]rests)largersmallerxsmalllengthPrefixes   {   )finaldoubledashedheavybarlines)12345fingerMarksiY  )r	   rW   r>   rS   rT   r   )prefixr;   r7   r:   suffix)zdown bowzup bow)staccatoaccenttenutostaccatissimozstrong accentzdetached legatoi  )	crescendozcresc.zcr.decrescendozdecresc.zdecr.abcr%   efghr   jklmr+   iA  o   pi  qi90  rs   ti)	  uvwi	  xyi4  ziL   !',-./:)?()^[]*alphabeti  )	plusminusdiminished_circlehalf_diminished_circletriangletriangle_lineitalics_sevenslashparenthesesspacedouble_spacenumberletter_signdottie	uppercase	metronomecommoncutmusic_hyphenztranscriber-added_signmusic_asteriskrh_keyboardlh_keyboardwordtriplet)tuplet_prefixfinger_changefirst_set_missing_fingermarksecond_set_missing_fingermarkopening_single_sluropening_double_slurclosing_double_sluropening_bracket_slurclosing_bracket_slurbasic_exceptionfull_inaccordr   zprint-paginationzbraille-music-parenthesis)normalangledsquare)shapez
on barlinezbetween notesr<   r   r=   Kr   L@r7   Ir:   MSP"r9   r   H9O6Rr   r8   Jr;   >NTQr   r   <U8V%   r   $+Xi*	  i:0  &;   r   i  \r"   Z7iD0  r   _i  r   Wi0  r   #Yi[  r   i@ =)00r  r  )10r  r  )r  r  r  )r  r  r  )r  r  r  )r  r  r  )r  r  r  )r  r  r  )01r  r  )11r  r  )r  r  r  )r  r  r  )r  r  r  )r  r  r  )r  r  r  )r  r  r  )r  r  r  )r  r  r  )r  r  r  )r  r  r  )r  r  r  )r  r  r  )r  r  r  )r  r  r  )r  r  r  )r  r  r  )r  r  r  )r  r  r  )r  r  r  )r  r  r  )r  r  r  )r  r  r  )r  r  r  )r  r  r  )r  r  r  )r  r  r  )r  r  r  )r  r  r  )r  r  r  )r  r  r  )r  r  r  )r  r  r  )r  r  r  )r  r  r  )r  r  r  )r  r  r  )r  r  r  )r  r  r  )r  r  r  )r  r  r  )r  r  r  )r  r  r  )r  r  r  )r  r  r  )r  r  r  )r  r  r  )r  r  r  )r  r  r  )r  r  r  )r  r  r  )r  r  r  )r  r  r  )r  r  r  __main__)*__doc__
__future__r   r
   _DOC_IGNORE_MODULE_OR_PACKAGEr   r(   r.   rR   pitchNameToNotes
_lowOctave_highOctaveoctaves_sharp_flataccidentals	intervalskeySignaturesnaturalsrj   __annotations__rp   rt   rx   r   r   clefsbowingSymbolsbeforeNoteExprtextExpressionsr   itemsr   chordSymbolssymbolsfermatasascii_charsbinary_dotsbrailleDotDict__name__music21mainTest)r   r   s   00r   <module>r&     s   #  $ B 5.< () U
e:%fgeffK'	 
C
3%%7"(6/F":V"CUV^')#w'7#em#eme3!&!6!>qEEM&(goR& 	2342322	 X4(2c72X3'"S'1X2&C0X3'"S'1Wr#w&C0Wr#w&WsGsGbg%sGbg%3/tHr#w&C0tHr"v%3/tHr#w&C0tHr$x'"S'13  "v"v2"v2B'$x"S'!BrF*$x"R& 2b6)$x"S'!BrF*$x"T("RV+- 
#w	!u	"v	"v	#w	"v	#w	$x	#w	"v n  
#w	!u	"v	"v	#w	"v	#w	$x	#w	"v n  UXtHsGsGh$xsGWWr"v2&C0Wr"v2&B/"R&82c7B~  fr#wA&!ur#wA&fr#wA&"  Wr"vg2A&fW	.  
A	B	C	A	B^  gb6GAJb6b6GAJb6GAJb6GAJ
 c7WQZc7WQZc7c7WQZc7WQZ
 d8gaj d8gaj d8gaj d8d8gaj 
 #wf/	< 3"R& g1o 3fr#wg3URW_Vbg%!ur#w C2b6!BtH,r!u4g2D)BqE1c7RVbh&A.c7RW$r"v-26DABqEI3"S'!BrF*RV3bh>AFWr#wB'"R&02d8;beC*A*B* B* C	*
 B* C* D* C* B* C* B* C* C* D* C*  D!*" E#*$ D%*& C'*( D)** C+*, D-*. D/*0 D1*2 E3*4 D5*6 A7*8 C9*: A;*< A=*> C?*@ CA*B BC*D BE*F 
C	D	D	A	AD		DBqE		B"R&S*. *V 	<#5#5#78#741aSVQY#78 8 sGVC g1o3Wr!u_Vbh&D1Vd8
!RU!BqEBqEM! bh! 2b6	!
 
2a5! 
2a52b6>! A! D! bfr"vo! 
2c7RV! BqE! be! bg2&B/! 2b6BsG#!  2c7RW$!!" BsG#!$ r"v%!& WV$&qE%'Ub6b6BrF?b6rFRVOrFRVO#wC(Wr#w&h12!#AAA!J S'BsG#R&2c7"RW,R&2c7"RW,
 S'UAqE3AqE3A qE3A rFC	A
 qE3A rFCA rFCA sGSA qE3A rFCA rFCA sGSA rFCA sGSA sGSA  tHc!A" qE3#A$ rFC%A& rFC'A( sGS)A* rFC+A, sGS-A. sGS/A0 tHc1A2 rFC3A4 sGS5A6 sGS7A8 tHc9A: sGS;A< tHc=A> tHc?A@ uIsAAB qE3CAD rFCEAF rFCGAH sGSIAJ rFCKAL sGSMAN sGSOAP tHcQAR rFCSAT sGSUAV sGSWAX tHcYAZ sGS[A\ tHc]A^ tHc_A` uIsaAb rFCcAd sGSeAf sGSgAh tHdsGStHctHcuIssGStHctHcuIstHcuIsuIsvJAAFAqEAqEA qEA rF	A
 qEA rFA rFA sGA qEA rFA rFA sGA rFA sGA sGA  tH !A" qE#A$ rF%A& rF'A( sG)A* rF+A, sG-A. sG/A0 tH 1A2 rF3A4 sG5A6 sG7A8 tH 9A: sG;A< tH =A> tH ?A@ uI!AAB qECAD rFEAF rFGAH sGIAJ rFKAL sGMAN sGOAP tH QAR rFSAT sGUAV sGWAX tH YAZ sG[A\ tH ]A^ tH _A` uI!aAb rFcAd sGeAf sGgAh tH sGtH tH uI!sGtH tH uI!tH uI!uI!vJ"AAH zG I 9s    j