§
    ƒØj®—  ã                   ó¬  — d dl Z d dlZd dlZd dlmZmZ d dlmc mZ	 d dl
mZ d dlmZmZ d dlZd dlmZ d dlmZmZmZmZmZmZmZ d dlmZ d dlmZmZ d d	lm Z m!Z!m"Z"  e!e#¦  «        Z$d
Z%g d¢Z&g d¢Z'g d¢Z(g d¢Z)ej*        de%dz  dœej+        de%dz  dœej,        de%dz  dœej-        de%dœej.        de%dz  dœej/        de%dz  dœej0        de%dz  dœej1        de%d
z  dœiZ2ej-        e%ej.        e%dz  ej/        e%dz  ej0        e%dz  ej1        e%d
z  ej3        e%dz  ej*        e%dz  ej+        e%dz  iZ4d„ e4 5                    ¦   «         D ¦   «         Z6 G d„ dej7        ¦  «        Z8 G d„ d¦  «        Z9 G d„ d ¦  «        Z: G d!„ d"¦  «        Z; G d#„ d$e;¦  «        Z< G d%„ d&e;¦  «        Z= G d'„ d(e;¦  «        Z> G d)„ d*e;¦  «        Z? G d+„ d,e;¦  «        Z@ G d-„ d.e;¦  «        ZA G d/„ d0e;¦  «        ZB G d1„ d2e;¦  «        ZC G d3„ d4¦  «        ZDdXd6„ZEd7„ ZFd8„ ZGd9„ ZHd:„ ZId;„ ZJd<„ ZKd=„ ZLd>„ ZMdYd@efdA„ZNd@efdB„ZOdC„ ZPdD„ ZQd@efdE„ZRd@efdF„ZSdZdG„ZTdH„ ZUdI„ ZVd[dJ„ZWdK„ ZXe#dLk    �ry ejY        dM¦  «        ZZ ejY        dN¦  «        Z[ ejY        dO¦  «        Z\ ejY        dP¦  «        Z] ejY        dQ¦  «        Z^ ejY        dR¦  «        Z_ eF¦   «         Z` eHe`¦  «        Za eD¦   «         Zbeb c                    ¦   «          eb d                    ¦   «         Ze efdSdT¦  «         g                    ee¦  «          e¦   «         ZhdUeh_i        dVeh_j        dVeh_k        ej-        eh_l        d eh_m        d eh_n         eU eNehejo        ¦  «        ¦  «         p                    dW¦  «        Zq e¦   «         Zrej.        er_l        d er_m        d er_n         eU eOer¦  «        ¦  «         p                    dW¦  «        ZsdS dS )\é    N)ÚListÚMapping)Úminidom)ÚElementÚ
SubElement)Úlayers)ÚBarlineÚClefÚSfnÚRestÚSfnTypeÚClefTypeÚRestType)Ú	NoteGroup)ÚNoteHeadÚNoteType)Úget_global_unit_sizeÚ
get_loggerÚget_total_track_numsé   )ÚDÚEÚFÚGÚAÚBÚC)r   r   r   r   r   r   r   )r   r   r   r   r   r   )r   r   r   r   r   r   Úwholeé   )ÚnameÚdurationÚhalfé   ÚquarterÚeighthÚ16thÚ32ndé   Ú64thc                 ó   — i | ]\  }}||“Œ	S © r+   ©Ú.0ÚkÚvs      ú‡/Users/tedpeters/Documents/Projects/Claude Projects/Misc Tools/notename-sheets/.venv/lib/python3.11/site-packages/oemer/build_system.pyú
<dictcomp>r1   1   s   € ÐHÐHÐH¡$ ! Q˜˜AÐHÐHÐHó    c                   óB   — e Zd ZdZdZdZdZdZdZdZ	dZ
d	Zd
ZdZdZdZdS )ÚKeyr   é   r#   é   r   é   é   éÿÿÿÿéþÿÿÿéýÿÿÿéüÿÿÿéûÿÿÿiúÿÿÿN)Ú__name__Ú
__module__Ú__qualname__ÚC_MAJORÚG_MAJORÚD_MAJORÚA_MAJORÚE_MAJORÚB_MAJORÚF_SHARP_MAJORÚF_MAJORÚB_FLAT_MAJORÚE_FLAT_MAJORÚA_FLAT_MAJORÚD_FLAT_MAJORÚG_FLAT_MAJORr+   r2   r0   r4   r4   4   sO   € € € € € Ø€GØ€GØ€GØ€GØ€GØ€GØ€MØ€GØ€LØ€LØ€LØ€LØ€L€L€Lr2   r4   c                   ó    — e Zd Zd„ Zd„ Zd„ ZdS )ÚVoicec                 ó    — d | _         g | _        d | _        d | _        d | _        d | _        d | _        d | _        d | _        d | _	        d | _
        d S ©N)ÚidÚnote_idsÚstem_upÚgroup_idÚx_centerÚlabelÚhas_dotÚgroupÚtrackr!   Úrhythm_name©Úselfs    r0   Ú__init__zVoice.__init__E   sV   € ØˆŒØ#%ˆŒØ!ˆŒØ!ˆŒØ#ˆŒØ#ˆŒ
Ø!ˆŒØˆŒ
ØˆŒ
Ø!ˆŒØ $ˆÔÐÐr2   c                 ó
  ‡— t          j        d¦  «        Šˆfd„| j        D ¦   «         }d„ t          |¦  «        D ¦   «         }|D ]}||xx         dz  cc<   Œt	          |                     ¦   «         d„ d¬¦  «        }|d         d         | _        ˆfd	„| j        D ¦   «         }t          |¦  «        }t          |¦  «        |z
  }||k    rdnd
| _	        | j        D ]J}‰|         j        | j        k    r ‰|          
                    | j        ¦  «         | j	        ‰|         _	        ŒKt          | j                 d         | _        t          | j                 d         | _        | j	        rt          | j        dz  ¦  «        | _        d S d S )NÚnotesc                 ó*   •— g | ]}‰|         j         ‘ŒS r+   ©rW   ©r-   Únidr`   s     €r0   ú
<listcomp>zVoice.init.<locals>.<listcomp>V   s    ø€ Ð<Ð<Ð< s�%˜”*Ô"Ð<Ð<Ð<r2   c                 ó   — i | ]}|d “ŒS ©r   r+   )r-   Úlls     r0   r1   zVoice.init.<locals>.<dictcomp>W   s   € Ð0Ð0Ð0˜b�B˜Ð0Ð0Ð0r2   r5   c                 ó   — | d         S ©Nr5   r+   )Úits    r0   ú<lambda>zVoice.init.<locals>.<lambda>Z   s
   € ¸2¸a¼5€ r2   T©ÚkeyÚreverser   c                 ó*   •— g | ]}‰|         j         ‘ŒS r+   )rX   rc   s     €r0   re   zVoice.init.<locals>.<listcomp>^   s    ø€ Ð<Ð<Ð< s��c”
Ô"Ð<Ð<Ð<r2   Fr    r!   ç      ø?)r   Ú	get_layerrS   ÚsetÚsortedÚitemsrW   ÚsumÚlenrX   Úforce_set_labelÚNOTE_TYPE_TO_RHYTHMr[   r!   Úround)	r]   ÚlabelsÚll_countrh   ÚdotsÚt_countÚf_countrd   r`   s	           @r0   Úinitz
Voice.initR   s•  ø€ ÝÔ  Ñ)Ô)ˆð =Ð<Ð<Ð<¨d¬mÐ<Ñ<Ô<ˆØ0Ð0¥C¨¡K¤KÐ0Ñ0Ô0ˆØð 	ð 	ˆBØ�RˆLˆLŒL˜AÑˆLˆL‰LˆLÝ˜(Ÿ.š.Ñ*Ô*Ð0@Ð0@È$ÐOÑOÔOˆØ˜a”[ ”^ˆŒ
ð =Ð<Ð<Ð<¨d¬mÐ<Ñ<Ô<ˆÝ�d‘)”)ˆÝ�d‘)”)˜gÑ%ˆØ&¨Ò0Ð0�t�t°eˆŒð ”=ð 	.ð 	.ˆCØ�SŒzÔ 4¤:Ò-Ð-Ø�c”
×*Ò*¨4¬:Ñ6Ô6Ð6Ø!%¤ˆE�#ŒJÔÐå.¨t¬zÔ:¸6ÔBˆÔÝ+¨D¬JÔ7¸
ÔCˆŒØŒ<ð 	7Ý! $¤-°#Ñ"5Ñ6Ô6ˆDŒMˆMˆMð	7ð 	7r2   c                 ó¢   — d| j         › d| j        › d| j        › d| j        › d| j        › dt          | j        ¦  «        › d| j        › d| j        › d	�S )
NzVoice z	
	Group: z
 / Track: z / Rhythm: z / Duration: z	
	Notes: z / Note Group: z / Dot: ú
)	rR   rY   rZ   r[   r!   rw   rS   rU   rX   r\   s    r0   Ú__repr__zVoice.__repr__n   s¦   € ðc˜œð cð cØœ
ðcð cØ.2¬jðcð cØEIÔEUðcð cØdhÔdqðcð cå˜DœMÑ*Ô*ðcð cà;?¼=ðcð càRVÔR^ðcð cð cð 	cr2   N)r>   r?   r@   r^   r€   rƒ   r+   r2   r0   rO   rO   D   sF   € € € € € ð%ð %ð %ð7ð 7ð 7ð8cð cð cð cð cr2   rO   c                   ó>   — e Zd Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Z	d„ Z
d	S )
ÚMeasurec                 ó®   — g | _         d | _        d| _        g | _        g | _        g | _        g | _        d | _        d | _        d | _	        g | _
        d | _        d S ©NF)ÚsymbolsÚdouble_barlineÚhas_clefÚclefsÚvoicesÚsfnsÚrestsÚnumberÚat_beginningrY   Ú
time_slotsÚ
slot_durasr\   s    r0   r^   zMeasure.__init__u   s\   € ØˆŒØ$(ˆÔØ#ˆŒØ!#ˆŒ
Ø')ˆŒØ!ˆŒ	Ø!#ˆŒ
ØˆŒØ"&ˆÔØˆŒ
à(*ˆŒØ&*ˆŒˆˆr2   c                 ó&  — | j                              |¦  «         t          | j         d„ ¬¦  «        | _         |D ]ç}t          |t          ¦  «        r| j                             |¦  «         Œ2t          |t          ¦  «        r"| j                             |¦  «         d| _	        Œit          |t          ¦  «        r| j                             |¦  «         Œ™t          |t          ¦  «        r| j                             |¦  «         ŒÉt          dt          |¦  «        › �¦  «        ‚t          | j        d„ ¬¦  «        | _        t          | j        d„ ¬¦  «        | _        t          | j        d„ ¬¦  «        | _        t          | j        d„ ¬¦  «        | _        d S )	Nc                 ó   — | j         S rQ   ©rV   ©Úss    r0   rl   z%Measure.add_symbols.<locals>.<lambda>†   s   € ¸!¼*€ r2   ©rn   TzInvalid instance type: c                 ó   — | j         S rQ   r•   r–   s    r0   rl   z%Measure.add_symbols.<locals>.<lambda>“   s   € ¸¼
€ r2   c                 ó   — | j         S rQ   r•   r–   s    r0   rl   z%Measure.add_symbols.<locals>.<lambda>”   ó   € °a´j€ r2   c                 ó   — | j         S rQ   r•   r–   s    r0   rl   z%Measure.add_symbols.<locals>.<lambda>•   s   € °A´J€ r2   c                 ó   — | j         S rQ   r•   r–   s    r0   rl   z%Measure.add_symbols.<locals>.<lambda>–   r›   r2   )rˆ   Úextendrt   Ú
isinstancerO   rŒ   Úappendr
   r‹   rŠ   r   r�   r   rŽ   Ú
