§
    „ØjEœ  ã                  ó  — d dl mZ d dlmZ d dlmZ d dlZd dlmZ d dlm	Z	 d dlm
Z
 d dlmZ d d	lmZ d d
lmZ d dlmZ d dlmZ d dlmZmZ d dlmZ  G d„ dej        ¦  «        Zedk    rd dlZ ej        e¦  «         dS dS )é    )Úannotations)Úpformat)ÚdedentN)Úcommon)Úcorpus)Ú
instrument)Úmeter)Únote)Úpitch)Úscale)ÚintervalNetwork)ÚTerminusÚ	Direction)Ústreamc                  ó°   — 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„ 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 )ÚTestc                ó|   — d}|D ]}|t          |¦  «        dz   z  }Œ|dt          |¦  «        dz
  …         }|dz  }|S )Nú[z, r   é   ú])ÚstrÚlen)ÚselfÚlistInÚoutÚps       ú’/Users/tedpeters/Documents/Projects/Claude Projects/Misc Tools/notename-sheets/.venv/lib/python3.11/site-packages/music21/scale/test_scale_main.pyÚpitchOutzTest.pitchOut   sR   € ØˆØð 	!ð 	!ˆAØ•3�q‘6”6˜D‘=Ñ ˆCˆCØ�!•C˜‘H”H˜q‘L�.Ô!ˆØˆs‰
ˆØˆ
ó    c                óÖ  — t          j        ¦   «         }t          j        |¦  «        }|                      |j        d¦  «         |                      |                     ¦   «         d         j        d¦  «         |                     d¦  «        }|                      |j        d¦  «         | 	                    ¦   «         }|                      |j        d¦  «         t          j        ¦   «         }d|_        | 
                    ¦   «         }|                      |j        dd|j        z   ¦  «         d	„ |                     ¦   «         D ¦   «         }|                      |g d
¢¦  «         t          j        ¦   «         }d|_        d|_        t          j        |¦  «        }	|                      |	j        dd|	j        z   ¦  «         d„ |	                     ¦   «         D ¦   «         }
|                      |
g d¢¦  «         |                      |	                     ¦   «         d         |j        ¦  «         |                      |	                     ¦   «         d         j        d¦  «         |	                     d¦  «        }|                      |j        d¦  «         |	 	                    ¦   «         }|                      |j        d¦  «         |	                     ¦   «         }|                      |j        d¦  «         |	                     ¦   «         }|                      |j        d¦  «         |                      |                     ¦   «         j        d¦  «         |                      | 	                    ¦   «         j        d¦  «         d S )NzC majoré   ÚBé   ÚGÚAzA minorzGot a different name: c                ó   — g | ]	}|j         ‘Œ
S © ©Úname©Ú.0Únote1s     r   ú
<listcomp>z(Test.testBasicLegacy.<locals>.<listcomp>;   s   € Ð=Ð=Ð= �”Ð=Ð=Ð=r   )r%   r"   ÚCÚDÚEÚFr$   r%   úB-é   zB- minorc                ó   — g | ]	}|j         ‘Œ
S r'   r(   r*   s     r   r-   z(Test.testBasicLegacy.<locals>.<listcomp>D   s   € ÐBÐBÐB �%”*ÐBÐBÐBr   )r2   r.   úD-zE-r1   zG-úA-r2   r   r   r.   r1   zB- majorzD- majorr5   r6   )r
   ÚNoter   Ú
MajorScaleÚassertEqualr)   Ú
getPitchesÚstepÚpitchFromDegreeÚgetDominantÚgetRelativeMinorÚoctaveÚ
MinorScaler   ÚgetParallelMajorÚgetRelativeMajorÚgetTonic)r   Ún1ÚcMajorÚseventhÚdomÚn2ÚaMinorÚnotesÚn3Ú
bFlatMinorÚnotes2ÚcNoteÚfNoteÚ
bFlatMajorÚ
dFlatMajors                  r   ÚtestBasicLegacyzTest.testBasicLegacy'   s
  € ÝŒY‰[Œ[ˆåÔ! "Ñ%Ô%ˆà×Ò˜œ iÑ0Ô0Ð0Ø×Ò˜×*Ò*Ñ,Ô,¨QÔ/Ô4°cÑ:Ô:Ð:à×(Ò(¨Ñ+Ô+ˆØ×Ò˜œ sÑ+Ô+Ð+à× Ò Ñ"Ô"ˆØ×Ò˜œ 3Ñ'Ô'Ð'åŒY‰[Œ[ˆØˆŒà×(Ò(Ñ*Ô*ˆØ×Ò˜œ iÐ1IÈFÌKÑ1WÑXÔXÐXà=Ð=¨×):Ò):Ñ)<Ô)<Ð=Ñ=Ô=ˆØ×Ò˜Ð HÐ HÐ HÑIÔIÐIåŒY‰[Œ[ˆØˆŒØˆŒ	åÔ% bÑ)Ô)ˆ
Ø×Ò˜œ¨*Ð6NÐQ[ÔQ`Ñ6`ÑaÔaÐaØBÐB¨*×*?Ò*?Ñ*AÔ*AÐBÑBÔBˆØ×Ò˜Ð!OÐ!OÐ!OÑPÔPÐPØ×Ò˜×.Ò.Ñ0Ô0°Ô3°R´XÑ>Ô>Ð>Ø×Ò˜×.Ò.Ñ0Ô0°Ô3Ô:¸AÑ>Ô>Ð>ð, ×*Ò*¨1Ñ-Ô-ˆØ×Ò˜œ SÑ)Ô)Ð)Ø×&Ò&Ñ(Ô(ˆØ×Ò˜œ SÑ)Ô)Ð)à×0Ò0Ñ2Ô2ˆ
Ø×Ò˜œ¨*Ñ5Ô5Ð5ð  ×0Ò0Ñ2Ô2ˆ
Ø×Ò˜œ¨*Ñ5Ô5Ð5Ø×Ò˜×,Ò,Ñ.Ô.Ô3°TÑ:Ô:Ð:Ø×Ò˜×/Ò/Ñ1Ô1Ô6¸Ñ=Ô=Ð=Ð=Ð=r   c           	     ó¶  — t          j        ¦   «         }|                      |                      |                     dd¦  «        ¦  «        d¦  «         |                     d¦  «        }|                      |                      |                     dd¦  «        ¦  «        d¦  «         |                      t          |                     d¦  «        ¦  «        d¦  «         |                      t          |                     d¦  «        ¦  «        d	¦  «         |                      |                      |                     g d
¢¦  «        ¦  «        d¦  «         |                      |                      |                     ddgdd¬¦  «        ¦  «        d¦  «         t          j	        d¦  «        }|                      | 
                    d¦  «        d¦  «         |                      | 
                    d¦  «        d ¦  «         |                      | 
                    dd¬¦  «        d¦  «         |                      | 
                    dd¬¦  «        d¦  «         t          j        d¦  «        }|                      t          |                     d¦  «        ¦  «        d¦  «         |                      t          |                     d¦  «        ¦  «        d¦  «         t          j	        ¦   «         }t          j        d¦  «        }|                     |j        d         ¦  «        }|                      t          |¦  «        d¦  «         |                     |j        d          ¦  «        }|                      t          |¦  «        d¦  «         |                     |j        d!         ¦  «        }|                      t          |¦  «        d"¦  «         t!          j        ¦   «         }d#}t          j	        d$¦  «        }t$          j        dft$          j        dft$          j        dft$          j        dft$          j        dft$          j        dft$          j        dffD ]R\  }}	d%D ]J}
