
    rh                        S r SSKJr  SSKJr  SSKJr  SSKJr  \R                  " SSS5      SS
 j5       r
\R                  " SSS5        SS j5       rSr\S:X  a  SS	Kr\R                  " 5         g	g	)z
Tools for generating new Streams from trees (fast, manipulable objects)

None of these things work acceptably yet.  This is super beta.
    )annotations)common)TreeException)timespanTreev7v8zuse chordify() insteadNc           
        SSK Jn  [        U [        R                  5      (       d  [        R
                  " S5      eUGb  UR                  5       n[        U5      nUR                  UR                  R                  5        [        US5      (       a/  UR                  (       a  UR                  S   R                  SSS9nOUR                  SSS9nU R                  5       n U R                  U5        SnU R!                  5       [#        U5      -   n[%        ['        U5      5      n[        UR)                  UR*                  5      5      n[-        XwSS 5       H  u  pUS   U	::  a!  UR/                  S5        US-  nUS   U	::  a  M!  U R1                  U	5      nX-
  nUS:  a  [3        S	U< S
U
S SU	S 3-   5      eUR5                  U5      nX   R                  U5        M     U$ U R!                  5       n/ n[-        XwSS 5       H[  u  pU R1                  U	5      nX-
  nUS:  a  [3        S	U< SU
S SU	S 3-   5      eUR5                  U5      nUR                  U5        M]     UR7                  5       nU H  nUR                  U5        M     U$ )a]  
DEPRECATED -- DO NOT USE.  Use stream.chordify() instead.

Creates a score from the PitchedTimespan objects stored in this
offset-tree.

A "template" score may be used to provide measure and time-signature
information.

>>> score = corpus.parse('bwv66.6')
>>> scoreTree = score.asTimespans()
>>> #_DOCS_SHOW chordifiedScore = tree.toStream.chordified(scoreTree, templateStream=score)
>>> #_DOCS_SHOW chordifiedScore.show('text')
{0.0} <music21.instrument.Instrument 'P1: Soprano: Instrument 1'>
{0.0} <music21.stream.Measure 0 offset=0.0>
    {0.0} <music21.clef.TrebleClef>
    {0.0} <music21.key.Key of f# minor>
    {0.0} <music21.meter.TimeSignature 4/4>
    {0.0} <music21.chord.Chord A3 E4 C#5>
    {0.5} <music21.chord.Chord G#3 B3 E4 B4>
{1.0} <music21.stream.Measure 1 offset=1.0>
    {0.0} <music21.chord.Chord F#3 C#4 F#4 A4>
    {1.0} <music21.chord.Chord G#3 B3 E4 B4>
    {2.0} <music21.chord.Chord A3 E4 C#5>
    {3.0} <music21.chord.Chord G#3 B3 E4 E5>
{5.0} <music21.stream.Measure 2 offset=5.0>
    {0.0} <music21.chord.Chord A3 E4 C#5>
    {0.5} <music21.chord.Chord C#3 E4 A4 C#5>
    {1.0} <music21.chord.Chord E3 E4 G#4 B4>
    {1.5} <music21.chord.Chord E3 D4 G#4 B4>
    {2.0} <music21.chord.Chord A2 C#4 E4 A4>
    {3.0} <music21.chord.Chord E#3 C#4 G#4 C#5>
{9.0} <music21.stream.Measure 3 offset=9.0>
    {0.0} <music21.layout.SystemLayout>
...
r   streamzNeeds a TimespanTree to runNpartsF)fillWithRestsretainVoices   z(Something is wrong with the verticality z its endTime fz is less than its offset z, its endTime )music21r   
isinstancer   TimespanTreeTimespanTreeExceptionmeasureOffsetMaplistappenddurationquarterLengthhasattrr   templatecopysplitAtallTimePointstuplesortedsetgetElementsByClassMeasurezippopgetVerticalityAtr   makeElementScore)	timespanstemplateStreamr   mostemplateOffsetsoutputStreammeasureIndexr   measureListoffsetendTimevertr   elementelementss                  O/home/james-whalen/.local/lib/python3.13/site-packages/music21/tree/toStream.py
chordifiedr6      s   L i!:!:;;001NOO!--/s)~66DDENG,,"(()//2;;%IN < PL *22UZ2[LNN$	/*!//1E/4JJs=12<::6>>JK"=2CDOF!!$.##A&! "!$. --f5D#,Mq #>ga[8QRXYZQ[\]^ ^ &&}5G%,,W5  E !//1"=2CDOF--f5D#,Mq #>wqk9RSYZ[R\]^_ _ &&}5GOOG$  E ||~G(      c                    SSK Jn  U R                  5       nUR                  5       nUR                   H6  nUR                  US5      nUc  M  [        Xe5      nUR                  U5        M8     U$ )z$
DEPRECATED in v7 -- use chordify()
r   r
   N)r   r   toPartwiseTimespanTreesr(   r   getr6   r   )tsTreer*   r   treeMappingoutputScorepartpartwiseTimespans
outputParts           r5   partwiserA   x   sk     002K,,.K$$'OOD$7$ 18
:& % r7    __main__)N)r;   z('music21.tree.timespanTree.TimespanTree'r*   z'music21.stream.Score')__doc__
__future__r   r   r   music21.exceptions21r   music21.treer   
deprecatedr6   rA   
_DOC_ORDER__name__mainTestrB   r7   r5   <module>rL      s   
 #  . % 478] 9]~ 4783 9" 
 z r7   