ValueErrorÚtype)r]   rˆ   Úsyms      r0   Úadd_symbolszMeasure.add_symbols„   s‚  € ØŒ×Ò˜GÑ$Ô$Ð$Ý˜dœlÐ0DÐ0DÐEÑEÔEˆŒØð 	Hð 	HˆCÝ˜#�uÑ%Ô%ð 
HØ”×"Ò" 3Ñ'Ô'Ð'Ð'Ý˜C¥Ñ&Ô&ð HØ”
×!Ò! #Ñ&Ô&Ð&Ø $�”�Ý˜C¥Ñ%Ô%ð HØ”	× Ò  Ñ%Ô%Ð%Ð%Ý˜C¥Ñ&Ô&ð HØ”
×!Ò! #Ñ&Ô&Ð&Ð&å Ð!F½4À¹9¼9Ð!FÐ!FÑGÔGÐGÝ˜Tœ[Ð.BÐ.BÐCÑCÔCˆŒÝ˜DœJÐ,@Ð,@ÐAÑAÔAˆŒ
Ý˜4œ9Ð*>Ð*>Ð?Ñ?Ô?ˆŒ	Ý˜DœJÐ,@Ð,@ÐAÑAÔAˆŒ
ˆ
ˆ
r2   c                 óŠ   — t          ¦   «         }| j        r|nd}| j        |||z   …         }t          d„ |D ¦   «         ¦  «        S )Nr   c              3   ó@   K  — | ]}t          |t          ¦  «        V — Œd S rQ   )rŸ   r   ©r-   r£   s     r0   ú	<genexpr>z"Measure.has_key.<locals>.<genexpr>œ   s,   è è € Ð8Ð8¨C•:˜c¥3Ñ'Ô'Ð8Ð8Ð8Ð8Ð8Ð8r2   )r   r�   rˆ   Úall)r]   Útotal_tracksÚ	start_idxÚsymss       r0   Úhas_keyzMeasure.has_key˜   sQ   € Ý+Ñ-Ô-ˆØ$(Ô$5Ð<�L�L¸1ˆ	Ø”˜Y y°Ñ'=Ð=Ô>ˆÝÐ8Ð8°4Ð8Ñ8Ô8Ñ8Ô8Ð8r2   c                 ó  ‡‡— t          | j        ¦  «        dk    rt          d¦  «        S t          ¦   «         }|                      ¦   «         r7| j        r|}nd}|dz  dz   }t          |t          | j        ¦  «        ¦  «        }nt          d¦  «        S g Št          ||¦  «        D ];}| j        |         }t          |t          ¦  «        s n‰                     |¦  «         Œ<d„ t          |¦  «        D ¦   «         Š‰D ]}‰|j        xx         dz  cc<   Œt          ˆfd„‰D ¦   «         ¦  «        }t          ˆfd„‰D ¦   «         ¦  «        }|st                               d¦  «         ‰d         j        }	|�s=t"          j        dt"          j        dt"          j        di}
‰D ]}|
|j        xx         dz  cc<   Œt+          |
                     ¦   «         d	„ d
¬¦  «        }
|
d         d         t"          j        k    r|
d         |
d         c|
d<   |
d<   |
d         d         t"          j        k    rt"          j        }	n||
d         d         t"          j        k    r`|
d         d         t"          j        k    rt"          j        }	n7|
d         d         |
d         d         k    rt"          j        }	nt"          j        }	t/          t1          ‰¦  «        |z  ¦  «        }|	t"          j        k    r|dz  }‰D ]	}d
|_        Œ
t          |¦  «        S )Nr   é   r   c                 ó   — g | ]}d ‘ŒS rg   r+   ©r-   Ú_s     r0   re   z#Measure.get_key.<locals>.<listcomp>¸   s   € Ð3Ð3Ð3˜A�aÐ3Ð3Ð3r2   r5   c              3   óD   •K  — | ]}|j         ‰d          j         k    V — ŒdS ©r   Nrb   )r-   ÚssÚ
sfns_candss     €r0   r¨   z"Measure.get_key.<locals>.<genexpr>½   s1   øè è € ÐJÐJ¸�r”x ¨A¤Ô!4Ò4ÐJÐJÐJÐJÐJÐJr2   c              3   ó0   •K  — | ]}|‰d          k    V — ŒdS r´   r+   )r-   ÚccÚ
sfn_countss     €r0   r¨   z"Measure.get_key.<locals>.<genexpr>¾   s,   øè è € Ð?Ð?¨b˜˜J qœMÒ)Ð?Ð?Ð?Ð?Ð?Ð?r2   z?The number of key symbols are not all the same for every track!c                 ó   — | d         S rj   r+   r–   s    r0   rl   z!Measure.get_key.<locals>.<lambda>É   s
   € ¸A¸a¼D€ r2   Trm   r9   )rw   r�   r4   r   r­   r�   Úminrˆ   ÚrangerŸ   r   r    rZ   r©   ÚloggerÚwarningrW   r   ÚFLATÚSHARPÚNATURALrt   ru   rz   rv   Úis_key)r]   Ú
track_numsr«   Úend_idxÚir£   ÚsfnÚall_sameÚ	all_equalÚ	sfn_labelÚcounterÚcountr¹   r¶   s               @@r0   Úget_keyzMeasure.get_keyž   s  øø€ ÝˆtŒy‰>Œ>˜QÒÐÝ�q‘6”6ˆMå)Ñ+Ô+ˆ
à�<Š<‰>Œ>ð 		ØÔ ð à&�	�	à�	Ø  1‘n qÑ(ˆGÝ˜'¥3 t¤|Ñ#4Ô#4Ñ5Ô5ˆGˆGå�q‘6”6ˆMð ˆ
Ý�y 'Ñ*Ô*ð 	#ð 	#ˆAØ”,˜q”/ˆCÝ˜c¥3Ñ'Ô'ð Ø�Ø×Ò˜cÑ"Ô"Ð"Ð"ð 4Ð3¥ zÑ!2Ô!2Ð3Ñ3Ô3ˆ
Øð 	'ð 	'ˆCØ�s”yÐ!Ð!Ô! QÑ&Ð!Ð!Ñ!Ð!õ ÐJÐJÐJÐJ¸zÐJÑJÔJÑJÔJˆÝÐ?Ð?Ð?Ð?°JÐ?Ñ?Ô?Ñ?Ô?ˆ	àð 	^Ý�NŠNÐ\Ñ]Ô]Ð]à˜q”MÔ'ˆ	Øñ 	.å”| Q­¬°q½'¼/È1ÐMˆGØ!ð (ð (�Ø˜œ	Ð"Ð"Ô" aÑ'Ð"Ð"Ñ"Ð"Ý˜WŸ]š]™_œ_°.°.È$ÐOÑOÔOˆGØ�qŒz˜!Œ}¥¤Ò/Ð/à)0°¬°W¸Q´ZÐ&�˜‘
˜G A™Jà�qŒz˜!Œ}¥¤Ò,Ð,å#œL�	�	Ø˜”˜A”¥'¤-Ò/Ð/Ø˜1”:˜a”=¥G¤LÒ0Ð0Ý '¤�I�IØ˜Q”Z ”] W¨Q¤Z°¤]Ò2Ð2å '¤�I�Iõ
 !(¤�Iå•c˜*‘o”o¨
Ñ2Ñ3Ô3ˆØ�œÒ$Ð$Ø�R‰KˆEð ð 	ð 	ˆCØˆCŒJˆJå�5‰zŒzÐr2   c                 óœ  ‡— t          ¦   «         }| j        s| j        r—g }t          |¦  «        D ]ƒŠˆfd„| j        D ¦   «         }|r|                     |d         ¦  «         Œ3t          ¦   «         }‰|_        | j        |_        t          ‰dz  dz   ¦  «        |_
        |                     |¦  «         Œ„|S d„ t          |¦  «        D ¦   «         S )Nc                 ó*   •— g | ]}|j         ‰k    ¯|‘ŒS r+   ©rZ   )r-   ÚclefrZ   s     €r0   re   z*Measure.get_track_clef.<locals>.<listcomp>ì   s%   ø€ ÐKÐKÐK °t´zÀUÒ7JÐ7J˜Ð7JÐ7JÐ7Jr2   r   r#   r5   c                 ó   — g | ]}d ‘ŒS rQ   r+   r±   s     r0   re   z*Measure.get_track_clef.<locals>.<listcomp>ö   s   € Ð0Ð0Ð0˜�Ð0Ð0Ð0r2   )r   r�   r‰   r¼   r‹   r    r
   rZ   rY   r   rW   )r]   rÃ   r‹   rÐ   rZ   s       @r0   Úget_track_clefzMeasure.get_track_clefç   sá   ø€ Ý)Ñ+Ô+ˆ