|                     |||	¬&¦  «        }t-          j        |¦  «        }|
|_        |                     |¦  «         ŒKŒS|                      |                      |j        ¦  «        d'¦  «         t!          j        ¦   «         }t!          j        ¦   «         }d(}d)}t          j        d¦  «        }t$          j        dft$          j        dft$          j        dft$          j        dft$          j        dffD ]Ø\  }}	d*D ]J}
|                     |||	¬&¦  «        }t-          j        |¦  «        }|
|_        |                     |¦  «         ŒK|t$          j        k    rt$          j        }n|t$          j        k    rt$          j        }d*D ]J}
|                     |||	¬&¦  «        }t-          j        |¦  «        }|
|_        |                     |¦  «         ŒKŒÙt!          j        ¦   «         }|                     d+|¦  «         |                     d+|¦  «         t          j	        d,¦  «        }t          j	        d-¦  «        }t          j        d.¦  «        }|                      ||¦  «         |                      |j         |j         ¦  «         |                      ||¦  «         |                      |j         |j         ¦  «         |                      tC          | "                    |¦  «        ¦  «        d/tC          | "                    |¦  «        ¦  «        ¦  «         d S )0NÚc2Úc5za[C2, D2, E-2, F2, G2, A-2, B-2, C3, D3, E-3, F3, G3, A-3, B-3, C4, D4, E-4, F4, G4, A-4, B-4, C5]z-m3zX[C2, D2, E2, F2, G2, A2, B2, C3, D3, E3, F3, G3, A3, B3, C4, D4, E4, F4, G4, A4, B4, C5]é   ÚC4r#   ÚG4)é   r3   r!   z[A3, E4, F4, A4]r   Úc6Úc9)ÚminPitchÚmaxPitchz[C6, B6, C7, B7, C8, B8, C9]r6   za-rY   zg#Ú
pitchClass©ÚcomparisonAttributeze-r)   r3   Úc4ÚG3é   úbwv66.6z#sopranoú"<music21.scale.MajorScale A major>z#tenorz#bassz#<music21.scale.MinorScale F# minor>zd#4ÚE4)rY   ç      à?rg   ç      Ð?rh   rh   rh   ©Ú	directionÚstepSizezà[E4, F#4, G#4, A4, B4, C#5, D#5, B4, G#4, E4, C#4, A3, F#3, D#3, G#3, C#4, F#4, B4, E5, A5, D#6, G#5, C#5, F#4, B3, E3, A2, D#2, G#2, C#3, F#3, B3, E4, A4, D#5, B4, G#4, E4, C#4, A3, F#3, D#3, E3, F#3, G#3, A3, B3, C#4, D#4]Úb4Úb3)rY   rg   rh   rh   r   ÚgÚazf#a  {'matched': [<music21.pitch.Pitch A4>,
             <music21.pitch.Pitch B4>,
             <music21.pitch.Pitch D5>,
             <music21.pitch.Pitch E5>,
             <music21.pitch.Pitch F#5>],
 'notMatched': [<music21.pitch.Pitch C#5>, <music21.pitch.Pitch G#5>]})#r   r@   r9   r   r:   Ú	transposer   r<   ÚpitchesFromScaleDegreesr8   ÚgetScaleDegreeFromPitchÚHypophrygianScaler   ÚparseÚderiveÚpartsr   ÚStreamr   Ú	ASCENDINGÚ
DESCENDINGÚ	nextPitchr
   r7   ÚquarterLengthÚappendÚpitchesÚPartÚOctatonicScaleÚScoreÚinsertÚassertNotEqualÚabstractr   Úmatch)r   Úsc2Úsc3Úsc4Úsc1Úsr   ÚscÚdÚxÚyÚnÚs1Ús2Úp1Úp2s                   r   Ú	testBasiczTest.testBasicl   sé  € õ ÔÑ Ô ˆð 	×Ò˜Ÿš s§~¢~°d¸DÑ'AÔ'AÑBÔBð@ñ	Aô 	Að 	Að
 �mŠm˜EÑ"Ô"ˆØ×Ò˜Ÿš s§~¢~°d¸DÑ'AÔ'AÑBÔBð=ñ	>ô 	>ð 	>ð
 	×Ò�˜S×0Ò0°Ñ3Ô3Ñ4Ô4°dÑ;Ô;Ð;Ø×Ò�˜S×0Ò0°Ñ3Ô3Ñ4Ô4°dÑ;Ô;Ð;Ø×Ò˜Ÿš s×'BÒ'BÀ9À9À9Ñ'MÔ'MÑNÔNØ+ñ	-ô 	-ð 	-à×ÒØ�MŠMØ×+Ò+Ø˜�FØ!Ø!ð ,ñ ô ñô ð +ñ	,ô 	,ð 	,õ Ô˜tÑ$Ô$ˆØ×Ò˜×4Ò4°TÑ:Ô:¸AÑ>Ô>Ð>à×Ò˜×4Ò4°TÑ:Ô:¸DÑAÔAÐAà×Ò˜×4Ò4°TØIUð 5ñ Wô WØXYñ	[ô 	[ð 	[à×Ò˜×4Ò4°TØIOð 5ñ Qô QØRSñ	Uô 	Uð 	Uõ
 Ô% dÑ+Ô+ˆØ×Ò�˜S×0Ò0°Ñ3Ô3Ñ4Ô4°dÑ;Ô;Ð;Ø×Ò�˜S×0Ò0°Ñ3Ô3Ñ4Ô4°dÑ;Ô;Ð;õ ÔÑ Ô ˆåŒL˜Ñ#Ô#ˆØ�jŠj˜œ Ô,Ñ-Ô-ˆØ×Ò�˜S™œÐ#GÑHÔHÐHà�jŠj˜œ Ô*Ñ+Ô+ˆØ×Ò�˜S™œÐ#GÑHÔHÐHà�jŠj˜œ Ô)Ñ*Ô*ˆØ×Ò�˜S™œÐ#HÑIÔIÐIõ ŒM‰OŒOˆØˆåÔ˜dÑ#Ô#ˆÝÔ)¨1Ð-µ	Ô0DÀaÐ/HÍ9ÔK^Ð`aÐJbÝÔ*¨AÐ.µÔ1DÀaÐ0HÍ9ÔK_ÐabÐJcÝÔ)¨1Ð-ð/ð 	ð 	‰DˆAˆqð ;ð ð �Ø—L’L ¨a¸!�LÑ<Ô<�Ý”I˜a‘L”L�Ø"#�”Ø—’˜‘”��ð	ð
 	×Ò˜Ÿš q¤yÑ1Ô1ð4ñ	5ô 	5ð 	5õ Œ[‰]Œ]ˆÝŒ[‰]Œ]ˆØˆØˆÝÔ! $Ñ'Ô'ˆÝÔ)¨1Ð-µ	Ô0DÀaÐ/HÍ9ÔK^Ð`aÐJbÝÔ*¨AÐ.µÔ1DÀaÐ0HðJð 	ð 	‰DˆAˆqà)ð ð �Ø—\’\ "°¸A�\Ñ>Ô>�Ý”I˜b‘M”M�Ø"#�”Ø—	’	˜!‘”��Ø•IÔ'Ò'Ð'ÝÔ(��Ø•iÔ*Ò*Ð*ÝÔ'�Ø)ð ð �Ø—\’\ "°¸A�\Ñ>Ô>�Ý”I˜b‘M”M�Ø"#�”Ø—	’	˜!‘”��ð	õ
 ŒL‰NŒNˆØ	�Š��B‰ŒˆØ	�Š��B‰Œˆõ Ô˜sÑ#Ô#ˆÝÔ˜sÑ#Ô#ˆÝÔ˜tÑ$Ô$ˆà×Ò˜C Ñ%Ô%Ð%Ø×Ò˜œ s¤|Ñ4Ô4Ð4Ø×Ò˜C Ñ%Ô%Ð%Ø×Ò˜CœL¨#¬,Ñ7Ô7Ð7à×Ò� §¢¨3¡¤Ñ0Ô0ð 3Jõ
 LSÐSV×S\ÒS\Ð]`ÑSaÔSaÑKbÔKbñ	dô 	dð 	dð 	dð 	dr   c           	     ó>  — t          j        dddg¦  «        }|                      |                      |                     dd¦  «        ¦  «        d¦  «         |                      |j                             ¦   «         d¦  «         |                      t          |                     d¦  «        ¦  «        d¦  «         |                      t          |                     dd	d
¦  «        ¦  «        d¦  «         t          j        ddg¦  «        }|                      |                      |j	        ¦  «        d¦  «         |                      |                      |                     dd¦  «        ¦  «        d¦  «         |                      | 
                    d¦  «        d¦  «         |                      | 
                    dt          j        ¬¦  «        d¦  «         t          j        ¦   «         }|                      |                      |                     ¦   «         ¦  «        d¦  «         d S )Nra   Úm2Úg4Úg6zr[G4, A-4, A4, B-4, C-5, C5, D-5, D5, E-5, F-5, F5, G-5, G5, A-5, A5, B-5, C-6, C6, D-6, D6, E-6, F-6, F6, G-6, G6]r   rY   rW   rT   Úc3zB#1ÚP5z[C4, G4]Úg2z[B-2, F3, C4, G4, D5, A5, E6]zb-2©rj   z	[C4, D-4])r   ÚCyclicalScaler9   r   r:   rƒ   ÚgetDegreeMaxUniquer   r<   r}   rr   r   rx   )r   rŠ   r…   s      r   ÚtestCyclicalScaleszTest.testCyclicalScalesì   sí  € ÝÔ  ¨¨d |Ñ4Ô4ˆð 	×Ò˜Ÿš r§}¢}°T¸4Ñ'@Ô'@ÑAÔAðXñ	Yô 	Yð 	Yð 	×Ò˜œ×7Ò7Ñ9Ô9¸1Ñ=Ô=Ð=à×Ò�˜R×/Ò/°Ñ2Ô2Ñ3Ô3°TÑ:Ô:Ð:Ø×Ò�˜R×/Ò/°°4¸Ñ>Ô>Ñ?Ô?ÀÑGÔGÐGõ Ô  ¨ vÑ.Ô.ˆØ×Ò˜Ÿš r¤zÑ2Ô2°JÑ?Ô?Ð?ð 	×Ò˜Ÿš r§}¢}°T¸4Ñ'@Ô'@ÑAÔAÐCbÑcÔcÐcð 	×Ò˜×3Ò3°DÑ9Ô9¸1Ñ=Ô=Ð=Ø×Ò˜×3Ò3°EÝ>GÔ>Qð 4ñ Sô SØTUñ	Wô 	Wð 	Wõ Ô!Ñ#Ô#ˆØ×Ò˜Ÿš s§~¢~Ñ'7Ô'7Ñ8Ô8¸+ÑFÔFÐFÐFÐFr   c                óœ  — t          j        ¦   «         }|                      t          |                     dd¦  «        ¦  «        d¦  «         t          j        ¦   «         }|                      t          |                     dd¦  «        ¦  «        d¦  «         |                      t          |                     dd¦  «        ¦  «        d¦  «         d S )Nr#   úG#re   z3<music21.scale.HarmonicMinorScale A harmonic minor>r   r0   z3<music21.scale.HarmonicMinorScale D harmonic minor>)r   r8   r9   r   ÚderiveByDegreeÚHarmonicMinorScale)r   rˆ   s     r   ÚtestDeriveByDegreezTest.testDeriveByDegree  sÑ   € ÝÔÑ Ô ˆØ×Ò�˜S×/Ò/°°4Ñ8Ô8Ñ9Ô9Ø=ñ	?ô 	?ð 	?õ Ô&Ñ(Ô(ˆà×Ò�˜S×/Ò/°°4Ñ8Ô8Ñ9Ô9ØNñ	Pô 	Pð 	Pà×Ò�˜S×/Ò/°°3Ñ7Ô7Ñ8Ô8ØNñ	Pô 	Pð 	Pð 	Pð 	Pr   c           	     óL	  — t          j        d¦  «        }|                      |                      |j        ¦  «        d¦  «         |                      |                      |                     t          j        ¬¦  «        ¦  «        d¦  «         |                      |                      |                     ddt          j        ¬¦  «        ¦  «        d¦  «         |                      |                      |                     ddt          j        ¬¦  «        ¦  «        d¦  «         |                      |                      |                     ddt          j        ¬¦  «        ¦  «        d¦  «         |                      |                      |                     dd	t          j        ¬¦  «        ¦  «        d
