
    rhQ9                    6   % S r SSKJr  SSKrSrS r\" 5       rS rS r\" 5       r	\S   r
\S	   r\
\
-   \
\S
   \S   \S   \S   \S   \\\-   S.	r\S   r\S   r\\\-   \\-   \-   \\-   \-   \-   \S   \-   \S   \-   \\\-   \\-   \-   \\-   \-   \-   \S   \-   \S   \-   \S   S.rCC\S   \S   \S   \S   \S   \S   \S   S.r\S   \S   -   \S   -   \S   \S   -   \S   -   \S   \S   -   \S   -   \S   \S   -   \S   -   \S   \S   -   \S   -   \S   \S   -   \S   S \S   \S   \S   -   \S   \S   -   \S   -   \S   \S   -   \S   -   \S   \S   -   \S   -   \S   \S   -   \S   -   \S   \S   -   \S   -   S!.rS \S   \S   \S   -   \S   \S   -   \S   -   \S   \S   -   \S   -   \S   \S   -   \S   -   \S   \S   -   \S   -   \S   \S   -   \S   -   S".r\S#   \S$   \S%   \S&   \S   \S   \S   \S   \S'   \S(   S).
rS*\S+'   \S   \S,   \S-   \S   \S.   \S/   \S0   \S1   \S2   \S   S).
rS*\S3'   \S4   \S5   \S6   \S7   \S8   \S5   \S6   \S7   \S8   \S8   \S
   -   \S&   -   \S8   -   \S8   \S
   -   \S&   -   \S
   -   \S&   -   \S8   -   S9.rS:\S;'   \S
   \S   -   \S,   -   \S	   \S   -   \S,   -   \S   \S   -   \S,   -   S<.rS:\S='   \S   \S>   -   \S   \S>   -   \S4   -   \S>   \S?   S@.rS:\SA'   \S$   \S%   \S?   \S,   \S>   SB.rS:\SC'   \SD   \S   \S$   -   \S   \S   \S4   -   \S   \S   -   \S   \S   -   SE.\S   \S$   -   \S   \S,   -   \S   \S   \S   -   \S   \S   -   SE.\S   \S$   -   \S   \S,   -   \S   \S4   -   \S   \S   \S   -   SE.\S?   \S>   SF.SG.r\S   \S%   -   \S   \S4   -   SH.r\S2   \S   \S2   -   \S   \S2   -   \S	   \S2   -   \S   \S2   -   \S   \S2   -   SI.r\SD   \S&   -   \SJ   -   \S4   -   \SD   \S&   -   \SJ   -   \S4   -   \SD   \S&   -   \SJ   -   \S4   -   \SD   \S   -   \S   -   \S&   -   \SJ   -   \S4   -   \SD   \S   -   \S   -   \S&   -   \SJ   -   \S4   -   \SD   \S   -   \S   -   \S&   -   \SJ   -   \S4   -   SK.r0 SL\S$   _SM\S%   _SN\S&   _SO\S   _SP\S   _SQ\S   _SR\S   _SS\S'   _ST\S(   _SU\S#   _SV\S>   _SW\S?   _SX\S8   _SY\SZ   _S[\S\   _S]\S^   _S_\S`   _0 Sa\SJ   _Sb\Sc   _Sd\Se   _Sf\S7   _Sg\S6   _Sh\Si   _Sj\S5   _Sk\Sl   _Sm\Sn   _So\S   _Sp\S0   _Sq\S4   _Sr\S,   _Ss\S   _St\S.   _Su\S   _Sv\S   _E\S2   \S1   \S1   \S   \S	   \S1   -   \S1   \S4   -   \S   \S   -   Sw.ErS:\Sx'   \\R?                  5        V Vs0 s H  u  p\ " U 5      U_M     snn -  r\S   \S   \S.   \S.   \S4   -   \S   \S   \S4   -   \S   \S   -   \Sy   -   \S   \S1   Sz.	r!0 S{\S   _S|\S   \S   -   _S}\S   _S~\S   _S\S4   _S\S   \S&   -   _S\S	   _S\S1   _S\S   \S&   -   _S\S   \S&   -   _S\S   _S\S   _S\SD   \S/   -   \S   -   _S\S   \SD   -   _S\S   \SD   -   _S\SD   _S\S-   _\S   \S&   \S	   \S4   \S&   \S&   \S&   -   \S&   \S   \S%   -   \S
   \S-   -   \SD   \S2   -   \S   \SD   -   \S1   \S   \S   -   \S	   \S4   -   S.Er"\S   \S?   -   \S
   \S   -   \S?   -   \S   \S   -   \S?   -   S.\S   \S   S.r#0 \S   So_\S$   S_\S,   S_\S%   S_\S4   Sq_\S>   S_\S-   S_\S?   S_\S   S_\S&   S_\S(   S_\S   S_\S   Su_\S8   S_\Sc   S_\S^   S_\S   S_0 \S   S_\S   S_\S'   S_\S   S_\S\   S_\S0   S_\SJ   S_\S
   S_\S   S_\S#   S_\S   S_\SD   S_\SZ   S_\Se   S_\S`   S_\S	   Sr_\S   S_E0 \S/   S_\S   S_\S   Ss_\S7   S_\S2   S_\S6   S_\S   St_\S   S_\S   S_\Sy   S_\S   S_\S5   S_\S   Sp_\S   S_\S   S_\S   Sv_\S.   S_E\S   S\S   S\Sn   S\S1   S\S   S\S   S\S   S\Si   S\S   S\S   S\Sl   S\S   S\S   S0Er$0 \S   S_\S$   S_\S,   S_\S%   S_\S4   S_\S>   S_\S-   S_\S?   S_\S   S_\S&   S_\S(   S_\S   S_\S   S_\S8   S_\Sc   S_\S^   S_\S   S_0 \S   S_\S   S_\S'   S_\S   S_\S\   S_\S0   S_\SJ   S_\S
   S_\S   S_\S#   S_\S   S_\SD   S_\SZ   S_\Se   S_\S`   S_\S	   S_\S   S_E0 \S/   S_\S   S_\S   S_\S7   S_\S2   S_\S6   S_\S   S_\S   S_\S   S_\Sy   S_\S   S_\S5   S_\S   S_\S   GS _\S   GS_\S   GS_\S.   GS_E\S   GS\S   GS\Sn   GS\S1   GS\S   GS\S   GS	\S   GS
\Si   GS\S   GS\S   GS\Sl   GS\S   GS\S   GS0Er%\r&\'GS:X  a  SSK(r(\(RR                  " 5         ggs  snn f (  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                 H   0 n SnSn[         R                  " SSS9 H  n/ n[        U5       H+  u  pVSU-
  nUR                  USL a  [	        U5      OS5        M-     SR                  [        U5      5      nUS:w  a  [        U5      OSn	[        X-   5      n
XU	'   US-  nM     U $ )	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              P/home/james-whalen/.local/lib/python3.13/site-packages/music21/braille/lookup.pymakeBrailleDictionaryr   "   s     LN	A##M!< )& 1CGMLL{d/B]+K !2 ("b[s5zan01,T	Q =     c                    / nU  H9  n[        U5      nU H%  nUS:X  a  M  UR                  [        U5      5        M'     M;     UR                  5         [        [        SR                  S U 5       5      5         $ )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  8   #    U  H  n[        U5      v   M     g 7f)N)r   ).0ds     r   	<genexpr>dotsAdd.<locals>.<genexpr>Z   s     2'Q#a&&'s   )r   r   r   sort_Br   )dotIterdotsOutnnStrnSubs        r   dotsAddr/   F   sj     G1vDs{NN3t9%   LLNc"''2'22344r    c            	     ,   SSSSSSSS.n S	S
SSS	S
SSS.n0 nU  Hv  n0 nU H  n[        X   X   /5      XE'   M     US   nU[        S   -   [        S   -   U-   US'   U[        S   -   [        S   -   [        S   -   [        S   -   U-   US'   XBU'   Mx     U$ )N      |     }         )CDEFGABr   r      $   )128th64th32nd16theighthquarterhalfwholerH   -      brevelonga)r/   r)   )	stepNamesdurationTypes	stepDictsstepstepDictSingledurationrH   s          r   makePitchNameToNotesrS   ]   s    I    ! M I%H'.	AX/Y'ZN$ &w'"'"R&.2b6"9E"Aw"'"R&.2b6"9BrF"BRV"Ke"Sw($  r       r   rI   i     .   8   )	r   r	      r?   rT   rU   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@   )rX   r?   rT   rU   r   rY   rZ   r4   r3   r2   r1   r   )iir   r	   rX   r?   rT   rU   r   rY   )r   r	   rX   r?   rT   rU   r   rY   r7   r	      rJ   r5   r6   )
r   r	   rX   r?   rT   rU   r   rY   rZ   	   zdict[int, str]numbersUpperrX               i4	     numbersLowerr?   iB  i        )dummyrA   rB   rC   rD   rE   rF   rG   rH   rK   rL   zdict[str, str]rests)largersmallerxsmalllengthPrefixes   {   )finaldoubledashedheavybarlines)12345fingerMarksiY  )r	   rX   r?   rT   rU   r   )prefixr<   r8   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@r8   Ir;   MSP"r:   r   H9O6Rr   r9   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/   rS   pitchNameToNotes
_lowOctave_highOctaveoctaves_sharp_flataccidentals	intervalskeySignaturesnaturalsrk   __annotations__rq   ru   ry   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#741S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 I 9s    j