ØÔð 	 Ô 3ð 	ØˆEÝ˜zÑ*Ô*ð 	'ð 	'�ØKÐKÐKÐK¨¬ÐKÑKÔK�Øð 'Ø—L’L  a¤Ñ)Ô)Ð)Ð)å™6œ6�DØ!&�D”JØ!%¤�D”JÝ!)¨%°©'°A©+Ñ!6Ô!6�D”JØ—L’L Ñ&Ô&Ð&Ð&ØˆLØ0Ð0�e JÑ/Ô/Ð0Ñ0Ô0Ð0r2   c                 ó\  ‡ ‡‡‡‡‡— t          ¦   «         }t          ¦   «         }g Šg Šd }t          ‰ j        ¦  «        D ]×\  Š}t	          |t
          ¦  «        r	‰ j        rŒ"Œ#t	          |t          ¦  «        rŒ9|€3|j        }‰ 	                    |g¦  «         ‰ 	                    ‰¦  «         Œnt          |j        |z
  ¦  «        |k     r‰d          	                    |¦  «         Œ¥‰ 	                    |g¦  «         ‰ 	                    ‰¦  «         |j        }ŒØg }t          j        t          ‰¦  «        |ft          j        ¬¦  «        Št          ‰¦  «        D ]Â\  Š}t          t          d„ |D ¦   «         ¦  «        ¦  «        dk    }|r| 	                    ‰¦  «         d„ t!          |¦  «        D ¦   «         }|D ]1}t#          |¦  «        }	||j                  	                    |	¦  «         Œ2t          |¦  «        D ]\  }
}	|	rt'          |	¦  «        nd}|‰‰|
f<   Œ ŒÃ|dk    r‰‰ _        ‰‰ _        d S |dk    s
J |¦   «         ‚d}d }d }d}d}t          j        ‰j        d         ‰j        d         dz   f¦  «        Št          j        ‰¦  «        ‰d d …d d…f<   ˆˆˆˆ ˆˆfd	„}t          ‰¦  «        D ]Ë\  Š}|\  }}|dk    r4|dk    r.|dk    r |||||¦  «        }||k    r||z
  }d}n||z
  }d}‰}d}ny|dk    r7|dk    r||z  }n(||k    r||z  }nd|cxk     r|k     r	n n||z
  }n|}‰}d}d
}n<|dk    r6|dk    r||z  }n(||k    r||z  }nd|cxk     r|k     r	n n||z
  }n|}‰}d}d
}|‰‰df<   |‰‰df<   ŒÌ|s|dk    r |||||¦  «        }‰‰ _        ‰d d …d d…f         ‰ _        ‰‰‰fS )Nr9   )Údtypec              3   ó$   K  — | ]}|j         V — Œd S rQ   rÏ   r§   s     r0   r¨   z(Measure.align_symbols.<locals>.<genexpr>  s$   è è € Ð:Ð:¨c ¤	Ð:Ð:Ð:Ð:Ð:Ð:r2   r5   c                 ó   — g | ]}g ‘ŒS r+   r+   r±   s     r0   re   z)Measure.align_symbols.<locals>.<listcomp>  s   € Ð3Ð3Ð3˜A�RÐ3Ð3Ð3r2   r   r#   Tc                 óž  •— ‰| d|z
  f         }|dk    rx‰|          D ]a}|j         d|z
  k    rQ|j        }|j        }t          |||z   ¦  «         t                               d|› d|› d|j        › d|j        › �¦  «         Œb||z   ‰| d|z
  f<   nÀt          |¦  «        }d|z
  |_         ‰j        |_        ‰|          d         j        }	|	d|	df|_	        ‰‰         |z   }
‰j
                             |
|¦  «         ‰|                               d|¦  «         |dz  }t                               d|› d|› d|
› d| › dd|z
  › �
¦  «         |‰| d|z
  f<   |S )Nr5   r   zBefore: z, Dot: z
 / After: zAdd: z, )rZ   rW   rX   Úextend_symbol_lengthr½   ÚdebugÚget_restrY   rV   Úbboxrˆ   Úinsert)Úadd_idxÚdiffÚ