¦  «         |                      |                      |                     dd	t          j        ¬¦  «        ¦  «        d¦  «         |                      | 	                    d¦  «        d¦  «         |                      | 	                    d¦  «        d¦  «         |                      | 	                    d¦  «        d¦  «         |                      | 	                    dt          j        ¬¦  «        d ¦  «         |                      | 	                    dt          j        ¬¦  «        d¦  «         |                      |                      |                     ddt          j
        ¬¦  «        ¦  «        d¦  «         |                      | 	                    dt          j
        ¬¦  «        d¦  «         |                      | 	                    dt          j
        ¬¦  «        d¦  «         |                      | 	                    dt          j
        ¬¦  «        d¦  «         |                      | 	                    dt          j
        ¬¦  «        d¦  «         |                      |                     dt          j        ¦  «        j        d¦  «         |                      |                     dt          j        ¦  «        j        d¦  «         |                      |                     dt          j        ¦  «        j        d¦  «         d S )Nro   ú"[A4, B4, C5, D5, E5, F#5, G#5, A5]r›   Úc1r˜   z<[C3, B2, A2, G2, F2, E2, D2, C2, B1, A1, G1, F1, E1, D1, C1]z@[C1, D1, E1, F#1, G#1, A1, B1, C2, D2, E2, F#2, G#2, A2, B2, C3]Úa5Úa6z"[A5, B5, C6, D6, E6, F#6, G#6, A6]z [A6, G6, F6, E6, D6, C6, B5, A5]Úa3rY   rm   r   zg#3r#   Úg3Úa4z*[A4, B4, C5, D5, E5, F#5, F5, G#5, G5, A5]Úg8zg#1Úf8r!   úf#1Úe5úF#5ÚD5úg#2ÚA2)r   ÚMelodicMinorScaler9   r   r}   r:   r   rx   ry   rr   ÚBIrz   ÚnameWithOctave)r   Úmms     r   ÚtestMelodicMinorAzTest.testMelodicMinorA(  s  € ÝÔ$ SÑ)Ô)ˆØ×Ò˜Ÿš r¤zÑ2Ô2Ð4XÑYÔYÐYà×Ò˜Ÿš r§}¢}½yÔ?R }Ñ'SÔ'SÑTÔTØ=ñ	?ô 	?ð 	?ð 	×Ò˜Ÿš r§}¢}°T¸4Í9ÔK_ }Ñ'`Ô'`ÑaÔaØWñ	Yô 	Yð 	Yð 	×Ò˜Ÿš r§}¢}°T¸4Í9ÔK^ }Ñ'_Ô'_Ñ`Ô`Ø[ñ	]ô 	]ð 	]ð 	×Ò˜Ÿš r§}¢}°T¸4Í9ÔK_ }Ñ'`Ô'`ÑaÔaØWñ	Yô 	Yð 	Yð 	×Ò˜Ÿš r§}¢}°T¸4Í9ÔK^ }Ñ'_Ô'_Ñ`Ô`Ø=ñ	?ô 	?ð 	?ð 	×Ò˜Ÿš r§}¢}°T¸4Í9ÔK_ }Ñ'`Ô'`ÑaÔaØ;ñ	=ô 	=ð 	=ð 	×Ò˜×3Ò3°DÑ9Ô9¸1Ñ=Ô=Ð=Ø×Ò˜×3Ò3°DÑ9Ô9¸1Ñ=Ô=Ð=ð 	×Ò˜×3Ò3°EÑ:Ô:¸AÑ>Ô>Ð>ð 	×Ò˜×3Ò3°EÅYÔEYÐ3ÑZÔZÐ\`ÑaÔaÐað 	×Ò˜×3Ò3°DÅIÔDXÐ3ÑYÔYÐ[\Ñ]Ô]Ð]ð
 	×Ò˜Ÿš r§}¢}°T¸4Í9Ì< }Ñ'XÔ'XÑYÔYØEñ	Gô 	Gð 	Gð
 	×Ò˜×3Ò3°DÅIÄLÐ3ÑQÔQÐSTÑUÔUÐUØ×Ò˜×3Ò3°EÅYÄ\Ð3ÑRÔRÐTUÑVÔVÐVØ×Ò˜×3Ò3°DÅIÄLÐ3ÑQÔQÐSTÑUÔUÐUØ×Ò˜×3Ò3°EÅYÄ\Ð3ÑRÔRÐTUÑVÔVÐVà×Ò˜Ÿš d­IÔ,?Ñ@Ô@ÔOÐQVÑWÔWÐWð 	×Ò˜Ÿš d­IÔ,@ÑAÔAÔPÐRVÑWÔWÐWà×Ò˜Ÿš e­YÔ-@ÑAÔAÔPÐRVÑWÔWÐWÐWÐWr   c           	     óR
  — t          j        d¦  «        }|                      |                     dt          j        ¬¦  «        j        d¦  «         |                      |                     dt          j        ¬¦  «        j        d¦  «         |                      |                     dt          j        ¬¦  «        j        d¦  «         |                      |                     dt          j        ¬¦  «        j        d	¦  «         |                      |                      | 	                    d
d
t          j        ¬¦  «        ¦  «        d¦  «         |                      |                      | 	                    d
d
t          j        ¬¦  «        ¦  «        d¦  «         |                      t          |                     dt          j        ¦  «        ¦  «        d¦  «         |                      t          |                     dt          j        ¦  «        ¦  «        d¦  «         |                      t          |                     dt          j        ¦  «        ¦  «        d¦  «         |                      t          |                     dt          j        ¦  «        ¦  «        d¦  «         |                      t          |                     dt          j        ¦  «        ¦  «        d	¦  «         |                      t          |                     dt          j        ¦  «        ¦  «        d¦  «         |                      t          |                     dt          j        ¦  «        ¦  «        d	¦  «         |                      t          |                     dt          j        t          j        ¬¦  «        ¦  «        d¦  «         |                      t          |                     dt          j        ¦  «        ¦  «        d¦  «         |                      t          |                     dt          j        t          j        ¬¦  «        ¦  «        d¦  «         t          j        ¦   «         }d}t          j        d¦  «        }t          d¦  «        D ]y}|dz  dk    rt          j        }g d¢}nt          j        }g d¢}|D ]J}|                     ||d¬¦  «        }t          j        |¦  «        }	||	_        |                     |	¦  «         ŒKŒz|                     d¬¦  «         |                      |                      |j        ¦  «        d¦  «         d
S ) z]
        Need to test descending form of getting pitches with no defined min and max
        ro   r   r›   ÚB4r3   ÚE5r!   r°   ÚF5Nz [A5, G5, F5, E5, D5, C5, B4, A4]r¥   r©   ÚB3zf#5zG#5ÚA5Úf5ÚG5©ÚgetNeighborzf#3r–   é   r   )rY   rg   rg   r   rh   rh   rh   rh   )rY   rg   rY   rg   rg   rY   ri   T)ÚinPlacezà[G3, A3, B-3, C4, D4, E4, F#4, G4, F4, E-4, D4, C4, B-3, C4, D4, E4, F#4, G4, A4, B-4, C5, B-4, A4, G4, F4, E-4, E4, F#4, G4, A4, B-4, C5, D5, E5, E-5, D5, C5, B-4, A4, B-4, C5, D5, E5, F#5, G5, A5, B-5, A5, G5, F5, E-5, D5])r   r´   r9   r<   r   rx   r¶   ry   r   r:   r   rz   r   rw   Úranger
   r7   r{   r|   ÚmakeAccidentalsr}   )
