§
    Û×jg  ã                   óR   — d Z ddlmZ ddlZdddddd	œZdd„Zd„ Zd„ Zdd„Zdd„Z	dS )z9Composition-source compatibility and validation for YuE2.é    )ÚPathNzNew CompositionzUse ABC ScorezContinue ABC ScorezUse Score from AudiozContinue Score from Audio)Ú0Ú1Ú12ÚAÚA2Fc                 óØ   — | �t          | ¦  «        nd} | s|s|rdnd} | t          vrt          d¦  «        ‚|�2|                     d¦  «        dk    rddd	œ                     | | ¦  «        } | S )
NÚ r   r   z0Choose one of the five YuE2 composition sources.Úextend_scoreé   r   r   )r   r   )ÚstrÚSOURCE_LABELSÚ
ValueErrorÚget)ÚsourceÚcustom_guideÚcustom_guide_usedÚcustom_settingss       úCC:\Users\johnn\OneDrive\Documents\AI\models\TTS\yue2\composition.pyÚresolve_sourcer      s�   € Ø"Ð.�S�‰[Œ[ˆ[°B€FØð CØ$ÐBÐ(9ÐB��¸sˆØ•]Ð"Ð"ÝÐKÑLÔLÐLØÐ" ×':Ò':¸>Ñ'JÔ'JÈaÒ'OÐ'OØ $Ð'Ð'×+Ò+¨F°FÑ;Ô;ˆØ€Mó    c                 óF  — t          |                      d¦  «        |                      d¦  «        |                      dd¦  «        |                      d¦  «        ¦  «        | d<   |                      d¦  «        �)d„ | d                              ¦   «         D ¦   «         | d<   d S d S )NÚaudio_prompt_typer   r   Fr   c                 ó&   — i | ]\  }}|d k    ¯||“ŒS )r   © )Ú.0ÚkeyÚvalues      r   ú
<dictcomp>z"migrate_source.<locals>.<dictcomp>   sK   € ð  'Bð  'Bð  'B±j°c¸5Ðknð  sAò  lAð  lA s¨Eð  lAð  lAð  lAr   )r   r   Úitems)Úsettingss    r   Úmigrate_sourcer"      sì   € Ý$2°8·<²<Ð@SÑ3TÔ3TÐV^×VbÒVbÐcqÑVrÔVrÐt|÷  uAò  uAð  BUð  W\ñ  u]ô  u]ð  _g÷  _kò  _kð  l}ñ  _~ô  _~ñ  %ô  %€HÐ Ñ!Ø‡|‚|Ð%Ñ&Ô&Ð2ð 'Bð  'BÀHÐM^ÔD_×DeÒDeÑDgÔDgð  'Bñ  'Bô  'BˆÐ"Ñ#Ð#Ð#ð 3Ð2r   c                 óº   — |dvrt          d¦  «        ‚|dk    r| dk    rt          d¦  «        ‚| dv r|st          d¦  «        ‚| dv r|st          d	¦  «        ‚d S d S )
N)r   r   é   é   zJChoose melody and chords, melody only, direct generation, or instrumental.r$   r   z\Direct generation cannot use or continue a score. Select New Composition or enable planning.)r   r   z/Select an ABC file for this composition source.)r   r   z0Select source audio for this composition source.)r   )r   Ú
model_moder   Úaudio_guides       r   Úvalidate_sourcer(      sˆ   € Ø˜Ð%Ð%ÝÐeÑfÔfÐfØ�Q‚€˜6 Sš=˜=ÝÐwÑxÔxÐxØ�ÐÐ \ÐÝÐJÑKÔKÐKØ�ÐÐ [ÐÝÐKÑLÔLÐLð ÐÐÐr   c                 ó8  — |                       ¦   «         st          d¦  «        ‚t          j        d| ¦  «        st          d¦  «        ‚|r$t          j        d| ¦  «        rt          d¦  «        ‚ddlm} 	 |                     | ¦  «        }n"# t          $ r}t          d¦  «        |‚d }~ww xY wd	                     d
„ |  	                    ¦   «         D ¦   «         ¦  «        }| 
                    ¦   «         dk    r$t          j        d|¦  «        st          d¦  «        ‚| S )NzThe ABC score is empty.z
(?m)^K\s*:z&The ABC score needs a key header (K:).z3"[A-G][#b]?(?:m|maj|min|dim|aug|sus|add|[0-9]|/|\")z<Melody-only planning requires a score without chord symbols.r   )ÚScorez6The ABC score could not be parsed as musical notation.ú
c              3   óD   K  — | ]}t          j        d |¦  «        °|V — ŒdS )z\s*(?:[A-Za-z]:|%)N)ÚreÚmatch)r   Úlines     r   ú	<genexpr>zvalidate_abc.<locals>.<genexpr>6   s5   è è € ÐeÐe˜t½r¼xÐH]Ð_cÑ?dÔ?dÐe�dÐeÐeÐeÐeÐeÐer   z[zZxX](?:\d|/|\s|\||$)z)The ABC score contains no notes or rests.)Ústripr   r-   ÚsearchÚsymusicr*   Úfrom_abcÚ	ExceptionÚjoinÚ
splitlinesÚnote_num)ÚabcÚmelody_onlyr*   ÚscoreÚexcÚmusics         r   Úvalidate_abcr>   *   s8  € Ø�9Š9‰;Œ;ð 4ÝÐ2Ñ3Ô3Ð3ÝŒ9�] CÑ(Ô(ð CÝÐAÑBÔBÐBØð Y•r”yÐ!WÐY\Ñ]Ô]ð YÝÐWÑXÔXÐXØÐÐÐÐÐð\Ø—’˜sÑ#Ô#ˆˆøÝð \ð \ð \ÝÐQÑRÔRÐX[Ð[øøøøð\øøøà�IŠIÐeÐe s§~¢~Ñ'7Ô'7ÐeÑeÔeÑeÔe€EØ‡~‚~ÑÔ˜1ÒÐ¥R¤YÐ/HÈ%Ñ%PÔ%PÐÝÐDÑEÔEÐEØ€Js   Á5B Â
B*ÂB%Â%B*c                 ó>  — t          | ¦  «        } | j                             ¦   «         dk    rt          d¦  «        ‚	 |                      d¬¦  «                             ¦   «         }n)# t          t          f$ r}t          d¦  «        |‚d }~ww xY wt          ||¦  «        S )Nz.abcz-Select a UTF-8 score with the .abc extension.z	utf-8-sig)Úencodingz*The ABC file cannot be read as UTF-8 text.)	r   ÚsuffixÚlowerr   Ú	read_textr1   ÚOSErrorÚUnicodeErrorr>   )Úpathr:   r9   r<   s       r   Úread_abcrG   <   s¥   € Ý�‰:Œ:€DØ„{×ÒÑÔ˜fÒ$Ð$ÝÐHÑIÔIÐIðPØ�nŠn kˆnÑ2Ô2×8Ò8Ñ:Ô:ˆˆøÝ•\Ð"ð Pð Pð PÝÐEÑFÔFÈCÐOøøøøðPøøøå˜˜[Ñ)Ô)Ð)s   ½(A& Á&BÁ7BÂB)NFN)F)
Ú__doc__Úpathlibr   r-   r   r   r"   r(   r>   rG   r   r   r   ú<module>rJ      s­   ðØ ?Ð ?Ø Ð Ð Ð Ð Ð Ø 	€	€	€	ð 
Ø	Ø
Ø	Ø
%ðð €ðð ð ð ðBð Bð BðMð Mð Mðð ð ð ð$*ð *ð *ð *ð *ð *r   