lead_trackÚaddedÚpos_durar£   Ú	ori_labelÚori_dotÚrestrV   Ú
insert_idxÚ	corr_sidxÚidxÚnew_track_durasr]   r‘   Útrack_durass              €€€€€€r0   Úmodifyz%Measure.align_symbols.<locals>.modify3  sÅ  ø€ Ø" 7¨A¨j©LÐ#8Ô9ˆHØ˜1Š}ˆ}à% gÔ.ð Rð R�CØ”y A j¡LÒ0Ð0Ø$'¤I˜	Ø"%¤+˜Ý,¨S°$°x±-Ñ@Ô@Ð@ÝŸšð &Q°	ð &Qð &QÀ'ð &Qð &QØ14´ð&Qð &QØCFÄ;ð&Qð &Qñ Rô Rð Røà9=¸h¹� ¨¨:©Ð 5Ñ6Ð6õ   ‘~”~�Ø ™^�”
Ø!œZ�”
Ø% gÔ.¨qÔ1Ô:�Ø% q¨(°AÐ6�”	Ø& sœ^¨eÑ3�
Ø”×#Ò# J°Ñ5Ô5Ð5Ø˜7Ô#×*Ò*¨1¨dÑ3Ô3Ð3Ø˜‘
�Ý—’Ð\ TÐ\Ð\¨TÐ\Ð\°ZÐ\Ð\À7Ð\Ð\ÈaÐPZÉlÐ\Ð\Ñ]Ô]Ð]Ø9=� ¨¨:©Ð 5Ñ6ØˆLr2   Fr6   )r   r   Ú	enumeraterˆ   rŸ   r
   r�   r   rV   r    ÚabsÚnpÚzerosrw   Úuint16rs   r¼   Úget_durationrZ   r»   r‘   r’   ÚshapeÚcopy)r]   rÃ   Ú	unit_sizeÚlast_xr£   Úmulti_track_idxÚslotÚ	has_multiÚdurasÚdurarZ   ÚdurÞ   rß   rÝ   rà   Úsolvedrê   Út1Út2ræ   rç   rè   r‘   ré   s   `                   @@@@@r0   Úalign_symbolszMeasure.align_symbolsø   sØ  øøøøøø€ Ý)Ñ+Ô+ˆ
Ý(Ñ*Ô*ˆ	Øˆ
Øˆ	ØˆÝ! $¤,Ñ/Ô/ð 	*ð 	*‰HˆC�Ý˜#�tÑ$Ô$ð ØÔ$ð ØàÝ˜C¥Ñ%Ô%ð Øàˆ~Øœ�Ø×!Ò! 3 %Ñ(Ô(Ð(Ø× Ò  Ñ%Ô%Ð%Ð%å�s”| fÑ,Ñ-Ô-°	Ò9Ð9Ø˜r”N×)Ò)¨#Ñ.Ô.Ð.Ð.à×%Ò% s eÑ,Ô,Ð,Ø×$Ò$ SÑ)Ô)Ð)Ø œ\�F�Fð ˆÝ”h¥ J¡¤°Ð<ÅBÄIÐNÑNÔNˆÝ" :Ñ.Ô.ð 	-ð 	-‰IˆC�Ý�CÐ:Ð:°TÐ:Ñ:Ô:Ñ:Ô:Ñ;Ô;¸aÒ?ˆIØð ,Ø×&Ò& sÑ+Ô+Ð+à3Ð3¥ zÑ!2Ô!2Ð3Ñ3Ô3ˆEØð .ð .�Ý# CÑ(Ô(�Ø�c”iÔ ×'Ò'¨Ñ-Ô-Ð-Ð-Ý(¨Ñ/Ô/ð -ð -‘��tØ"&Ð-•S˜‘Y”Y�Y¨A�Ø*,�˜C ˜JÑ'Ð'ð-ð
 ˜Š?ˆ?Ø(ˆDŒOØ)ˆDŒOØˆFØ˜QŠˆˆ 
‰Œˆð ˆØˆ
ØˆØˆØˆÝœ( KÔ$5°aÔ$8¸+Ô:KÈAÔ:NÈqÑ:PÐ#QÑRÔRˆÝ!#¤¨Ñ!5Ô!5ˆ˜˜˜˜2˜A˜2˜Ñð	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	õ6 $ KÑ0Ô0ð )	1ð )	1‰JˆC�Ø‰FˆB�Ø�Q’�˜R !šV˜VØ˜!’8�8Ø"˜F 7¨D°*¸eÑDÔD�EØ˜’7�7Ø ™7�DØ!"�J�Jà ™7�DØ!"�JØ�Ø��Ø�a’�Ø ’?�?Ø˜B‘J�D�DØ˜R’Z�ZØ˜B‘J�D�Dà˜4�}�}’}�} "’}�}�}�}�}Ø! D™y˜˜à!˜Ø!�GØ!"�JØ��Ø�a’�Ø ’?�?Ø˜B‘J�D�DØ˜R’Z�ZØ˜B‘J�D�Dà˜4�}�}’}�} "’}�}�}�}�}Ø! D™y˜˜à!˜Ø!�GØ!"�JØ�à&*ˆO˜C ˜FÑ#Ø&0ˆO˜C ˜FÑ#Ð#àð 	=˜$ š(˜(Ø�F˜7 D¨*°eÑ<Ô<ˆEà$ˆŒØ)¨!¨!¨!¨R¨a¨R¨%Ô0ˆŒØ˜;¨Ð7Ð7r2   c                 ó  — t          | j        d d…         ¦  «        D ]J\  }}|d         j        |cxk    r| j        |dz            d         j        k     rn Œ9|| j        |         fc S ŒKt	          | j        ¦  «        dz
  | j        d         fS )Nr9   r   r5   )rë   r‘   rV   r’   rw   )r]   rV   rç   rö   s       r0   Úget_time_slot_durazMeasure.get_time_slot_dura€  s£   € Ý" 4¤?°3°B°3Ô#7Ñ8Ô8ð 	1ð 	1‰IˆC�Ø�AŒwÔ 8ÐPÐPÒPÐP¨d¬o¸cÀ!¹eÔ.DÀQÔ.GÔ.PÒPÐPÐPÐPÐPØ˜DœO¨CÔ0Ð0Ð0Ð0Ð0ð Qå�4”?Ñ#Ô# AÑ% t¤°rÔ':Ð:Ð:r2   c                 óP   — d| j         › dt          | j        ¦  «        › d| j        › �S )Nz	Measure: z / Symbols: z / Has clef: )r�   rw   rˆ   rŠ   r\   s    r0   rƒ   zMeasure.__repr__†  s?   € ð,˜4œ;ð ,ð ,µC¸¼Ñ4EÔ4Eð ,ð ,Ø œMð,ð ,ð 	,r2   N)r>   r?   r@   r^   r¤   r­   rÌ   rÒ   rþ   r   rƒ   r+   r2   r0   r…   r…   t   s—   € € € € € ð+ð +ð +ðBð Bð Bð(9ð 9ð 9ðGð Gð GðR1ð 1ð 1ð"F8ð F8ð F8ðP;ð ;ð ;ð,ð ,ð ,ð ,ð ,r2   r…   c                   óz   — e Zd Z G d„ d¦  «        Z e¦   «         Zd„ Zdefd„Zed„ ¦   «         Z	ed„ ¦   «         Z
dS )	ÚActionc                   ó|   — e Zd ZU dZeed<   g Zee         ed<   d„  e	d¦  «        D ¦   «         Z
eeef         ed<   dS )úAction.ContextNrn   r‹   c                 óN   — i | ]"}t          t          d ¦  «        |z   ¦  «        d“Œ#S ©r   N©ÚchrÚord©r-   rÅ   s     r0   r1   zAction.Context.<dictcomp>�  s*   € Ð'OÐ'OÐ'OÀ­­C°©H¬H°Q©J©¬¸Ð'OÐ'OÐ'Or2   r¯   Ú	sfn_state)r>   r?   r@   rn   r4   Ú__annotations__r‹   r   r
   r¼   r  r   Ústrr   r+   r2   r0   ÚContextr  �  sb   € € € € € € ØˆˆSˆˆ‰Øˆˆt�DŒzÐÐÑØ'OÐ'OÀeÀeÈAÁhÄhÐ'OÑ'OÔ'Oˆ	�7˜3 ˜8Ô$ÐOÐOÑOÐOÐOr2   r  c                 ó   — d S rQ   r+   r\   s    r0   r^   zAction.__init__”  s   € Øˆr2   Úreturnc                 ó   — t           ‚rQ   )ÚNotImplementedError)r]   Úkwargss     r0   ÚperformzAction.perform—  s   € Ý!Ð!r2   c                 ó’  — d„ t          d¦  «        D ¦   «         | j        _        | j        j        j        dk    r<t
          d | j        j        j        …         D ]}t          j        | j        j        |<   Œd S | j        j        j        dk     r;t          d | j        j        j         …         D ]}t          j	        | j        j        |<   Œd S d S )Nc                 óN   — i | ]"}t          t          d ¦  «        |z   ¦  «        d“Œ#S r  r  r  s     r0   r1   z)Action.init_sfn_state.<locals>.<dictcomp>œ  ó*   € ÐDÐDÐD°a�S¥ S¡¤¨!¡™_œ_¨TÐDÐDÐDr2   r¯   r   )
r¼   Úctxr  rn   ÚvalueÚSHARP_KEY_ORDERr   rÀ   ÚFLAT_KEY_ORDERr¿   )ÚclsÚsfn_names     r0   Úinit_sfn_statezAction.init_sfn_stateš  sÍ   € àDÐD½5À¹8¼8ÐDÑDÔDˆŒÔØŒ7Œ;Ô˜qÒ Ð Ý+Ð,>¨S¬W¬[Ô->Ð,>Ô?ð <ð <�Ý.5¬m�”Ô! (Ñ+Ð+ð<ð <àŒWŒ[Ô Ò"Ð"Ý*Ð+>¨S¬W¬[Ô->Ð,>Ð+>Ô?ð ;ð ;�Ý.5¬l�”Ô! (Ñ+Ð+ð #Ð"ð;ð ;r2   c                 ó|   — d | j         _        g | j         _        d„ t          d¦  «        D ¦   «         | j         _        d S )Nc                 óN   — i | ]"}t          t          d ¦  «        |z   ¦  «        d“Œ#S r  r  r  s     r0   r1   z Action.clear.<locals>.<dictcomp>¨  r  r2   r¯   )r  rn   r‹   r¼   r  )r  s    r0   ÚclearzAction.clear¤  s8   € àˆŒŒØˆŒŒØDÐD½5À¹8¼8ÐDÑDÔDˆŒÔÐÐr2   N)r>   r?   r@   r  r  r^   r   r  Úclassmethodr  r"  r+   r2   r0   r  r  ‹  s¶   € € € € € ðPð Pð Pð Pð Pñ Pô Pð Pð
 ˆ'‰)Œ)€Cðð ð ð" 7ð "ð "ð "ð "ð ð;ð ;ñ „[ð;ð ðEð Eñ „[ðEð Eð Er2   r  c                   ó,   ‡ — e Zd Zˆ fd„Zddefd„Zˆ xZS )Ú	KeyChangec                 óH   •—  t          ¦   «         j        di |¤Ž || _        d S ©Nr+   )Úsuperr^   rn   )r]   rn   r  Ú	__class__s      €r0   r^   zKeyChange.__init__¬  s+   ø€ Ø�‰ŒÔÐ"Ð"˜6Ð"Ð"Ð"ØˆŒˆˆr2   Nr  c                 ó¦   — | j         | j        _         |                      ¦   «          t          | j         ¦  «        }|�|                     |¦  «         |S rQ   )rn   r  r  Ú
decode_keyr    ©r]   Úparent_elemÚelems      r0   r  zKeyChange.perform°  sM   € Ø”xˆŒŒØ×ÒÑÔÐÝ˜$œ(Ñ#Ô#ˆØÐ"Ø×Ò˜tÑ$Ô$Ð$Øˆr2   rQ   ©r>   r?   r@   r^   r   r  Ú__classcell__©r)  s   @r0   r%  r%  «  sX   ø€ € € € € ðð ð ð ð ðð ¨7ð ð ð ð ð ð ð ð r2   r%  c                   ó,   ‡ — e Zd Zˆ fd„Zddefd„Zˆ xZS )Ú
ClefChangec                 óH   •—  t          ¦   «         j        di |¤Ž || _        d S r'  )r(  r^   rÐ   )r]   rÐ   r  r)  s      €r0   r^   zClefChange.__init__º  ó+   ø€ Ø�‰ŒÔÐ"Ð"˜6Ð"Ð"Ð"ØˆŒ	ˆ	ˆ	r2   Nr  c                 ó˜   — | j         | j        j        | j         j        <   t	          | j         ¦  «        }|�|                     |¦  «         |S rQ   )rÐ   r  r‹   rZ   Údecode_clefr    r,  s      r0   r  zClefChange.perform¾  sD   € Ø*.¬)ˆŒŒ�t”y”Ñ'Ý˜4œ9Ñ%Ô%ˆØÐ"Ø×Ò˜tÑ$Ô$Ð$Øˆr2   rQ   r/  r1  s   @r0   r3  r3  ¹  sX   ø€ € € € € ðð ð ð ð ðð ¨7ð ð ð ð ð ð ð ð r2   r3  c                   ó.   ‡ — e Zd Zddefˆ fd„Zdd„Zˆ xZS )	ÚAddNoteFr5   Únotec                 ód   •—  t          ¦   «         j        di |¤Ž || _        || _        || _        d S r'  )r(  r^   r:  ÚchordÚvoice)r]   r:  r<  r=  r  r)  s        €r0   r^   zAddNote.__init__Ç  s9   ø€ Ø�‰ŒÔÐ"Ð"˜6Ð"Ð"Ð"ØˆŒ	ØˆŒ
ØˆŒ
ˆ
ˆ
r2   Nc                 ó˜  — | j         j        | j        j                 j        }t          | j        j        |¦  «        }| j         j        |         }| j        j        �*|| j        j        k    r| j        j        | j         j        |<   n|| j        _        t          | j        || j
        | j        ¦  «        }|�|�|                     |¦  «         |S rQ   )r  r‹   r:  rZ   rW   Úget_chroma_pitchÚstaff_line_posr  rÆ   Údecode_noter<  r=  r    )r]   r-  Ú	clef_typeÚchromaÚcur_sfnr.  s         r0   r  zAddNote.performÍ  s®   € Ø”H”N 4¤9¤?Ô3Ô9ˆ	Ý! $¤)Ô":¸IÑFÔFˆØ”(Ô$ VÔ,ˆØŒIŒMÐ%¨G°t´y´}Ò,DÐ,DØ)-¬¬ˆDŒHÔ˜vÑ&Ð&à#ˆDŒIŒMÝ˜4œ9 i°´¸T¼ZÑHÔHˆØÐ Ð 7Ø×Ò˜tÑ$Ô$Ð$Øˆr2   ©Fr5   rQ   )r>   r?   r@   r   r^   r  r0  r1  s   @r0   r9  r9  Æ  s]   ø€ € € € € ðð ˜Xð ð ð ð ð ð ðð ð ð ð ð ð ð r2   r9  c                   ó&   ‡ — e Zd Zˆ fd„Zdd„Zˆ xZS )ÚAddRestc                 óH   •—  t          ¦   «         j        di |¤Ž || _        d S r'  )r(  r^   rä   )r]   rä   r  r)  s      €r0   r^   zAddRest.__init__Ü  r5  r2   Nc                 ó\   — t          | j        ¦  «        }|�|                     |¦  «         |S rQ   )Údecode_resträ   r    r,  s      r0   r  zAddRest.performà  s0   € Ý˜4œ9Ñ%Ô%ˆØÐ"Ø×Ò˜tÑ$Ô$Ð$Øˆr2   rQ   ©r>   r?   r@   r^   r  r0  r1  s   @r0   rG  rG  Û  óL   ø€ € € € € ðð ð ð ð ðð ð ð ð ð ð ð r2   rG  c                   ó&   ‡ — e Zd Zˆ fd„Zdd„Zˆ xZS )Ú	AddBackupc                 óH   •—  t          ¦   «         j        di |¤Ž || _        d S r'  ©r(  r^   rù   ©r]   rù   r  r)  s      €r0   r^   zAddBackup.__init__è  r5  r2   Nc                 ó\   — t          | j        ¦  «        }|�|                     |¦  «         |S rQ   )Údecode_backuprù   r    r,  s      r0   r  zAddBackup.performì  s0   € Ý˜TœYÑ'Ô'ˆØÐ"Ø×Ò˜tÑ$Ô$Ð$Øˆr2   rQ   rK  r1  s   @r0   rN  rN  ç  rL  r2   rN  c                   ó,   ‡ — e Zd Zdefˆ fd„Zdd„Zˆ xZS )Ú
AddForwardrù   c                 óH   •—  t          ¦   «         j        di |¤Ž || _        d S r'  rP  rQ  s      €r0   r^   zAddForward.__init__ô  r5  r2   Nc                 ó\   — t          | j        ¦  «        }|�|                     |¦  «         |S rQ   )Údecode_forwardrù   r    r,  s      r0   r  zAddForward.performø  s0   € Ý˜dœiÑ(Ô(ˆØÐ"Ø×Ò˜tÑ$Ô$Ð$Øˆr2   rQ   )r>   r?   r@   Úintr^   r  r0  r1  s   @r0   rU  rU  ó  sX   ø€ € € € € ð˜Sð ð ð ð ð ð ðð ð ð ð ð ð ð r2   rU  c                   ó2   ‡ — e Zd Zddedefˆ fd„Zdd„Zˆ xZS )	Ú
AddMeasureFÚmeasureÚ	add_breakc                 óV   •—  t          ¦   «         j        di |¤Ž || _        || _        d S r'  )r(  r^   r\  r]  )r]   r\  r]  r  r)  s       €r0   r^   zAddMeasure.__init__   s2   ø€ Ø�‰ŒÔÐ"Ð"˜6Ð"Ð"Ð"ØˆŒØ"ˆŒˆˆr2   Nc                 óæ   — |                       ¦   «          t          ddt          | j        j        ¦  «        i¬¦  «        }| j        rt          |dddi¬¦  «         |�|                     |¦  «         |S )Nr\  r�   ©ÚattribÚprintz
new-systemÚyes)r  r   r  r\  r�   r]  r   r    r,  s      r0   r  zAddMeasure.perform  s|   € Ø×ÒÑÔÐÝ�y¨(µC¸¼Ô8KÑ4LÔ4LÐ)MÐNÑNÔNˆØŒ>ð 	DÝ�t˜W¨l¸EÐ-BÐCÑCÔCÐCØÐ"Ø×Ò˜tÑ$Ô$Ð$Øˆr2   ©FrQ   )r>   r?   r@   r…   Úboolr^   r  r0  r1  s   @r0   r[  r[  ÿ  sd   ø€ € € € € ð#ð # ð #°Dð #ð #ð #ð #ð #ð #ð
ð ð ð ð ð ð ð r2   r[  c                   ó,   ‡ — e Zd Zdefˆ fd„Zdd„Zˆ xZS )ÚAddInitr\  c                 óZ   •—  t          ¦   «         j        di |¤Ž |j        sJ ‚|| _        d S r'  )r(  r^   r�   r\  )r]   r\  r  r)  s      €r0   r^   zAddInit.__init__  s:   ø€ Ø�‰ŒÔÐ"Ð"˜6Ð"Ð"Ð"ØÔ#Ð#Ð#Ð#ØˆŒˆˆr2   Nc                 ó\  — | j                              ¦   «         | j        _        | j                              ¦   «         | j        _        |                      ¦   «          t          ddt          | j         j	        ¦  «        i¬¦  «        }t          |d¦  «        }t          |d¦  «        }t          t          ¦  «        |_        t          | j                              ¦   «         ¦  «        }t          |¦  «        d         }|                     |¦  «         t          |d¦  «        }t          t!          ¦   «         ¦  «        |_        | j                              ¦   «         }|D ];}t#          |¦  «        }	t          |	¦  «        d         }	|                     |	¦  «         Œ<|�|                     |¦  «         |S )Nr\  r�   r`  Ú
attributesÚ	divisionsr   Ústaves)r\  rÌ   r  rn   rÒ   r‹   r  r   r  r�   r   ÚDIVISION_PER_QUATERÚtextr+  Úlistr    r   r7  )
r]   r-  r.  ÚattrÚdivrn   rl  Útrack_clefsrÐ   Ú	clef_elems
             r0   r  zAddInit.perform  sh  € Ø”|×+Ò+Ñ-Ô-ˆŒŒØœ×4Ò4Ñ6Ô6ˆŒŒØ×ÒÑÔÐå�y¨(µC¸¼Ô8KÑ4LÔ4LÐ)MÐNÑNÔNˆÝ˜$ Ñ-Ô-ˆÝ˜˜{Ñ+Ô+ˆÝÕ*Ñ+Ô+ˆŒÝ˜œ×-Ò-Ñ/Ô/Ñ0Ô0ˆÝ�3‰iŒi˜ŒlˆØ�Š�CÑÔÐÝ˜D (Ñ+Ô+ˆÝÕ.Ñ0Ô0Ñ1Ô1ˆŒà”l×1Ò1Ñ3Ô3ˆØð 	#ð 	#ˆDÝ# DÑ)Ô)ˆIÝ˜Y™œ¨Ô*ˆIØ�KŠK˜	Ñ"Ô"Ð"Ð"àÐ"Ø×Ò˜tÑ$Ô$Ð$Øˆr2   rQ   )r>   r?   r@   r…   r^   r  r0  r1  s   @r0   rg  rg    sX   ø€ € € € € ð ð ð ð ð ð ð ð
ð ð ð ð ð ð ð r2   rg  c                   ó*   — e Zd Zdd„Zd„ Zd„ Zdd„ZdS )	ÚMusicXMLBuilderNc                 ó0   — i | _         g | _        || _        d S rQ   )ÚmeasuresÚactionsÚtitle)r]   ry  s     r0   r^   zMusicXMLBuilder.__init__0  s   € Ø24ˆŒØ%'ˆŒØˆŒ
ˆ
ˆ
r2   c                 óÄ
  — t          j        d¦  «        }t          ¦   «         }t          |¦  «        }|                      |¦  «         t
                               ¦   «          | j        d         d         }| j         	                    t          |¦  «        ¦  «         |                     ¦   «         }|                     ¦   «         }t          |¦  «        }| j                             ¦   «         D �]t\  }}	d}