r   r·   r‰   r   rŠ   rj   r‹   Úqlsr�   rŽ   s
             r   ÚtestMelodicMinorBzTest.testMelodicMinorBd  s‡  € õ Ô$ SÑ)Ô)ˆð 	×Ò˜×+Ò+¨A½Ô9LÐ+ÑMÔMÔ\Ð^bÑcÔcÐcà×Ò˜×+Ò+¨A½Ô9LÐ+ÑMÔMÔ\Ð^bÑcÔcÐcà×Ò˜×+Ò+¨A½Ô9LÐ+ÑMÔMÔ\Ð^cÑdÔdÐdà×Ò˜×+Ò+¨A½Ô9MÐ+ÑNÔNÔ]Ð_cÑdÔdÐdð 	×Ò˜Ÿš r§}¢}°T¸4Í9ÔK_ }Ñ'`Ô'`ÑaÔaØ;ñ	=ô 	=ð 	=ð 	×Ò˜Ÿš r§}¢}°T¸4Í9ÔK^ }Ñ'_Ô'_Ñ`Ô`Ø=ñ	?ô 	?ð 	?ð 	×Ò�˜RŸ\š\¨$µ	Ô0CÑDÔDÑEÔEÀtÑLÔLÐLà×Ò�˜RŸ\š\¨%µÔ1DÑEÔEÑFÔFÈÑNÔNÐNØ×Ò�˜RŸ\š\¨%µÔ1DÑEÔEÑFÔFÈÑMÔMÐMà×Ò�˜RŸ\š\¨$µ	Ô0DÑEÔEÑFÔFÈÑMÔMÐMØ×Ò�˜RŸ\š\¨$µ	Ô0DÑEÔEÑFÔFÈÑMÔMÐMØ×Ò�˜RŸ\š\¨$µ	Ô0DÑEÔEÑFÔFÈÑMÔMÐMà×Ò�˜RŸ\š\¨%µÔ1EÑFÔFÑGÔGÈÑNÔNÐNØ×Ò�˜RŸ\š\¨%µÔ1EÝ6?Ô6Jð *ñ Lô Lñ Mô MØNRñ	Tô 	Tð 	Tð 	×Ò�˜RŸ\š\¨$µ	Ô0CÑDÔDÑEÔEÀuÑMÔMÐMØ×Ò�˜RŸ\š\¨$µ	Ô0CÝ6?Ô6Jð *ñ Lô Lñ Mô MØNSñ	Uô 	Uð 	Uõ ŒM‰OŒOˆØˆåÔ$ TÑ*Ô*ˆÝ˜q™œð 	ð 	ˆIØ˜1‰} Ò!Ð!ÝÔ'�Ø>Ð>Ð>��åÔ(�Ø+Ð+Ð+�Øð ð �Ø—L’L ¨a¸!�LÑ<Ô<�Ý”I˜a‘L”L�Ø"#�”Ø—’˜‘”��ð	ð
 	
×Ò $ÐÑ'Ô'Ð'à×ÒØ�MŠM˜!œ)Ñ$Ô$ð^ñ	_ô 	_ð 	_ð 	_ð 	_r   c                óö   — t          j        d¦  «        }|                      |                      |j        ¦  «        d¦  «         |                      t          |                     d¦  «        ¦  «        d¦  «         d S )Nra   z$[G3, A-3, B-3, C4, D-4, E-4, F4, G4]rY   rb   )r   rs   r9   r   r}   r   r<   )r   Úhss     r   ÚtestPlagalModeszTest.testPlagalModesª  si   € ÝÔ$ TÑ*Ô*ˆØ×Ò˜Ÿš r¤zÑ2Ô2Ð4ZÑ[Ô[Ð[Ø×Ò�˜R×/Ò/°Ñ2Ô2Ñ3Ô3°TÑ:Ô:Ð:Ð:Ð:r   c           	     ó  — t          j        d¦  «        }|                      t          |                     d¦  «        ¦  «        d¦  «         |                      t          |                     dt          j        ¦  «        ¦  «        d¦  «         |                      |                      |j	        ¦  «        d¦  «         |                      |                      | 
                    ddt          j        ¬¦  «        ¦  «        d¦  «         |                      |                      | 
                    ddt          j        ¬¦  «        ¦  «        d	¦  «         |                      t          |                     d
t          j        ¦  «        ¦  «        d¦  «         |                      t          |                     dt          j        ¦  «        ¦  «        d¦  «         |                      t          |                     dt          j        ¦  «        ¦  «        d¦  «         |                      t          |                     dt          j        t          j        ¬¦  «        ¦  «        d¦  «         |                      t          |                     d¦  «        ¦  «        d¦  «         |                      t          |                     d¦  «        ¦  «        d¦  «         |                      t          |                     dt          j        ¬¦  «        ¦  «        d¦  «         |                      t          |                     d¦  «        ¦  «        d¦  «         |                      t          |                     dt          j        ¬¦  «        ¦  «        d¦  «         d S )Nra   rY   rW   ÚD4z[C4, D4, F4, G4, A-4, C5]rT   r›   z.[C2, D2, F2, G2, A-2, C3, D3, F3, G3, A-3, C4]zB[C4, B-3, A-3, G3, F3, E-3, D3, C3, B-2, A-2, G2, F2, E-2, D2, C2]r¦   ÚD1Úd1ÚF1Úf1zE-1ze-1rÁ   ÚC1rV   ÚNoneúE-4r#   zB-4)r   Ú
RagAsawarir9   r   r<   rz   r   rx   r   r}   r:   ry   ©r   rŠ   s     r   ÚtestRagAsawarizTest.testRagAsawari¯  s÷  € ÝÔ˜dÑ#Ô#ˆØ×Ò�˜R×/Ò/°Ñ2Ô2Ñ3Ô3°TÑ:Ô:Ð:ð
 	×Ò�˜RŸ\š\¨$µ	Ô0CÑDÔDÑEÔEÀtÑLÔLÐLØ×Ò˜Ÿš r¤zÑ2Ô2Ð4OÑPÔPÐPð 	×Ò˜Ÿš r§}¢}°T¸4Í9ÔK^ }Ñ'_Ô'_Ñ`Ô`ØIñ	Kô 	Kð 	Kð 	×Ò˜Ÿš r§}¢}°T¸4Í9ÔK_ }Ñ'`Ô'`ÑaÔaØ]ñ	_ô 	_ð 	_ð 	×Ò�˜RŸ\š\¨$µ	Ô0CÑDÔDÑEÔEÀtÑLÔLÐLØ×Ò�˜RŸ\š\¨$µ	Ô0CÑDÔDÑEÔEÀtÑLÔLÐLØ×Ò�˜RŸ\š\¨$µ	Ô0DÑEÔEÑFÔFÈÑNÔNÐNà×Ò�˜RŸ\š\¨%Ý*3Ô*=Ý6?Ô6Jð *ñ Lô Lñ Mô Mð ñ	ô 	ð 	ð
 	×Ò�˜R×/Ò/°Ñ2Ô2Ñ3Ô3°TÑ:Ô:Ð:à×Ò�˜R×/Ò/°Ñ2Ô2Ñ3Ô3°VÑ<Ô<Ð<Ø×Ò�˜R×/Ò/°½YÔ=QÐ/ÑRÔRÑSÔSØñ	 ô 	 ð 	 ð 	×Ò�˜R×/Ò/°Ñ2Ô2Ñ3Ô3°VÑ<Ô<Ð<Ø×Ò�˜R×/Ò/°½YÔ=QÐ/ÑRÔRÑSÔSÐUZÑ[Ô[Ð[Ð[Ð[r   c           	     óÔ  — t          j        d¦  «        }|                      t          |                     d¦  «        ¦  «        d¦  «         |                      t          |                     dt          j        ¦  «        ¦  «        d¦  «         |                      |                      |j	        ¦  «        d¦  «         |                      |                      | 
                    ddt          j        ¬¦  «        ¦  «        d	¦  «         |                      |                      | 
                    ddt          j        ¬¦  «        ¦  «        d
¦  «         |                      |                      | 
                    ddt          j        ¬¦  «        ¦  «        d¦  «         |                      |                      | 
                    ddt          j        ¬¦  «        ¦  «        d¦  «         |                      t          |                     dt          j        ¦  «        ¦  «        d¦  «         |                      t          |                     dt          j        ¦  «        ¦  «        d¦  «         |                      t          |                     dt          j        ¦  «        ¦  «        d¦  «         |                      t          |                     dt          j        ¦  «        ¦  «        d¦  «         |                      t          |                     dt          j        ¦  «        ¦  «        d¦  «         |                      t          |                     dt          j        ¦  «        ¦  «        d¦  «         |                      t          |                     dt          j        ¦  «        ¦  «        d¦  «         |                      t          |                     dt          j        ¦  «        ¦  «        d¦  «         |                      t          |                     dt          j        ¦  «        ¦  «        d¦  «         |                      t          |                     dt          j        ¦  «        ¦  «        d¦  «         d S )Nra   rY   rW   zD-4z'[C4, D-4, E4, F#4, A4, B4, A4, C5, D-5]rT   r˜   r›   z"[C2, D-2, E2, F#2, A2, B2, A2, C3]z@[C2, D-2, E2, F#2, A2, B2, A2, C3, D-3, E3, F#3, A3, B3, A3, C4]zd-4z([D-4, C4, D-4, B3, A3, F#3, E3, D-3, C3]z[C4, B3, A3, F#3, E3, D-3, C3]r¦   zD-1zd-1ÚE1Úe1zF#1r®   ÚA1ÚB1ÚB2r³   zF#2ÚE2úD-2ÚC2)r   ÚRagMarwar9   r   r<   rz   r   rx   r   r}   r:   ry   rÖ   s     r   ÚtestRagMarwaAzTest.testRagMarwaAÔ  sw  € ÝŒ^˜DÑ!Ô!ˆØ×Ò�˜R×/Ò/°Ñ2Ô2Ñ3Ô3°TÑ:Ô:Ð:à×Ò�˜RŸ\š\¨$µ	Ô0CÑDÔDÑEÔEÀuÑMÔMÐMà×Ò˜Ÿš r¤zÑ2Ô2Ð4]Ñ^Ô^Ð^ð 	×Ò˜Ÿš r§}¢}°T¸4Í9ÔK^ }Ñ'_Ô'_Ñ`Ô`Ø=ñ	?ô 	?ð 	?ð 	×Ò˜Ÿš r§}¢}°T¸4Í9ÔK^ }Ñ'_Ô'_Ñ`Ô`Ø[ñ	]ô 	]ð 	]ð 	×Ò˜Ÿš r§}¢}°T¸5ÍIÔL` }Ñ'aÔ'aÑbÔbØCñ	Eô 	Eð 	Eð
 	×Ò˜Ÿš r§}¢}°T¸4Í9ÔK_ }Ñ'`Ô'`ÑaÔaØ9ñ	;ô 	;ð 	;ð 	×Ò�˜RŸ\š\¨$µ	Ô0CÑDÔDÑEÔEÀuÑMÔMÐMØ×Ò�˜RŸ\š\¨%µÔ1DÑEÔEÑFÔFÈÑMÔMÐMØ×Ò�˜RŸ\š\¨$µ	Ô0CÑDÔDÑEÔEÀuÑMÔMÐMØ×Ò�˜RŸ\š\¨%µÔ1DÑEÔEÑFÔFÈÑMÔMÐMð 	×Ò�˜RŸ\š\¨$µ	Ô0CÑDÔDÑEÔEÀtÑLÔLÐLà×Ò�˜RŸ\š\¨$µ	Ô0DÑEÔEÑFÔFÈÑMÔMÐMØ×Ò�˜RŸ\š\¨$µ	Ô0DÑEÔEÑFÔFÈÑNÔNÐNØ×Ò�˜RŸ\š\¨$µ	Ô0DÑEÔEÑFÔFÈÑNÔNÐNà×Ò�˜RŸ\š\¨$µ	Ô0DÑEÔEÑFÔFÈÑNÔNÐNØ×Ò�˜RŸ\š\¨%µÔ1DÑEÔEÑFÔFÈÑMÔMÐMÐMÐMr   c                ó’  — t          j        d¦  «        }g }t          d¦  «        D ]5}|                     |                     dt
          j        ¦  «        ¦  «         Œ6|                      |                     d¦  «        d¦  «         |                      |                     d¦  «        d¦  «         g }t          d¦  «        D ]5}|                     |                     dt
          j	        ¦  «        ¦  «         Œ6|                      |                     d¦  «        d¦  «         |                      |                     d¦  «        d¦  «         d S )	Nra   éd   rÛ   r3   é   r#   zD-3r   )
r   rá   rÅ   r|   rr   r   rx   ÚassertGreaterÚcountry   ©r   rŠ   ÚpostÚunused_xs       r   ÚtestRagMarwaBzTest.testRagMarwaBü  s#  € ÝŒ^˜DÑ!Ô!ˆð
 ˆÝ˜c™
œ
ð 	Oð 	OˆHØ�KŠK˜×2Ò2°4½Ô9LÑMÔMÑNÔNÐNÐNØ×Ò˜4Ÿ:š: a™=œ=¨"Ñ-Ô-Ð-Ø×Ò˜4Ÿ:š: a™=œ=¨"Ñ-Ô-Ð-ð
 ˆÝ˜c™
œ
ð 	Qð 	QˆHØ�KŠK˜×2Ò2°5½)Ô:NÑOÔOÑPÔPÐPÐPØ×Ò˜4Ÿ:š: a™=œ=¨"Ñ-Ô-Ð-Ø×Ò˜4Ÿ:š: a™=œ=¨"Ñ-Ô-Ð-Ð-Ð-r   c           	     ó
  — t          j        d¦  «        }|                      |j        j                             dt          j        ¦  «        t          j	        d¦  «        t          j	        d¦  «        f¦  «         |                      |j        j         
                    dt          j        ¦  «        t          j	        d¦  «        t          j	        d¦  «        f¦  «         g }t          d¦  «        D ]B}|                     t          |                     dt          j        ¦  «        ¦  «        ¦  «         ŒC|                      |                     d¦  «        d¦  «         |                      |                     d¦  «        d¦  «         d S )	Nra   r¦   rÒ   rà   rß   rä   rå   rÜ   )r   rá   r9   rƒ   Ú_netÚrealizeTerminir   ÚLOWr   ÚPitchÚrealizeMinMaxrÅ   r|   r   rz   r   ry   ræ   rç   rè   s       r   ÚtestRagMarwaCzTest.testRagMarwaC  sI  € ÝŒ^˜DÑ!Ô!ˆà×Ò˜œÔ)×8Ò8¸½x¼|ÑLÔLÝœ+ dÑ+Ô+­U¬[¸Ñ->Ô->Ð?ñ	Aô 	Að 	Að 	×Ò˜œÔ)×7Ò7¸½h¼lÑKÔKÝœ+ dÑ+Ô+­U¬[¸Ñ-?Ô-?Ð@ñ	Bô 	Bð 	Bð ˆÝ˜c™
œ
ð 	Hð 	HˆHØ�KŠK�˜BŸLšL¨µ	Ô0DÑEÔEÑFÔFÑGÔGÐGÐGØ×Ò˜4Ÿ:š: dÑ+Ô+¨RÑ0Ô0Ð0Ø×Ò˜4Ÿ:š: dÑ+Ô+¨RÑ0Ô0Ð0Ð0Ð0r   c                ó  — t          j        d¦  «        }d}d}t          d¦  «        D ]Y}|                      |                     dd¦  «        ¦  «        }|dk    r|dz  }|dk    r|dz  }|                      |dv d	¦  «         ŒZ|                      |d¦  «         |                      |d¦  «         d}d}t          d¦  «        D ]e}|                      |                     ddt          j        ¬
¦  «        ¦  «        }|dk    r|dz  }|dk    r|dz  }|                      |dv d	¦  «         Œf|                      |d¦  «         |                      |d¦  «         |                      t          | 
                    d¦  «        ¦  «        d¦  «         |                      t          |                     dt          j        ¦  «        ¦  «        d¦  «         |                      t          | 
                    d¦  «        ¦  «        d¦  «         d S )Nra   r   é2   r˜   ú[C3, E-3, F3, G3, B-3, C4]rY   ú[C3, E-3, F3, F#3, G3, B-3, C4])rõ   rö   Tr›   ú[C4, B-3, G3, F3, E-3, C3]ú[C4, B-3, G3, F#3, F3, E-3, C3])r÷   rø   rW   rÔ   rc   úF#4)r   ÚWeightedHexatonicBluesrÅ   r   r:   r9   ÚassertGreaterEqualr   ry   r   r<   rz   rx   )r   rŠ   ÚiÚjÚdummyr„   s         r   ÚtestWeightedHexatonicBluesAz Test.testWeightedHexatonicBluesA!  s6  € ÝÔ)¨$Ñ/Ô/ˆàˆØˆÝ˜2‘Y”Yð 	ð 	ˆEð —M’M "§-¢-°°dÑ";Ô";Ñ<Ô<ˆEØÐ4Ò4Ð4Ø�Q‘�ØÐ9Ò9Ð9Ø�Q‘�Ø×Ò˜Uð '3ð 3ð ñô ð ð ð
 	×Ò  1Ñ%Ô%Ð%Ø×Ò  1Ñ%Ô%Ð%ð ˆØˆÝ˜2‘Y”Yð 	ð 	ˆEð —M’M "§-¢-°°dÅiÔFZ -Ñ"[Ô"[Ñ\Ô\ˆEØÐ4Ò4Ð4Ø�Q‘�ØÐ9Ò9Ð9Ø�Q‘�Ø×Ò˜Uð '3ð 3ð ñô ð ð ð
 	×Ò  1Ñ%Ô%Ð%Ø×Ò  1Ñ%Ô%Ð%à×Ò�˜R×/Ò/°Ñ2Ô2Ñ3Ô3°TÑ:Ô:Ð:Ø×Ò�˜RŸ\š\¨$µ	Ô0CÑDÔDÑEÔEÀuÑMÔMÐMð 	×Ò�˜R×/Ò/°Ñ2Ô2Ñ3Ô3°UÑ;Ô;Ð;Ð;Ð;r   c           	     óv  — t          j        d¦  «        }|                      t          |                     dt
          j        d¦  «        ¦  «        d¦  «         |                      t          |                     dt
          j        d¦  «        ¦  «        d¦  «         |                      t          |                     dt
          j        d¦  «        ¦  «        d¦  «         |                      t          |                     d	t
          j        d¦  «        ¦  «        d
¦  «         |                      t          |                     dt
          j        d¦  «        ¦  «        d¦  «         |                      t          |                     dt
          j        d¦  «        ¦  «        d¦  «         t          j        d¦  «        }|                      t          |                     dt
          j        d¦  «        ¦  «        d¦  «         |                      t          |                     dt
          j        d¦  «        ¦  «        d¦  «         d S )Nra   r«   rY   rº   rl   ÚC5Úb5ÚC6rm   rW   r˜   rÝ   Úc8ÚB7r²   r³   zg#4ÚA4)r   r8   r9   r   rz   r   rx   ry   rÖ   s     r   Ú	testNextAzTest.testNextAX  s´  € ÝÔ˜dÑ#Ô#ˆð 	×Ò�˜RŸ\š\¨$µ	Ô0CÀQÑGÔGÑHÔHÈ$ÑOÔOÐOØ×Ò�˜RŸ\š\¨$µ	Ô0CÀQÑGÔGÑHÔHÈ$ÑOÔOÐOØ×Ò�˜RŸ\š\¨$µ	Ô0CÀQÑGÔGÑHÔHÈ$ÑOÔOÐOØ×Ò�˜RŸ\š\¨$µ	Ô0CÀQÑGÔGÑHÔHÈ$ÑOÔOÐOð 	×Ò�˜RŸ\š\¨$µ	Ô0DÀaÑHÔHÑIÔIÈ4ÑPÔPÐPØ×Ò�˜RŸ\š\¨$µ	Ô0DÀaÑHÔHÑIÔIÈ4ÑPÔPÐPåÔ˜dÑ#Ô#ˆà×Ò�˜RŸ\š\¨%µÔ1DÀaÑHÔHÑIÔIÈ4ÑPÔPÐPØ×Ò�˜RŸ\š\¨%µÔ1DÀaÑHÔHÑIÔIÈ4ÑPÔPÐPÐPÐPr   c                ó  — t          j        d¦  «        }|                      t          |                     dd¦  «        ¦  «        d¦  «         |                      t          |                     dd¦  «        ¦  «        d¦  «         |                      t          |                     dd¦  «        ¦  «        d	¦  «         |                      t          |                     d
d¦  «        ¦  «        d¦  «         t          j        d¦  «        }d}t          d¦  «        D ][}d }	 |                     dd¦  «        }n# t           j        $ r |dz  }Y nw xY w|�#|                      t          |¦  «        d¦  «         Œ\|                      |d¦  «         d S )Nra   rV   rc   z<music21.interval.Interval m2>rY   r#   z<music21.interval.Interval M7>r3   z<music21.interval.Interval P5>r   z<music21.interval.Interval m3>rª   r   é
   z<music21.interval.Interval A1>)	r   r8   r9   r   ÚintervalBetweenDegreesrú   rÅ   ÚScaleExceptionÚ
assertLess)r   rŠ   ÚexceptCountrþ   ré   s        r   ÚtestIntervalBetweenDegreeszTest.testIntervalBetweenDegreesj  s‡  € ÝÔ˜dÑ#Ô#ˆØ×Ò�˜R×6Ò6°q¸!Ñ<Ô<Ñ=Ô=Ð?_Ñ`Ô`Ð`Ø×Ò�˜R×6Ò6°q¸!Ñ<Ô<Ñ=Ô=Ð?_Ñ`Ô`Ð`Ø×Ò�˜R×6Ò6°q¸!Ñ<Ô<Ñ=Ô=Ð?_Ñ`Ô`Ð`Ø×Ò�˜R×6Ò6°q¸!Ñ<Ô<Ñ=Ô=Ð?_Ñ`Ô`Ð`õ Ô)¨$Ñ/Ô/ˆØˆÝ˜2‘Y”Yð 	Nð 	NˆEØˆDð!Ø×0Ò0°°AÑ6Ô6��øÝÔ'ð !ð !ð !Ø˜qÑ ���ð!øøøàÐØ× Ò ¥ T¡¤Ð,LÑMÔMÐMøØ�Š˜ QÑ'Ô'Ð'Ð'Ð's   ÄD2Ä2E	ÅE	c                ó8  — t          d¦  «        }t          j        d|¦  «        }|                      t	          |¦  «        d¦  «         |                      |                     dd¦  «        ¦  «        }|                      t          j	        |d¦  «        |¦  «         d S )Nab  ! fj-12tet.scl
            !
            Franck Jedrzejewski continued fractions approx. of 12-tet
             12
            !
            89/84
            55/49
            44/37
            63/50
            4/3
            99/70
            442/295
            27/17
            37/22
            98/55
            15/8
            2/1
            ra   z0<music21.scale.ScalaScale C Scala: fj-12tet.scl>rT   a  
            [C2, C#2(+0c), D2(-0c), E-2(-0c), E2(+0c), F2(-2c), F#2(+0c),
             G2, G#2(+1c), A2(+0c), B-2(+0c), B2(-12c),
             C3, C#3(+0c), D3(-0c), E-3(-0c), E3(+0c), F3(-2c), F#3(+0c),
             G3, G#3(+1c), A3(+0c), B-3(+0c), B3(-12c),
             C4])
r   r   Ú
ScalaScaler9   r   r   r:   Ú
assertTruer   ÚwhitespaceEqual)r   ÚmsgrŠ   Ú
pitchesOuts       r   ÚtestScalaScaleAzTest.testScalaScaleA  s¡   € åð ñ ô ˆõ& Ô˜d CÑ(Ô(ˆØ×Ò�˜R™œÐ"TÑUÔUÐUà—]’] 2§=¢=°°tÑ#<Ô#<Ñ=Ô=ˆ
Ø�Š�Ô.¨zð0ñô ð !ñ	"ô 	"ð 	"ð 	"ð 	"r   c                ó*  — t          j        d¦  «        }|                     ¦   «         }|                      |j        d¦  «         d}|                      t          j        |                     ¦   «         |¦  «        |                     ¦   «         ¦  «         d S )Nra   r#   zÙ!
            <music21.scale.MajorScale C major>
            7
            !
            200.0
            400.0
            500.0
            700.0
            900.0
            1100.0
            1200.0
            )	r   r8   ÚgetScalaDatar9   Ú
pitchCountr  r   r  ÚgetFileString)r   rŠ   Ússr  s       r   ÚtestScalaScaleOutputzTest.testScalaScaleOutput   s�   € ÝÔ˜dÑ#Ô#ˆØ�_Š_ÑÔˆØ×Ò˜œ¨Ñ*Ô*Ð*ðˆð 	�Š�Ô.¨r×/?Ò/?Ñ/AÔ/AÀ3ÑGÔGÈ×IYÒIYÑI[ÔI[Ñ\Ô\Ð\Ð\Ð\r   c                ót  — t          j        dd¦  «        }|                      |j        j        j        d¦  «         |j        }|                      |                      |¦  «        d¦  «         t          j        dd¦  «        }|                      |                      |j        ¦  «        d¦  «         t          j        dd¦  «        }|                      |                      |j        ¦  «        d	¦  «         t          j        dd
¦  «        }|                      |                      |j        ¦  «        d¦  «         t          j        dd¦  «        }|                      |                      |j        ¦  «        d¦  «         t          j        dd¦  «        }|                      |                      |j        ¦  «        d¦  «         t          j	        ¦   «         }| 
                    t          j        d¦  «        ¦  «         t          j        dd¦  «        }t          j        dd¦  «        }t          j        ¦   «         }| 
                    d„ |j        D ¦   «         ¦  «         t          j        ¦   «         }| 
                    d„ |j        D ¦   «         ¦  «         |                     d|¦  «         |                     d|¦  «         d S )NÚe2zfj 12tetÚ
mostCommonzv[E2, F2(+0c), F#2(-0c), G2(-0c), G#2(+0c), A2(-2c), B-2(+0c), B2(-0c), C3(+1c), C#3(+0c), D3(+0c), E-3(-12c), E3(+0c)]rT   z
mbira zimbzN[C2, C#2(-2c), D~2(+21c), E~2(+22c), F#~2(-8c), G~2(+21c), A~2(+2c), B~2(-2c)]Ú
mbira_mudezè[C2, C#~2(+24c), E-2(-11c), F#2(-25c), F#2(+12c), G~2(+20c), B~2(-4c), B-2(-24c), F3(-22c), D~3(+17c), F#~3(-2c), G#3(-13c), A3(+15c), C#~3(-24c), A3(+17c), B~3(-2c), C#~4(-22c), D~4(-4c), E~4(+10c), F#~4(-18c), G#4(+5c), B`4(+15c)]Úslendro_pliatzZ[C2, D~2(-15c), E~2(+4c), G2(+5c), A~2(-23c), C3, D~3(-15c), E~3(+4c), G3(+5c), A~3(-23c)]Úslendro_ang2z3[C2, E-2(-22c), F~2(+19c), G~2(-10c), B`2(-8c), C3]zslendroc5.sclz1[C2, D~2(-14c), E~2(+4c), G2(+5c), A~2(-22c), C3]z6/4c                óD   — g | ]}t          j        ||j        ¬ ¦  «        ‘ŒS ©)Úlyric©r
   r7   Ú	microtone©r+   r   s     r   r-   z(Test.testScalaScaleB.<locals>.<listcomp>å  ó)   € ÐHÐHÐH°q•4”9˜Q a¤kÐ2Ñ2Ô2ÐHÐHÐHr   c                óD   — g | ]}t          j        ||j        ¬ ¦  «        ‘ŒS r#  r%  r'  s     r   r-   z(Test.testScalaScaleB.<locals>.<listcomp>ç  r(  r   r   )r   r  r9   Ú	_abstractrí   ÚpitchSimplificationr}   r   r   rw   r|   r	   ÚTimeSignaturer~   r�   )r   rŠ   ÚpListr‰   rˆ   r…   r‘   r’   s           r   ÚtestScalaScaleBzTest.testScalaScaleB´  s‰  € åÔ˜d JÑ/Ô/ˆØ×Ò˜œÔ*Ô>ÀÑMÔMÐMð ”
ˆØ×ÒØ�MŠM˜%Ñ Ô ð@ñ	Aô 	Að 	Aõ Ô˜d LÑ1Ô1ˆØ×ÒØ�MŠM˜"œ*Ñ%Ô%Ø\ñ	^ô 	^ð 	^õ
 Ô˜d LÑ1Ô1ˆØ×ÒØ�MŠM˜"œ*Ñ%Ô%ð\ñ	]ô 	]ð 	]õ Ô˜d OÑ4Ô4ˆØ×Ò˜Ÿš r¤zÑ2Ô2ð1ñ	2ô 	2ð 	2õ
 Ô˜d NÑ3Ô3ˆØ×Ò˜Ÿš r¤zÑ2Ô2ØNñ	Pô 	Pð 	Põ Ô˜d OÑ4Ô4ˆØ×Ò˜Ÿš r¤zÑ2Ô2ØLñ	Nô 	Nð 	Nõ ŒM‰OŒOˆØ	�Š•Ô$ UÑ+Ô+Ñ,Ô,Ð,åÔ˜t ^Ñ4Ô4ˆÝÔ˜t _Ñ5Ô5ˆÝŒ[‰]Œ]ˆØ
�	Š	ÐHÐH¸C¼KÐHÑHÔHÑIÔIÐIÝŒ[‰]Œ]ˆØ
�	Š	ÐHÐH¸C¼KÐHÑHÔHÑIÔIÐIØ	�Š��B‰ŒˆØ	�Š��B‰Œˆˆˆr   c                óö  — t          j        g d¢¬¦  «        }|                      t          |                     ¦   «         ¦  «        d¦  «         |                      |j        j        ¦  «         |                      |                      |j	        ¦  «        d¦  «         |                      |                      | 
                    dd¦  «        ¦  «        d¦  «         |                      |                      | 
                    dd¦  «        ¦  «        d¦  «         |                      |                      | 
                    dd¦  «        ¦  «        d	¦  «         |                      |                      | 
                    d
d¦  «        ¦  «        d¦  «         t          j        g d¢¬¦  «        }|                      t          |                     ¦   «         ¦  «        d¦  «         |                      |j        j        ¦  «         d S )N)	úC#3úE-3ÚF3rb   r½   zD~4rù   r  úC#5©r}   r0  z)[C#3, E-3, F3, G3, B3, D~4, F#4, A4, C#5]r3  zC#1zM[C#1, E-1, F1, G1, B1, D~2, F#2, A2, C#3, E-3, F3, G3, B3, D~4, F#4, A4, C#5]úC#4z[D~4, F#4, A4, C#5]zC#7z)[C#7, A6, F#6, D~6, B5, G5, F5, E-5, C#5])r0  r1  r2  rb   r½   r5  )r   ÚConcreteScaler9   r   rC   ÚassertFalserƒ   ÚoctaveDuplicatingr   r}   r:   r  rÖ   s     r   ÚtestConcreteScaleAzTest.testConcreteScaleAì  sÞ  € åÔ ØOÐOÐOð
ñ 
ô 
ˆð 	×Ò�˜RŸ[š[™]œ]Ñ+Ô+¨UÑ3Ô3Ð3à×Ò˜œÔ6Ñ7Ô7Ð7à×Ò˜Ÿš r¤zÑ2Ô2ØDñ	Fô 	Fð 	Fð 	×Ò˜Ÿš r§}¢}°U¸EÑ'BÔ'BÑCÔCØDñ	Fô 	Fð 	Fð 	×ÒØ�MŠM˜"Ÿ-š-¨¨uÑ5Ô5Ñ6Ô6Ø[ñ	]ô 	]ð 	]ð 	×Ò˜Ÿš r§}¢}°U¸EÑ'BÔ'BÑCÔCØ.ñ	0ô 	0ð 	0ð 	×Ò˜Ÿš r§}¢}°U¸EÑ'BÔ'BÑCÔCØDñ	Fô 	Fð 	Fõ Ô Ð)PÐ)PÐ)PÐQÑQÔQˆØ×Ò�˜RŸ[š[™]œ]Ñ+Ô+¨UÑ3Ô3Ð3Ø�Š˜œÔ5Ñ6Ô6Ð6Ð6Ð6r   c                óê  — t          j        d¦  «        }|j        d         }|                      |                      |j        dd…         ¦  «        d¦  «         t          j        dd¦  «        }|                      |                      |j        ¦  «        d¦  «         |                     |¦  «         |j        d         }|                      |                      |j        dd…         ¦  «        d¦  «         d S )	Nrd   r   r	  z,[C#5, B4, A4, B4, C#5, E5, C#5, B4, A4, C#5]rW   úfokker_12.sclúx[C4, C#4(+19c), D4(+4c), D~4(+17c), E4(-14c), F4(-2c), F#4(-10c), G4(+2c), G#4(+21c), A4(-16c), A~4(+19c), B4(-12c), C5]úh[C#5(+19c), B4(-12c), A4(-16c), B4(-12c), C#5(+19c), E5(-14c), C#5(+19c), B4(-12c), A4(-16c), C#5(+19c)])	r   rt   rv   r9   r   r}   r   r  Útune)r   r‰   r‘   rŠ   s       r   Ú	testTuneAzTest.testTuneA  sö   € õ ŒL˜Ñ#Ô#ˆØŒW�QŒZˆð 	×Ò˜Ÿš r¤z°!°B°$Ô'7Ñ8Ô8ØGñ	Iô 	Ið 	Iõ Ô˜d OÑ4Ô4ˆØ×ÒØ�MŠM˜"œ*Ñ%Ô%ð>ñ	?ô 	?ð 	?ð 	�Š�‰
Œ
ˆ
àŒW�QŒZˆà×ÒØ�MŠM˜"œ* Q r TÔ*Ñ+Ô+ð/ñ	0ô 	0ð 	0ð 	0ð 	0r   c                óæ  — t          j        dd¦  «        }|j        }|                      |                      |¦  «        d¦  «         t          j        d¦  «        }|                     |¦  «         |                      |                      |j        d         j        dd…         ¦  «        d¦  «         |                      |                      |j        d         j        dd…         ¦  «        d	¦  «         d S )
NrW   r;  r<  rd   r   r	  r=  rY   zg[E4(-14c), F#4(-10c), E4(-14c), E4(-14c), E4(-14c), E4(-14c), A4(-16c), G#4(+21c), E4(-14c), G#4(+21c)])	r   r  r}   r9   r   r   rt   r>  rv   )r   rŠ   Úplr‰   s       r   Ú	testTuneBzTest.testTuneB'  sö   € õ Ô˜d OÑ4Ô4ˆØŒZˆØ×ÒØ�MŠM˜"ÑÔð>ñ	?ô 	?ð 	?õ
 ŒL˜Ñ#Ô#ˆØ
�Š�‰
Œ
ˆ
à×ÒØ�MŠM˜!œ' !œ*Ô,¨Q¨r¨TÔ2Ñ3Ô3ð/ñ	0ô 	0ð 	0ð
 	×Ò˜Ÿš q¤w¨q¤zÔ'9¸!¸B¸$Ô'?Ñ@Ô@ðQñ	Rô 	Rð 	Rð 	Rð 	Rr   c                óL  — t          j        d¦  «                             dd¦  «        }|j        D ]-}|t          j                                      ¦   «         }d|_        Œ.t          j	        dd¦  «        }| 
                    |¦  «         |                     ¦   «         j        D ]‚}|j        �y|j        j        dk    r|j        j        d	z   |_        Œ.|j        j        d
k    r |j        dk    r|j        j        dz
  |_        Œ^|j        j        d
k    r|j        j        d	z
  |_        ŒƒdS )zÒ
        Applies a pythagorean tuning to a section of D. Luca's Gloria
        and then uses Marchetto da Padova's very high sharps and very low
        flats (except B-flat) to inflect the accidentals
        zluca/gloriaéF   éO   é4   ÚF2zpyth_12.sclNÚsharpé-   Úflatr"   é   )r   rt   Úmeasuresrv   r   Ú
InstrumentÚfirstÚmidiProgramr   r  r>  Úflattenr}   Ú
accidentalr)   r&  Úcentsr;   )r   r‰   r   ÚinstrŠ   s        r   ÚtestTunePythagoreanzTest.testTunePythagorean=  s  € õ ŒL˜Ñ'Ô'×0Ò0°°RÑ8Ô8ˆØ”ð 	"ð 	"ˆAØ•ZÔ*Ô+×1Ò1Ñ3Ô3ˆDØ!ˆDÔÐÝÔ˜d MÑ2Ô2ˆØ
�Š�‰
Œ
ˆ
Ø—’‘”Ô$ð 	9ð 	9ˆAØŒ|Ð'Ø”<Ô$¨Ò/Ð/Ø"#¤+Ô"3°bÑ"8�A”K�KØ”\Ô&¨&Ò0Ð0°Q´V¸s²]°]Ø"#¤+Ô"3°bÑ"8�A”K�KØ”\Ô&¨&Ò0Ð0Ø"#¤+Ô"3°bÑ"8�A”Køð	9ð 	9r   c                óŠ   — t          j        d¦  «        }|                      |                      |j        ¦  «        d¦  «         d S )Nra   z9[C4, C#4, D4, E-4, E4, F4, F#4, G4, A-4, A4, B-4, B4, C5])r   ÚChromaticScaler9   r   r}   )r   Úcss     r   ÚtestChromaticScaleAzTest.testChromaticScaleAV  sL   € ÝÔ! $Ñ'Ô'ˆØ×Ò˜Ÿš r¤zÑ2Ô2ØTñ	Vô 	Vð 	Vð 	Vð 	Vr   c                óþ  — t          j        ddd¬¦  «        }|                      |                      |                     dd¦  «        ¦  «        d¦  «         t          j        ddd¬¦  «        }|                      |                      |                     dd¦  «        ¦  «        d	¦  «         t          j        ddd
¬¦  «        }|                      |                      |                     dd¦  «        ¦  «        d¦  «         d S )NÚd4z1@0r   )ÚeldrT   ra   z<[C2, D2, F-2, G-2, A-2, B-2, C3, D3, F-3, G-3, A-3, B-3, C4]rg   zê[C2, C~2, D-2, D`2, D2, D~2, E-2, E`2, F-2, F`2, F2, F~2, G-2, G`2, G2, G~2, A-2, A`2, A2, A~2, B-2, B`2, C-3, C`3, C3, C~3, D-3, D`3, D3, D~3, E-3, E`3, F-3, F`3, F3, F~3, G-3, G`3, G3, G~3, A-3, A`3, A3, A~3, B-3, B`3, C-4, C`4, C4]rh   r˜   as  [C2, C2(+25c), C~2, C#2(-25c), D-2, D`2(-25c), D`2, D2(-25c), D2, D2(+25c), D~2, D#2(-25c), E-2, E`2(-25c), E`2, E2(-25c), F-2, F`2(-25c), F`2, F2(-25c), F2, F2(+25c), F~2, F#2(-25c), G-2, G`2(-25c), G`2, G2(-25c), G2, G2(+25c), G~2, G#2(-25c), A-2, A`2(-25c), A`2, A2(-25c), A2, A2(+25c), A~2, A#2(-25c), B-2, B`2(-25c), B`2, B2(-25c), C-3, C`3(-25c), C`3, C3(-25c), C3])r   Ú
SieveScaler9   r   r:   rÖ   s     r   ÚtestSieveScaleAzTest.testSieveScaleA[  s  € õ Ô˜d E¨qÐ1Ñ1Ô1ˆà×Ò˜Ÿš r§}¢}°T¸4Ñ'@Ô'@ÑAÔAØWñ	Yô 	Yð 	Yõ Ô˜d E¨sÐ3Ñ3Ô3ˆà×ÒØ�MŠM˜"Ÿ-š-¨¨dÑ3Ô3Ñ4Ô4ð6ñ	
ô 	
ð 	
õ Ô˜d E¨tÐ4Ñ4Ô4ˆà×ÒØ�MŠM˜"Ÿ-š-¨¨dÑ3Ô3Ñ4Ô4ðñ	
ô 	
ð 	
ð 	
ð 	
r   c                óò   — t          j        g d¢¬¦  «        }|                     g d¢d¬¦  «        }|                      t	          |¦  «        d                     g d¢¦  «        t	          |¦  «        ¦  «         d S )N)r%   r"   r.   r/   r0   r1   r    r%   r4  )r.   r0   r$   r)   r_   Ú )z0[(3, <music21.scale.ConcreteScale F Concrete>), z/(3, <music21.scale.ConcreteScale E Concrete>), z/(2, <music21.scale.ConcreteScale B Concrete>), z.(2, <music21.scale.ConcreteScale A Concrete>)])r   r6  ÚderiveRankedr9   r   Újoin)r   r‹   Úes      r   ÚtestDerivedScaleNoOctaveszTest.testDerivedScaleNoOctavesz  s�   € ÝÔÐ(QÐ(QÐ(QÐRÑRÔRˆØ�NŠN˜?˜?˜?ÀˆNÑGÔGˆØ×Ò�˜Q™œØŸšð "Uð "Uð "Uñ Vô Võ ˜Q™œñ	ô 	ð 	ð 	ð 	r   c                óÖ   — t          j        g d¢¬¦  «        }|                      t          j        ¦  «        5  |                     g d¢d¬¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )N)r  rº   rW   rÍ   rf   ÚF4rX   r  r4  )rW   rf   rX   r)   r_   )r   r6  ÚassertRaisesr   ÚIntervalNetworkExceptionr`  )r   rb  s     r   ÚtestDerivedScaleAbsurdOctavesz"Test.testDerivedScaleAbsurdOctaves…  sÈ   € ÝÔÐ(XÐ(XÐ(XÐYÑYÔYˆØ×Ò�ÔGÑHÔHð 	Kð 	KØ�NŠNÐ-Ð-Ð-À6ˆNÑJÔJÐJð	Kð 	Kð 	Kñ 	Kô 	Kð 	Kð 	Kð 	Kð 	Kð 	Kð 	Kð 	Køøøð 	Kð 	Kð 	Kð 	Kð 	Kð 	Ks   ·AÁA"Á%A"c                ór  — t          j        d¦  «        }t          d¦  «        D ]’}|                      |¬¦  «        5  |                     t
          j        ¬¦  «        }|                      |d         j        d¦  «         |                      |d         j        d¦  «         d	d	d	¦  «         n# 1 swxY w Y   Œ“d	S )
