
    rh                    "   S r SSKJr  SSKJr  SSKrSSKrSSKrSSK	J
r
  SSKJr  SSK	Jr  SSK	Jr  SS	K	Jr  \R                   (       a  SS
K	Jr  SSKJrJr  \R*                  " S5      r  SSS.         SS jjjr  S       SS jjrg)z
This module contains music21 Jupyter Notebook external converters, which
used to be in the main music21.converter.subConverters module.
    )annotations)SequenceN)common)	museScore)defaults)environment)stream)base)SubConverterConverterMidizipython21.convertersF)multipageWidgetc          	       ^^^ SSK JmJmJn  [	        [
        S   5      R                  S5      (       a&  Sn[        R                  " U5      nT" T" USS95        g [        R                  n	[        R                  n
S[        l
        S[        l        [        U [        R                  5      (       a%  U R                   H  n[!        U4UUUUS	.UD6  M     g UR"                  " U U4UU(       + S
.UD6nUS   S:w  a  g [$        R&                  " U5      n[$        R(                  " X5      u  p0 m[	        U5      S [	        U5      R+                  S5       n[-        SUS-   5       HA  nUS-   [	        U5      R/                  U5      -   S-   n[0        R2                  " U5      nUTU'   MC     US:X  a  T" T" UR5                  5       SS95        OU(       de  [-        SUS-   5       HQ  nTU   R7                  5       (       d  M  T" T" TU   R5                  5       SS95        UU:  d  MC  T" U" S5      5        MS     OSSKJn  U" SU4S9SUUU4S jj5       nU$ U	[        l
        U
[        l        g )Nr   )ImagedisplayHTMLmusescoreDirectPNGPathz/skips\   iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAAAAAA6fptVAAAACklEQVQYV2P4DwABAQEAWk1v8QAAAABJRU5ErkJggg==Tdataretina )subConverterfmt
subformatsr   )r   	trimEdgespng-   z.pngz'<p style="padding-top: 20px">&nbsp;</p>)interact)pagec                   > TU    nUR                  5       (       a  T" T" UR                  5       SS95        g [        SU  S35        g )NTr   zNo file for page .)exists
read_bytesprint)r   inner_page_fpr   r   pagess     V/home/james-whalen/.local/lib/python3.13/site-packages/music21/ipython21/converters.pypage_display/showImageThroughMuseScore.<locals>.page_displayr   sE    !$KM##%%=#;#;#=dKL)$q12    )r   )IPython.displayr   r   r   strenvironLocal
startswithbase64	b64decoder   titleauthor
isinstancer	   OpusscoresshowImageThroughMuseScorewriter   findLastPNGPathfindPNGRangerfindrangezfillpathlibPathr#   r"   
ipywidgetsr   )objr   r   r   r   keywordsr   	pngData64pngDatasavedDefaultTitlesavedDefaultAuthorsfplast_pnglast_number
num_digitsstempgpage_strpage_fpr   r(   r   r   r&   s                         @@@r'   r6   r6   $   sM    54
<012==gFFP	""9-7401 !!HNHO#v{{##A%)% /   				
 %%	

 
B !}((,H'44RBKEr7&CGMM#&'DA{Q'#:Bj 99FB,,x(b	 (
 a2==?489;?+BRy!!59#7#7#9$GH#D!JKL	 , 	(	;'	(	3 	3 
)	3 &HN(HOr*   c                   SSK JnJn  UR                  U UUSS9n[	        US5       nUR                  5       n	S S S 5        [        R                  " W	5      n
[        R                  " 5       nS[        U" 5       5      -   nSnU
R                  S5      nU" U" S	U-   S
-   U-   S-   U-   S-   U-   S-   U-   S-   U-   S-   U-   S-   5      5        g ! , (       d  f       N= f)Nr   )r   r   T)r   addStartDelayrbmidiPlayerDivz}
        <script
        src="https://cdnjs.cloudflare.com/ajax/libs/require.js/2.3.6/require.min.js"
        ></script>
    zutf-8z
        <div id="zk"></div>
        <link rel="stylesheet" href="https://cuthbertLab.github.io/music21j/css/m21.css">
        z#
        <script>
        function aU  _play() {
            const rq = require.config({
                paths: {
                    'music21': 'https://cuthbertLab.github.io/music21j/releases/music21.debug',
                }
            });
            rq(['music21'], function(music21) {
                mp = new music21.miditools.MidiPlayer();
                mp.addPlayer("#z:");
                mp.base64Load("data:audio/midi;base64,zc");
            });
        }
        if (typeof require === 'undefined') {
            setTimeout(z+_play, 2000);
        } else {
            z$_play();
        }
        </script>)r+   r   r   r7   openreadr/   	b64encoder   SingletonCounterr,   decode)r@   r   r   r   rA   r   r   rG   fbinaryMidiDatabinaryBase64rF   outputIdload_require_script
utf_binarys                  r'   displayMusic21jMIDIr^      s8    .				 
 
B 
b$1 
 ##N3L!AQS)H $$W-JD  # ""%
   
### &..1:: =GGJ$ &%&$)%( )()   
s   C


C)musicxml)r   )
r@   base.Music21Objectr   r   r   r,   r   Sequence[str]r   bool)midi )r@   r`   r   r   r   r,   r   ra   )__doc__
__future__r   collections.abcr   r/   r=   typingtmusic21r   music21.converterr   r   r   r	   TYPE_CHECKINGr
   music21.converter.subConvertersr   r   Environmentr-   r6   r^   rd   r*   r'   <module>ro      s    # $     '    ??K&&'=>  (	Z "Z	ZZ 
Z 	Z Z~  "	6	66 
6 	6r*   