t          |	¦  «        D �][\  }}| j         	                    t!          ||
¬¦  «        ¦  «         d}
d}d}d}d„ t#          |¦  «        D ¦   «         }d„ t#          |¦  «        D ¦   «         }t          |j        ¦  «        D �]Ü\  }}|j        }t)          |t*          ¦  «        rC||         j        |j        k    r,| j         	                    t/          |¦  «        ¦  «         |||<   Œet)          |t0          ¦  «        rX|                     ¦   «         rC|                     ¦   «         }||k    r)| j         	                    t5          |¦  «        ¦  «         |}ŒÒ|                     |j        ¦  «        \  }}||         }t;          |¦  «        }||k    r;|dk    r5| j         	                    t=          t?          |¦  «        ¦  «        ¦  «         ndd„ t#          |¦  «        D ¦   «         }|||         z
  }|dk    r:||k    r4| j         	                    t=          t?          |¦  «        ¦  «        ¦  «         ||k    r ||         s||xx         |z  cc<   d||<   d}nd}t)          |t@          ¦  «        r5| j         	                    tC          |¦  «        ¦  «         ||         }|}|}�Œt)          |tD          ¦  «        �r©|j#        |k    r‰|r‡| j         	                    tI          ||j%        d                  ¦  «        ¦  «         |j%        d	d …         D ]1}| j         	                    tI          ||         d¬
¦  «        ¦  «         Œ2||         }|}|}�ŒÇ| j         	                    tI          ||j%        d                  d¬¦  «        ¦  «         |j%        d	d …         D ]2}| j         	                    tI          ||         dd¬¦  «        ¦  «         Œ3||         |j#        z   }||         r||z  }||z
  }|dk    r6| j         	                    tM          t?          |¦  «        ¦  «        ¦  «         �Œ¡|dk     r5| j         	                    t=          t?          | ¦  «        ¦  «        ¦  «         �ŒÞ�Œ]�Œvd S )Nr`   r   T)r]  Fc                 ó   — g | ]}d ‘ŒS rg   r+   r±   s     r0   re   z)MusicXMLBuilder.build.<locals>.<listcomp>M  s   € Ð$DÐ$DÐ$D¨1 QÐ$DÐ$DÐ$Dr2   c                 ó   — g | ]}d ‘ŒS rd  r+   r±   s     r0   re   z)MusicXMLBuilder.build.<locals>.<listcomp>N  s   € Ð!EÐ!EÐ!E¨A %Ð!EÐ!EÐ!Er2   c                 ó   — g | ]}d ‘ŒS rd  r+   r±   s     r0   re   z)MusicXMLBuilder.build.<locals>.<listcomp>c  s   € Ð-QÐ-QÐ-Q¸¨eÐ-QÐ-QÐ-Qr2   r5   )r<  r#   )r=  )r<  r=  )'r   rr   Ú
get_voicesÚsort_symbolsÚgen_measuresr  r"  rw  rx  r    rg  rÌ   rÒ   rw   ru   rë   r[  r¼   rˆ   rZ   rŸ   r
   rW   r3  r   r­   r%  r   rV   rð   rN  rY  r   rG  rO   r!   r9  rS   rU  )r]   r`   rŒ   Úgroup_containerÚfirst_measureÚcur_keyÚ	cur_clefsrª   Úgrprw  Úto_add_system_breakrç   r\  Ú	last_tidxÚ	last_duraÚlast_posÚtotal_track_durasÚmin_dura_addedÚsidxr£   rZ   rn   ÚtidxÚ	min_durasÚmin_durarù   rÞ   Ú	voice_onerd   Úcur_poss                                 r0   ÚbuildzMusicXMLBuilder.build5  sp  € åÔ  Ñ)Ô)ˆå‘”ˆÝ& vÑ.Ô.ˆØ×Ò˜/Ñ*Ô*Ð*å�Š‰ŒˆØœ aÔ(¨Ô+ˆØŒ×Ò�G MÑ2Ô2Ñ3Ô3Ð3à×'Ò'Ñ)Ô)ˆØ!×0Ò0Ñ2Ô2ˆ	Ý˜9‘~”~ˆØ!œ]×0Ò0Ñ2Ô2ð R	Oñ R	O‰MˆC�Ø"&ÐÝ )¨(Ñ 3Ô 3ð POñ PO‘��WØ”×#Ò#¥J¨wÐBUÐ$VÑ$VÔ$VÑWÔWÐWØ&+Ð#à�	Ø�	Ø�Ø$DÐ$Dµ°lÑ0CÔ0CÐ$DÑ$DÔ$DÐ!Ø!EÐ!Eµ°|Ñ1DÔ1DÐ!EÑ!EÔ!E�Ý!*¨7¬?Ñ!;Ô!;ð GOñ GO‘I�D˜#ØœI�EÝ! #¥tÑ,Ô,ð EOØ$ UÔ+Ô1°S´YÒ>Ð>Ø œL×/Ò/µ