zL
        Worth testing because we found cached lists being mutated.
        r.   rV   )Ú
iterationsr›   r   r  éÿÿÿÿrW   N)	r   r8   rÅ   ÚsubTestr:   r   ry   r9   r¶   )r   Úc_majrü   ré   s       r   Útest_getPitches_multiple_timesz#Test.test_getPitches_multiple_timesŠ  s  € õ Ô  Ñ%Ô%ˆå�q‘”ð 	@ð 	@ˆAØ—’¨�Ñ+Ô+ð @ð @ð ×'Ò'µ)Ô2FÐ'ÑGÔG�à× Ò   a¤Ô!7¸Ñ>Ô>Ð>Ø× Ò   b¤Ô!8¸$Ñ?Ô?Ð?ð@ð @ð @ñ @ô @ð @ð @ð @ð @ð @ð @øøøð @ð @ð @ð @øð	@ð 	@s   ¼A#B+Â+B/	Â2B/	N)Ú__name__Ú
__module__Ú__qualname__r   rR   r“   rž   r£   r¸   rÈ   rË   r×   râ   rë   rò   rÿ   r  r  r  r  r.  r9  r?  rB  rT  rX  r]  rc  rh  rn  r'   r   r   r   r      sæ  € € € € € ðð ð ðC>ð C>ð C>ðJ~dð ~dð ~dð@%Gð %Gð %GðN
Pð 
Pð 
Pð*9Xð 9Xð 9XðxB_ð B_ð B_ðL;ð ;ð ;ð
#\ð #\ð #\ðJ&Nð &Nð &NðP.ð .ð .ð*1ð 1ð 1ð ,<ð ,<ð ,<ðnQð Qð Qð$(ð (ð (ð*"ð "ð "ðB]ð ]ð ]ð(5ð 5ð 5ðp 7ð  7ð  7ðD0ð 0ð 0ð2Rð Rð Rð,9ð 9ð 9ð2Vð Vð Vð

ð 
ð 
ð>	ð 	ð 	ðKð Kð Kð
@ð @ð @ð @ð @r   r   Ú__main__)Ú
__future__r   Úpprintr   Útextwrapr   ÚunittestÚmusic21r   r   r   r	   r
   r   r   Úmusic21.scaler   r   r   r   ÚTestCaser   ro  ÚmainTestr'   r   r   ú<module>r{     su  ðð #Ð "Ð "Ð "Ð "Ð "à Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø €€€à Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø )Ð )Ð )Ð )Ð )Ð )Ø -Ð -Ð -Ð -Ð -Ð -Ð -Ð -Ø Ð Ð Ð Ð Ð ðz@ð z@ð z@ð z@ð z@ˆ8Ôñ z@ô z@ð z@ð| ˆzÒÐà€N€N€NØ€GÔ�TÑÔÐÐÐð Ðr   