¸3±´Ñ@Ô@Ð@Ø/2˜I eÑ,øÝ# C­Ñ-Ô-ð AOØ"Ÿ?š?Ñ,Ô,ð .Ø")§/¢/Ñ"3Ô"3˜CØ" gš~˜~Ø $¤× 3Ò 3µI¸c±N´NÑ CÔ CÐ CØ*- øð +2×*DÒ*DÀSÄ\Ñ*RÔ*R™˜˜iØ#,¨UÔ#3˜Ý+¨CÑ0Ô0˜Ø 9Ò,Ð,°¸Q²°Ø œL×/Ò/µ	½#¸i¹.¼.Ñ0IÔ0IÑJÔJÐJÐJà-QÐ-Q½UÀ<Ñ=PÔ=PÐ-QÑ-QÔ-Q˜NØ#+Ð.?ÀÔ.FÑ#F˜DØ# ašx˜x¨D°IÒ,=Ð,=Ø $¤× 3Ò 3µI½cÀ$¹i¼iÑ4HÔ4HÑ IÔ IÐ Ið ! HÒ,Ð,°~ÀeÔ7LÐ,à-¨eÐ4Ð4Ô4¸Ñ@Ð4Ð4Ñ4Ø48˜N¨5Ñ1Ø(,˜I˜Ið ).˜Iõ & c­4Ñ0Ô0ð #OØ œL×/Ò/µ¸±´Ñ=Ô=Ð=Ø'8¸Ô'?˜HØ(,˜IØ(,˜I™IÝ'¨­UÑ3Ô3ñ Oð  #œ|¨xÒ7Ð7¸IÐ7Ø $¤× 3Ò 3µG¸EÀ#Ä,ÈqÄ/Ô<RÑ4SÔ4SÑ TÔ TÐ TØ+.¬<¸¸¸Ô+;ð !Yð !Y CØ$(¤L×$7Ò$7½ÀÀcÄ
ÐRVÐ8WÑ8WÔ8WÑ$XÔ$XÐ$XÐ$XØ+<¸UÔ+C Ø,0 	Ø,0 	¡	ð !%¤× 3Ò 3µG¸EÀ#Ä,ÈqÄ/Ô<RÐZ[Ð4\Ñ4\Ô4\Ñ ]Ô ]Ð ]Ø+.¬<¸¸¸Ô+;ð !bð !b CØ$(¤L×$7Ò$7½ÀÀcÄ
ÐRVÐ^_Ð8`Ñ8`Ô8`Ñ$aÔ$aÐ$aÐ$aØ*;¸EÔ*BÀSÄ\Ñ*Q Ø#1°%Ô#8ð !8ð %,¨xÑ$7 GØ'/°'Ñ'9 Ø#'¨!¢8 8Ø$(¤L×$7Ò$7½
Å3ÀtÁ9Ä9Ñ8MÔ8MÑ$NÔ$NÐ$NÑ$NØ%)¨A¢X XØ$(¤L×$7Ò$7½	Å#ÀtÀeÁ*Ä*Ñ8MÔ8MÑ$NÔ$NÐ$NùñOGOñPOðR	Oð R	Or2   c           	      óÐ  — d}|                      ¦   «         D ]Î\  }}g | j        |<   g }d}d}|D ]�}t          |t          ¦  «        rUt	          |¦  «        dk    rd}n>t          |||||¦  «        }	| j        |                              |	¦  «         |dz  }g }d}d}Œl|                     |¦  «         Œ‚|r3t          |||||¦  «        }	| j        |                              |	¦  «         ŒÏd S ©Nr5   TFr   )ru   rw  rŸ   r	   rw   Úgen_measurer    )
r]   r�  Únumr…  ÚinstsÚbufferr�   r‰   ÚinstÚmms
             r0   r€  zMusicXMLBuilder.gen_measures˜  s  € ØˆØ)×/Ò/Ñ1Ô1ð 	.ð 	.‰JˆC�Ø!#ˆDŒM˜#ÑØˆFØˆLØ"ˆNØð $ð $�Ý˜d¥GÑ,Ô,ð Ý˜6‘{”{ aÒ'Ð'à)-˜˜å(¨°°c¸<ÈÑXÔX˜Øœ cÔ*×1Ò1°"Ñ5Ô5Ð5à˜q™˜Ø!#˜Ø',˜Ø).˜ØØ—’˜dÑ#Ô#Ð#Ð#àð .å  ¨¨c°<ÀÑPÔP�Ø”˜cÔ"×)Ò)¨"Ñ-Ô-Ð-øð1	.ð 	.r2   éZ   c                 óÚ  — t          dddi¬¦  «        }t          | j        ¦  «        }t          ¦   «         }t	          ¦   «         }|                     |||g¦  «         t          |dddi¬¦  «        }t          |dd	t          |¦  «        i¬¦  «        }d }| j        D ]Y}	t          |	t          ¦  «        st          |	t          ¦  «        r|	                     |¬
¦  «        }ŒC|	                     |¬
¦  «         ŒZt          |¦  «        }
d}|
                     d¦  «        }|                     d|¦  «         |dxx         dz  cc<   d                     |¦  «        }
t#          j        dd|
¦  «        }
|
S )Nzscore-partwiseÚversionz4.0r`  ÚpartrR   ÚP1ÚsoundÚtempo)r-  sz   <!DOCTYPE score-partwise PUBLIC "-//Recordare//DTD MusicXML 4.0 Partwise//EN" "http://www.musicxml.org/dtds/partwise.dtd">s   ?>r5   r   s   ?>
r2   s5   \s+</measure>\n\s+<measure number="1">\n\s+<print.+/>)r   Ú
build_workry  Úbuild_identityÚbuild_part_listrž   r   r  rx  rŸ   rg  r[  r  Ú
pretty_xmlÚsplitrÜ   ÚjoinÚreÚsub)r]   r¡  ÚscoreÚworkÚidenÚ	part_listrž  r   r\  ÚactionÚmxl_strÚdoctypeÚmxl_lists                r0   Úto_musicxmlzMusicXMLBuilder.to_musicxml´  su  € ÝÐ(°)¸UÐ1CÐDÑDÔDˆÝ˜$œ*Ñ%Ô%ˆÝÑÔˆÝ#Ñ%Ô%ˆ	Ø�Š�d˜D )Ð,Ñ-Ô-Ð-Ý˜% °°t°Ð=Ñ=Ô=ˆÝ˜4 °'½3¸u¹:¼:Ð1FÐGÑGÔGˆàˆØ”lð 	4ð 	4ˆFÝ˜&¥'Ñ*Ô*ð 4­j¸ÅÑ.LÔ.Lð 4Ø Ÿ.š.°T˜.Ñ:Ô:��à—’¨7�Ñ3Ô3Ð3Ð3õ ˜UÑ#Ô#ˆð=ˆð —=’= Ñ'Ô'ˆØ�Š˜˜7Ñ#Ô#Ð#Ø�ˆˆŒ�wÑˆˆ‰Ø—(’(˜8Ñ$Ô$ˆõ ”&ÐRÐTWÐY`ÑaÔaˆØˆr2   rQ   )r›  )r>   r?   r@   r^   r’  r€  r²  r+   r2   r0   ru  ru  /  sa   € € € € € ð ð  ð  ð  ð
aOð aOð aOðF.ð .ð .ð8ð ð ð ð ð r2   ru  Fc                 óÔ   — t          ¦   «         }|                     | ¦  «         ||_        ||_        ||_        ||_        |                     ¦   «          |                     ¦   «          |S rQ   )r…   r¤   r‰   r�   r�   rY   rÌ   rþ   )r˜  r…  r–  r�   r‰   rš  s         r0   r•  r•  Ô  s^   € Ý	‰Œ€BØ‡N‚N�6ÑÔÐØ&€BÔØ€B„IØ"€B„OØ€B„HØ‡J‚J�L„L€LØ×ÒÑÔÐØ€Ir2   c                  ó@  ‡‡— t          j        d¦  «        } t          j        d¦  «        Šg Šˆˆfd„}| D ]L}|j        €,|j        r% |||j        d¦  «          |||j        d¦  «         Œ5 |||j        |j        ¦  «         ŒMt          ‰¦  «        D ]\  }}||_        Œ‰S )NÚnote_groupsr`   c                 ó8  •— ˆfd„|D ¦   «         }t          |¦  «        dk    rd S t          ¦   «         }| j        |_        | j        |_        | j        |_        ||_        ||_        | j        |_        | 	                    ¦   «          ‰ 
                    |¦  «         d S )Nc                 ó.   •— g | ]}‰|         j         °|‘ŒS r+   )Úinvalidrc   s     €r0   re   z1get_voices.<locals>.add_voice.<locals>.<listcomp>ç  s%   ø€ Ð>Ð>Ð>˜¨5°¬:Ô+=Ð>�Ð>Ð>Ð>r2   r   )rw   rO   rY   rR   rU   rZ   rS   rT   rV   r€   r    )r…  ÚnidsrT   Úvcr`   rŒ   s       €€r0   Ú	add_voicezget_voices.<locals>.add_voiceæ  s�   ø€ Ø>Ð>Ð>Ð>˜tÐ>Ñ>Ô>ˆÝˆt‰9Œ9˜Š>ˆ>ØˆFÝ‰WŒWˆØ”9ˆŒØ”fˆŒØ”9ˆŒØˆŒØˆŒ
Ø”lˆŒØ
�Š‰	Œ	ˆ	à�Š�bÑÔÐÐÐr2   TF)	r   rr   rT   Úhas_stemÚtop_note_idsÚbottom_note_idsrS   rë   rR   )Úgroupsr»  rY   rç   r=  r`   rŒ   s        @@r0   r~  r~  à  sÜ   øø€ åÔ˜mÑ,Ô,€FÝÔ˜WÑ%Ô%€Eà€Fðð ð ð ð ð ð ð <ð <ˆØŒ=Ð  U¤^Ð ØˆI�e˜UÔ/°Ñ6Ô6Ð6ØˆI�e˜UÔ2°EÑ:Ô:Ð:Ð:àˆI�e˜Uœ^¨U¬]Ñ;Ô;Ð;Ð;å Ñ'Ô'ð ð ‰
ˆˆUØˆŒˆØ€Mr2   c                 óÒ   — t          | t          ¦  «        r| j        S t          | t          ¦  «        s
J | ¦   «         ‚t          | j                 }| j        rt          |dz  ¦  «        }|S )Nrq   )rŸ   rO   r!   r   ÚREST_TYPE_TO_DURATIONrW   rX   rz   )r£   rù   s     r0   rð   rð     sf   € Ý�#•uÑÔð ØŒ|Ðå�c�4Ñ Ô Ð%Ð% #Ñ%Ô%Ð Ý  ¤Ô+€DØ
„{ð !Ý�T˜C‘ZÑ Ô ˆØ€Kr2   c                 óà  ‡	— t          j        d¦  «        }t          j        d¦  «        }t          j        d¦  «        }t          j        d¦  «        }i Š	ˆ	fd„} || ¦  «          ||¦  «          ||¦  «          ||¦  «          |d„ |D ¦   «         ¦  «         ‰	D ]!}‰	|         }t          |d„ ¬¦  «        }|‰	|<   Œ"t          ‰	                     ¦   «         d	„ ¬¦  «        }d
„ |D ¦   «         Š	‰	S )NÚbarlinesrŽ   r‹   r�   c                 óx   •— | D ]5}|j         ‰vr
g ‰|j         <   ‰|j                                       |¦  «         Œ6d S rQ   )rY   r    )r—  r™  r�  s     €r0   Ú
sort_groupz sort_symbols.<locals>.sort_group  sS   ø€ Øð 	5ð 	5ˆDØŒz Ð0Ð0Ø.0� ¤
Ñ+Ø˜DœJÔ'×.Ò.¨tÑ4Ô4Ð4Ð4ð	5ð 	5r2   c                 ó    — g | ]}|j         ­	|‘ŒS rQ   )Únote_id)r-   rÆ   s     r0   re   z sort_symbols.<locals>.<listcomp>  s   € Ð;Ð;Ð;˜ s¤{Ð':�Ð':Ð':Ð':r2   c                 ó   — | j         S rQ   r•   r–   s    r0   rl   zsort_symbols.<locals>.<lambda>#  s   €  a¤j€ r2   r˜   c                 ó   — | d         S )Nr   r+   )Úeles    r0   rl   zsort_symbols.<locals>.<lambda>'  s
   € ¸SÀ¼V€ r2   c                 ó,   — i | ]}|d          |d         “ŒS )r   r5   r+   )r-   rÊ  s     r0   r1   z sort_symbols.<locals>.<dictcomp>(  s"   € Ð8Ð8Ð8¨#�s˜1”v˜s 1œvÐ8Ð8Ð8r2   )r   rr   rt   ru   )
rŒ   rÃ  rŽ   r‹   r�   rÅ  r.   rh   Útemp_gr�  s
            @r0   r  r    s?  ø€ ÝÔ 
Ñ+Ô+€HÝÔ˜WÑ%Ô%€EÝÔ˜WÑ%Ô%€EÝÔ˜FÑ#Ô#€Dð €Oð5ð 5ð 5ð 5ð 5ð €JˆvÑÔÐØ€JˆxÑÔÐØ€JˆuÑÔÐØ€JˆuÑÔÐØ€JÐ;Ð;˜tÐ;Ñ;Ô;Ñ<Ô<Ð<ð ð  ð  ˆØ˜QÔˆÝ�BÐ0Ð0Ð1Ñ1Ô1ˆØˆ˜ÑÐõ �O×)Ò)Ñ+Ô+Ð1CÐ1CÐDÑDÔD€FØ8Ð8°Ð8Ñ8Ô8€OØÐr2   c                 ó”   — d}d }|                      ¦   «         D ]\  }}| |z
  }|dk    r
||k     r|}|}Œd}|dk    r
||         }d}||fS )Ni–˜ r   FT)ru   )r!   ÚmappingÚmin_diffÚ	tar_labelrW   rù   rÞ   rX   s           r0   Úget_label_by_durarÑ  ,  st   € Ø€HØ€IØ—}’}‘”ð ð ‰ˆˆtØ˜$‰ˆØ�1Š9ˆ9˜ š˜ØˆHØˆIøØ€GØ�!‚|€|Ø�yÔ!ˆàˆØ�gÐÐr2   c                 ón   — t          ¦   «         }t          | t          ¦  «        \  }}||_        ||_        |S rQ   )r   rÑ  rÁ  rW   rX   )r!   rä   rÐ  rX   s       r0   rÚ   rÚ   <  s3   € Ý‰6Œ6€DÝ*¨8Õ5JÑKÔKÑ€IˆwØ€D„JØ€D„LØ€Kr2   c                 ó”   — |t           j        k    rt          nt          }t	          | ¦  «        } | dk    r|| dz           n
|| dz           S )Nr   r¯   éùÿÿÿ)r   ÚG_CLEFÚG_CLEF_POS_TO_PITCHÚF_CLEF_POS_TO_PITCHrY  )ÚposrB  Úorders      r0   r?  r?  D  sG   € Ø#,µ´Ò#?Ð#?ÕÐÕEX€EÝ
ˆc‰(Œ(€CØ !š8˜8ˆ5��Q‘Œ<ˆ<¨¨s°2©v¬Ð6r2   c                 ó   — t          j        d¦  «        }t          | t          ¦  «        r—d„ t                               ¦   «         D ¦   «         }t          ||¦  «        \  }}|| _        || _        || _	        t          |         d         | _
        | j        D ]*}||                              |¦  «         |||         _        Œ+d S t          | t          ¦  «        r(t          |t          ¦  «        \  }}|| _        || _        d S d S )Nr`   c                 ó&   — i | ]\  }}||d          “ŒS )r!   r+   r,   s      r0   r1   z(extend_symbol_length.<locals>.<dictcomp>M  s"   € ÐLÐLÐL©¨¨1�1�a˜
”mÐLÐLÐLr2   r    )r   rr   rŸ   rO   ry   ru   rÑ  rW   rX   r!   r[   rS   rx   r   rÁ  )Úsymbolr!   r`   rÎ  rÐ  rX   rd   s          r0   rØ   rØ   J  s  € ÝÔ˜WÑ%Ô%€EÝ�&�%Ñ Ô ð !ØLÐLÕ0C×0IÒ0IÑ0KÔ0KÐLÑLÔLˆÝ.¨x¸ÑAÔAÑˆ	�7Ø ˆŒØ ˆŒØ"ˆŒÝ0°Ô;¸FÔCˆÔØ”?ð 	)ð 	)ˆCØ�#ŒJ×&Ò& yÑ1Ô1Ð1Ø!(ˆE�#ŒJÔÐð	)ð 	)õ 
�F�DÑ	!Ô	!ð !Ý.¨xÕ9NÑOÔOÑˆ	�7Ø ˆŒØ ˆŒˆˆð!ð !r2   c                 óÖ  — i }d}|                       ¦   «         D ]Ï\  }}g ||<   g }d}d}|D ]¼}t          |t          ¦  «        r�t          |¦  «        dk    rd}nyt	          ¦   «         }	|	                     |¦  «         ||	_        ||	_        |	                     ¦   «          ||	_	        ||	_
        ||                              |	¦  «         |dz  }g }d}d}Œ§|                     |¦  «         Œ½ŒÐ|S r”  )ru   rŸ   r	   rw   r…   r¤   r‰   r�   rÌ   r�   rY   r    )
r�  rw  r–  r…  r—  r˜  r�   r‰   r™  rš  s
             r0   r€  r€  \  s  € Ø€HØ
€CØ%×+Ò+Ñ-Ô-ð  ð  ‰
ˆˆUØˆ�‰ØˆØˆØˆØð 	 ð 	 ˆDÝ˜$¥Ñ(Ô(ð Ý�v‘;”; !Ò#Ð#à%)�N�Nå ™œ�BØ—N’N 6Ñ*Ô*Ð*Ø(6�BÔ%Ø #�B”IØ—J’J‘L”L�LØ&2�B”OØ"�B”HØ˜S”M×(Ò(¨Ñ,Ô,Ð,à˜1‘H�CØ�FØ#(�LØ%*�NØØ�MŠM˜$ÑÔÐÐð)	 ð* €Or2   r5   r  c                 óv  — | j         rd S t          d¦  «        }|r"|                     t          d¦  «        ¦  «         t          |d¦  «        }t          |d¦  «        }t          |d¦  «        }t          |d¦  «        }d|_        t          | j        ¦  «        }	|t          j        k    rt          }
d}d	}nt          }
d
}d}|	dk    r|
|	dz           n
|
|	dz           |_        |	|z
  dk    r0t          t          j        |	|z   dz  ¦  «        |z   ¦  «        |_        n0t          t          j        |	|z   dz  ¦  «         |z   ¦  «        |_        | j        �9| j        t           j        k    rd|_        n| j        t           j        k    rd|_        t          |j        ¦  «        dk     s^t          |j        ¦  «        dk    sFt          |j        ¦  «        dk    r|j        dk    s#t          |j        ¦  «        dk    r|j        dk    rd S t          |d¦  «        }t          t&          | j                 d         ¦  «        |_        t          |d¦  «        }t&          | j                 d         |_        | j        rZt          |j        ¦  «        }t          t-          |dz  ¦  «        ¦  «        |_        |                     t          d¦  «        ¦  «         t          |d¦  «        }| j        rdnd|_        t          |d¦  «        }t          | j        d	z   ¦  «        |_        t          |d¦  «        }t          |¦  «        |_        |S )Nr:  r<  ÚpitchÚstepÚalterÚoctaveÚ0r   r5   r#   r6   r   r¯   rÔ  Ú1z-1r(   r   r   r!   r¢   r    rq   ÚdotÚstemÚupÚdownÚstaffr=  )r¸  r   r    r   rn  rY  r@  r   rÕ  rÖ  r×  r  ÚmathÚfloorÚceilrÆ   r   rÀ   r¿   ry   rW   rX   rz   rT   rZ   )r:  rB  Úis_chordr=  r.  rß  rà  rá  râ  rØ  rÙ  Ú
oct_offsetÚpitch_offsetrù   Úrhyrú   ræ  rZ   Úvois                      r0   rA  rA  |  s÷  € Ø„|ð Øˆtõ �6‰?Œ?€Dð ð &Ø�Š•G˜GÑ$Ô$Ñ%Ô%Ð%õ �t˜WÑ%Ô%€EÝ�e˜VÑ$Ô$€DÝ�u˜gÑ&Ô&€EÝ˜˜xÑ(Ô(€FØ€E„JÝ
ˆdÔ!Ñ
"Ô
"€CØ•H”OÒ#Ð#Ý#ˆØˆ
Øˆˆå#ˆØˆ
ØˆØ # q¢ ��c˜!‘e”�¨e°C¸±F¬m€D„IØ
ˆ\Ñ˜QÒÐÝ�$œ* c¨LÑ&8¸AÑ%=Ñ>Ô>ÀÑKÑLÔLˆŒˆå�DœI s¨\Ñ'9¸RÑ&?Ñ@Ô@Ð@À:ÑMÑNÔNˆŒØ„xÐØŒ8•w”}Ò$Ð$ØˆEŒJˆJØŒX�œÒ%Ð%ØˆEŒJõ 	ˆFŒKÑÔ˜1ÒÐ¥ F¤KÑ 0Ô 0°1Ò 4Ð 4Ý�F”KÑ Ô  AÒ%Ð%¨$¬)°sÒ*:Ð*:Ý�F”KÑ Ô  AÒ%Ð%¨$¬)°sÒ*:Ð*:Øˆtõ �d˜JÑ'Ô'€DÝÕ'¨¬
Ô3°JÔ?Ñ@Ô@€D„IÝ
�T˜6Ñ
"Ô
"€CÝ" 4¤:Ô.¨vÔ6€C„Hð „|ð $Ý�”‰^Œ^ˆÝ�˜b ™f™œÑ&Ô&ˆŒ	Ø�Š•G˜E‘N”NÑ#Ô#Ð#õ �d˜FÑ#Ô#€DØœÐ0��¨&€D„Iõ �t˜WÑ%Ô%€EÝ�T”Z !‘^Ñ$Ô$€E„JÝ
�T˜7Ñ
#Ô
#€CÝ�5‰zŒz€C„Hà€Kr2   c                 óÎ  — t          d¦  «        }t          |dddi¬¦  «         t          |d¦  «        }t          t          | j                 ¦  «        |_        | j        rZt          |j        ¦  «        }t          t          |dz  ¦  «        ¦  «        |_        | 	                    t          d¦  «        ¦  «         t          |d	¦  «        }t          | j
        d
z   ¦  «        |_        |S )Nr:  rä   r\  rc  r`  r!   rq   rå  ré  r5   )r   r   r  rÁ  rW   rn  rX   rY  rz   r    rZ   )rä   r.  rù   rú   ré  s        r0   rJ  rJ  À  s¾   € Ý�6‰?Œ?€DÝˆt�V Y°Ð$6Ð7Ñ7Ô7Ð7Ý�d˜JÑ'Ô'€DÝÕ)¨$¬*Ô5Ñ6Ô6€D„IØ„|ð $Ý�”‰^Œ^ˆÝ�˜b ™f™œÑ&Ô&ˆŒ	Ø�Š•G˜E‘N”NÑ#Ô#Ð#Ý�t˜WÑ%Ô%€EÝ�T”Z ‘\Ñ"Ô"€E„JØ€Kr2   c                 ó|   — | dk    rd S t          d¦  «        }t          |d¦  «        }t          | ¦  «        |_        |S )Nr   Úbackupr!   ©r   r   r  rn  )rù   rô  rú   s      r0   rS  rS  Î  s>   € Øˆq‚y€yØˆtÝ�XÑÔ€FÝ	�F˜JÑ	'Ô	'€BÝ�$‰iŒi€B„GØ€Mr2   c                 ó|   — | dk    rd S t          d¦  «        }t          |d¦  «        }t          | ¦  «        |_        |S )Nr   Úforwardr!   rõ  )rù   r÷  rú   s      r0   rX  rX  ×  s>   € Øˆq‚y€yØˆtÝ�iÑ Ô €GÝ	�G˜ZÑ	(Ô	(€BÝ�$‰iŒi€B„GØ€Nr2   c           	      ó  — t          d¦  «        }t          |ddt          | j        dz   ¦  «        i¬¦  «        }t          |d¦  «        }| j        j        d         |_        t          |d¦  «        }|j        d	k    rd
nd|_        |S )Nrj  rÐ   r�   r5   r`  Úsignr   Úliner   Ú2Ú4)r   r   r  rZ   rW   r    rn  )rÐ   r.  r¸   rù  rú  s        r0   r7  r7  à  s€   € Ý�<Ñ Ô €DÝ	�D˜&¨(µC¸¼
À1¹Ñ4EÔ4EÐ)FÐ	GÑ	GÔ	G€BÝ�b˜&Ñ!Ô!€DØ”
” Ô"€D„IÝ�b˜&Ñ!Ô!€DØ”y CÒ'Ð'��¨S€D„IØ€Kr2   c                 ó–   — t          d¦  «        }t          |d¦  «        }t          |d¦  «        }t          | j        ¦  «        |_        |S )Nrj  rn   Úfifths)r   r   r  r  rn  )rn   r.  Úkkrþ  s       r0   r+  r+  ê  sA   € Ý�<Ñ Ô €DÝ	�D˜%Ñ	 Ô	 €BÝ˜˜HÑ%Ô%€FÝ�c”i‘.”.€F„KØ€Kr2   c                 óH  — t          ddt          | j        ¦  «        i¬¦  «        }|rút          |d¦  «        }t          |d¦  «        }t          t          ¦  «        |_        t          |d¦  «        }t          |d¦  «        }t          |j        ¦  «        |_        t          |d¦  «        }d	|_        t          |d
¦  «        }	t          t          ¦   «         ¦  «        |	_        | j        r:d„ | j	        D ¦   «         }
|
D ]&}t          |¦  «        }|                     |¦  «         Œ'|S )Nr\  r�   r`  rj  rk  rn   rþ  ÚmodeÚmajorrl  c                 ó<   — g | ]}t          |t          ¦  «        ¯|‘ŒS r+   )rŸ   r
   r§   s     r0   re   z"decode_measure.<locals>.<listcomp>  s'   € ÐMÐMÐM˜SµzÀ#ÅtÑ7LÔ7LÐM�SÐMÐMÐMr2   )r   r  r�   r   rm  rn  r  r   rŠ   rˆ   r7  r    )r\  rn   Ú
key_changer.  Ú	attributerq  r.   Úfifthr  rl  r‹   rÐ   r¸   s                r0   Údecode_measurer  ò  s  € Ý�9 hµ°G´NÑ0CÔ0CÐ%DÐEÑEÔE€Dàð %Ý˜t \Ñ2Ô2ˆ	Ý˜ KÑ0Ô0ˆÝÕ*Ñ+Ô+ˆŒÝ�y %Ñ(Ô(ˆÝ˜1˜hÑ'Ô'ˆÝ˜œ‘^”^ˆŒ
Ý˜!˜VÑ$Ô$ˆØˆŒ	Ý˜I xÑ0Ô0ˆÝÕ.Ñ0Ô0Ñ1Ô1ˆŒØÔð 	%ØMÐM G¤OÐMÑMÔMˆEØð %ð %�Ý  Ñ&Ô&�Ø× Ò  Ñ$Ô$Ð$Ð$Ø€Kr2   c                 óx   — t          j        t          j        | ¦  «        ¦  «                             dd¬¦  «        S )Nz  zUTF-8)ÚindentÚencoding)r   ÚparseStringÚETÚtostringÚtoprettyxml)r.  s    r0   r¥  r¥    s1   € ÝÔ�rœ{¨4Ñ0Ô0Ñ1Ô1×=Ò=ÀTÐT[Ð=Ñ\Ô\Ð\r2   c                  óÞ  — t          d¦  «        } t          | dddi¬¦  «        }t          |d¦  «        }d|_        t          |ddd	i¬¦  «        }t          |d
¦  «        }d|_        t          |d¦  «        }d|_        t          |ddd	i¬¦  «        }t          |d¦  «        }d|_        t          |d¦  «        }d|_        t          |d¦  «        }	d|	_        t          |d¦  «        }
d|
_        | S )Nz	part-listz
score-partrR   rŸ  r`  z	part-nameÚPianozscore-instrumentzP1-I1zinstrument-namezinstrument-soundzkeyboard.pianozmidi-instrumentzmidi-channelrä  zmidi-programÚvolumeÚ80Úpanrã  ©r   r   rn  )Úpartsrž  Úp_nameÚ
score_instÚ	inst_nameÚ
inst_soundÚ	midi_instÚmidi_chÚprogramr  r  s              r0   r¤  r¤    sú   € Ý�KÑ Ô €EÝ�e˜\°4¸°,Ð?Ñ?Ô?€DÝ˜˜kÑ*Ô*€FØ€F„KÝ˜DÐ"4¸dÀG¸_ÐMÑMÔM€JÝ˜:Ð'8Ñ9Ô9€IØ€I„NÝ˜JÐ(:Ñ;Ô;€JØ&€J„OÝ˜4Ð!2¸DÀ'¸?ÐKÑKÔK€IÝ˜ NÑ3Ô3€GØ€G„LÝ˜ NÑ3Ô3€GØ€G„LÝ˜	 8Ñ,Ô,€FØ€F„KÝ
�Y Ñ
&Ô
&€CØ€C„Hà€Lr2   c                 óZ   — t          d¦  «        }t          |d¦  «        }| �| nd|_        |S )Nr«  z
work-titlezEnd-to-end OMRr  )Úf_namer«  ry  s      r0   r¢  r¢  #  s2   € Ý�6‰?Œ?€DÝ�t˜\Ñ*Ô*€EØ!Ð-��Ð3C€E„JØ€Kr2   c                  óZ   — t          d¦  «        } t          | dddi¬¦  «        }d|_        | S )NÚidentificationÚcreatorr¢   Úcomposerr`  zTranscribed by Oemerr  )r¬  r!  s     r0   r£  r£  *  s5   € ÝÐ#Ñ$Ô$€DÝ˜˜y°&¸*Ð1EÐFÑFÔF€GØ)€G„LØ€Kr2   Ú__main__r`   rµ  rÃ  rŽ   r‹   r�   zinitial.musicxmlÚwbr:   Tzutf-8)FFrE  r‡   rQ   )tr¨  rê  ÚenumÚtypingr   r   Úxml.etree.ElementTreeÚetreeÚElementTreer  Úxml.domr   r   r   Únumpyrí   Úoemerr   Úoemer.symbol_extractionr	   r
   r   r   r   r   r   Úoemer.note_group_extractionr   Úoemer.notehead_extractionr   r   Úoemer.utilsr   r   r   r>   r½   rm  rÖ  r×  r  r  ÚWHOLEÚHALFÚHALF_OR_WHOLEÚQUARTERÚEIGHTHÚ	SIXTEENTHÚTHIRTY_SECONDÚSIXTY_FOURTHry   Ú
WHOLE_HALFrÁ  ru   ÚDURATION_TO_REST_TYPEÚEnumr4   rO   r…   r  r%  r3  r9  rG  rN  rU  r[  rg  ru  r•  r~  rð   r  rÑ  rÚ   r?  rØ   r€  rA  rJ  rS  rX  r7  r+  r  r¥  r¤  r¢  r£  rr   r`   r¿  rÃ  rŽ   r‹   r�   rŒ   r�  Úbuilderr’  r²  ÚxmlÚopenÚwriteÚnnr@  rX   rT   rW   rZ   rY   rÕ  ÚdecodeÚeeÚrrrh   r+   r2   r0   ú<module>rD     sý  ðØ 	€	€	€	Ø €€€Ø €€€Ø  Ð  Ð  Ð  Ð  Ð  Ð  Ð  Ø "Ð "Ð "Ð "Ð "Ð "Ð "Ð "Ð "Ø Ð Ð Ð Ð Ð Ø 5Ð 5Ð 5Ð 5Ð 5Ð 5Ð 5Ð 5à Ð Ð Ð à Ð Ð Ð Ð Ð Ø YÐ YÐ YÐ YÐ YÐ YÐ YÐ YÐ YÐ YÐ YÐ YÐ YÐ YÐ YÐ YÐ YÐ YØ 1Ð 1Ð 1Ð 1Ð 1Ð 1Ø 8Ð 8Ð 8Ð 8Ð 8Ð 8Ð 8Ð 8Ø NÐ NÐ NÐ NÐ NÐ NÐ NÐ NÐ NÐ Nð 
ˆ�HÑ	Ô	€àÐ à9Ð9Ð9Ð Ø9Ð9Ð9Ð Ø0Ð0Ð0€Ø/Ð/Ð/€ð „N˜WÐ2EÈÑ2IÐJÐJØ„M˜FÐ0CÀaÑ0GÐHÐHØÔ VÐ9LÈqÑ9PÐQÐQØÔ˜yÐ6IÐJÐJØ„O˜hÐ4GÈ1Ñ4LÐMÐMØÔ Ð5HÈAÑ5MÐNÐNØÔ VÐ9LÐPQÑ9QÐRÐRØÔ FÐ8KÈrÑ8QÐRÐRð	Ð ð ÔÐ)Ø„OÐ(¨AÑ-ØÔÐ+¨qÑ0ØÔÐ/°1Ñ4ØÔÐ.°"Ñ4ØÔÐ,¨qÑ0Ø„NÐ'¨!Ñ+Ø„MÐ&¨Ñ*ð	Ð ð IÐHÐ*?×*EÒ*EÑ*GÔ*GÐHÑHÔHÐ ðð ð ð ð ˆ$Œ)ñ ô ð ð -cð -cð -cð -cð -cñ -cô -cð -cð`T,ð T,ð T,ð T,ð T,ñ T,ô T,ð T,ðnEð Eð Eð Eð Eñ Eô Eð Eð@ð ð ð ð �ñ ô ð ð
ð 
ð 
ð 
ð 
�ñ 
ô 
ð 
ðð ð ð ð ˆfñ ô ð ð*	ð 	ð 	ð 	ð 	ˆfñ 	ô 	ð 	ð	ð 	ð 	ð 	ð 	�ñ 	ô 	ð 	ð	ð 	ð 	ð 	ð 	�ñ 	ô 	ð 	ðð ð ð ð �ñ ô ð ð ð ð ð ð ˆfñ ô ð ð@bð bð bð bð bñ bô bð bðJ	ð 	ð 	ð 	ðð ð ðBð ð ðð ð ð@ð ð ð ð ð ð7ð 7ð 7ð!ð !ð !ð$ð ð ð@Að A¸Wð Að Að Að AðH˜ð ð ð ð ðð ð ðð ð ð˜ð ð ð ð ð�wð ð ð ð ðð ð ð ð,]ð ]ð ]ðð ð ð.ð ð ð ðð ð ð ˆzÒÑØˆFÔ˜WÑ%Ô%€EØˆVÔ˜mÑ,Ô,€FØˆvÔ 
Ñ+Ô+€HØˆFÔ˜WÑ%Ô%€EØˆFÔ˜WÑ%Ô%€EØˆ6Ô˜FÑ#Ô#€DàˆZ‰\Œ\€FØ"�l 6Ñ*Ô*€OàˆoÑÔ€GØ‡M‚M�O„O€OØ
×
Ò
Ñ
Ô
€CØ€DÐ	˜TÑ"Ô"×(Ò(¨Ñ-Ô-Ð-à	ˆ‰Œ€BØ€BÔØ€B„JØ€B„JØÔ€B„HØ€B„HØ€B„HØ	ˆ�K�K  H¤OÑ4Ô4Ñ	5Ô	5×	<Ò	<¸WÑ	EÔ	E€Bð 
ˆ‰Œ€BØŒ€B„HØ€B„HØ€B„HØ	ˆ�K�K ‘O”OÑ	$Ô	$×	+Ò	+¨GÑ	4Ô	4€B€B€Bð= Ðr2   