def test_meter(self): apparatus.parse("<!!>").decorate(loud=True) apparatus.parse("<! 130 => )) !>").decorate(loud=True) apparatus.parse("<! 90 => forte 100 => fforte 127 => fff 4=>ppp !>").decorate(loud=True) apparatus.parse("<! !>").decorate(loud=True) apparatus.parse("<!!>").decorate(loud=True)
def test_apparatus(self): apparatus.parse("| c ) d ) ]] ]] ]] g ] |").decorate(loud=True) skoar = apparatus.parse("| mp c ) d ) %S% ]] | [1.] fff ]] fp ]] g p D.S. ] | [2.] <! 4/4 \sna !> <c,e,g> )) )) ) :|") skoar.decorate(loud=True) print(skoar.tree.draw_tree())
def test_meter(self): apparatus.parse("<!!>").decorate(loud=True) apparatus.parse("<! 130 => )) !>").decorate(loud=True) apparatus.parse("<! 90 => forte 100 => fforte 127 => fff 4=>ppp !>" ).decorate(loud=True) apparatus.parse("<! !>").decorate(loud=True) apparatus.parse("<!!>").decorate(loud=True)
def test_apparatus(self): apparatus.parse("| c ) d ) ]] ]] ]] g ] |").decorate(loud=True) skoar = apparatus.parse( "| mp c ) d ) %S% ]] | [1.] fff ]] fp ]] g p D.S. ] | [2.] <! 4/4 \sna !> <c,e,g> )) )) ) :|" ) skoar.decorate(loud=True) print(skoar.tree.draw_tree())
def test_multiline(self): apparatus.parse(""" <! 120 => ) !> | <a,c,e> ). ). ]]] ]]] ]]] |: f# ) ) ooo/ ]]] ooo/ ]] ]] :| ) <? yay ?> ) """).decorate(loud=True)
def test_big(self): src = """ | c ) d ) ]] ]] ]] g ] | | mp c ) d ) %S% ]] | [1.] fff ]] fp ]] g p D.S. ] | [2.] <! 4/4 \sna !> <c,e,g> )) )) ) :| <! 120 => ) !> | <a,c,e> ). ). ]]] ]]] ]]] |: f# ) ) ooo/ ]]] ooo/ ]] ]] :| | <a,c,e> ). ). ]]] ]]] ]]] |: f# ) ) ooo/ ]]] ooo/ ]] ]] :| | <a,c,e> ). ). ]]] ]]] ]]] |: f# ) ) ooo/ ]]] ooo/ ]] ]] :| | <a,c,e> ). ). ]]] ]]] ]]] |: f# ) ) ooo/ ]]] ooo/ ]] ]] :| | <a,c,e> ). ). ]]] ]]] ]]] |: f# ) ) ooo/ ]]] ooo/ ]] ]] :| | <a,c,e> ). ). ]]] ]]] ]]] |: f# ) ) ooo/ ]]] ooo/ ]] ]] :| | <a,c,e> ). ). ]]] ]]] ]]] |: f# ) ) ooo/ ]]] ooo/ ]] ]] :| | <a,c,e> ). ). ]]] ]]] ]]] |: f# ) ) ooo/ ]]] ooo/ ]] ]] :| | a ) b ) c ) | d ) e ) f ) g ) %S%_food | """ print("Skoarse Code") print("------------") print(src) skoar = apparatus.parse(src) print("\nParse Tree") print("----------") print(skoar.tree.draw_tree()) skoar.decorate() print(skoar.tree.draw_tree())
def test_more(self): skoar = apparatus.parse( """|: mp c ) d ) %S% ]] :|: [1.] fff (+) ]] fp ]] g p D.S. al Coda ] | [2.] <! 4/4 \sna !> <c,e,g> )) )) ) :|""") skoar.decorate() for x, y in skoar.get_pattern_gen(): print("x: " + str(x) + ", " + str(y))
def test_notes(self): skoar = apparatus.parse( "| a ) b )) c ))) | d ] e ]] f ]]] g ] ] |") skoar.decorate() for x, y in skoar.get_pattern_gen(): print("x: " + str(x) + ", " + str(y))
def test_notes(self): apparatus.parse("| a ) b ) c ) | d ) e ) f ) g ) |").decorate( loud=True) apparatus.parse("| a ) a ) b ) | ++ ) e ) f ) ) g |").decorate( loud=True) apparatus.parse( "| a c e ) bb ) c# ) | d## ) e ) ~f ) g~ ) |").decorate(loud=True)
def test_small(self): src = """ <! 4/4 120 => ) !> | mp c ) d ) %S% ]] piano |: f# ) ) ooo/ ]]] ooo/ ]] ]] fine :| | [1.] fff ]] fp ]] g ] | [2.] <! 3/4 !> <c,e,g> )) )) ) D.S. al fine | """ print("Skoarse Code") print("------------") print(src) skoar = apparatus.parse(src) print("\nParse Tree") print("----------") print(skoar.tree.draw_tree()) skoar.decorate() print(skoar.tree.draw_tree())
def test_syncopation(self): apparatus.parse("| c ) c 'stress this note:' .) ]] c!b,hh ]] ]] ] |")
def test_drums(self): apparatus.parse("| !b,hh ) !sn ) ]] c!b,hh ]] ]] ] |")
def test_time_signatures(self): apparatus.parse("<! 4/4 9/8 2/2 !>").decorate(loud=True)
def test_ties_and_stress(self): apparatus.parse("| b )__ c.) d) e .__) |") apparatus.parse("| b )__ c) d) e __.) |")
def test_misc(self): apparatus.parse("|ppp a ) b ) mp c ) | d mf ) // ) f $ ) g $ ) |" ).decorate(loud=True) apparatus.parse(" <3,4,5> 2 -3 +5 3.2 0.4").decorate(loud=True)
def test_complex_time_sig(self): apparatus.parse("<! 3+4+5/4 !>")
def test_voicings(self): apparatus.parse(""" | 'root position' ooo) '1st inv' oo_o) '2nd_inv' o_oo) | """)
def test_octave_shift(self): apparatus.parse("| ~~o) o~~) ~ooo) oo_o) :|")
def test_ties(self): apparatus.parse("| b )__ c) d) e __) |") apparatus.parse("| b ))__ c] d) e __]. |") apparatus.parse("| b )__ c] d) e __]]. |") apparatus.parse("| b )__ c] d) e __]. |") apparatus.parse("| b )__ c] d) e __]. |")
def test_notes(self): apparatus.parse("| a ) b ) c ) | d ) e ) f ) g ) |").decorate(loud=True) apparatus.parse("| a ) a ) b ) | ++ ) e ) f ) ) g |").decorate(loud=True) apparatus.parse("| a c e ) bb ) c# ) | d## ) e ) ~f ) g~ ) |").decorate(loud=True)
def test_misc(self): apparatus.parse("|ppp a ) b ) mp c ) | d mf ) // ) f $ ) g $ ) |").decorate(loud=True) apparatus.parse(" <3,4,5> 2 -3 +5 3.2 0.4").decorate(loud=True)
def test_f(self): apparatus.parse("f ff fff ffff f# fp #f |").decorate(loud=True)
def test_zelda(self): skoar = apparatus.parse(""" c)d) .alice <0,3,5> => @detune mp .bob <0,3,5> => @detune mp .bass @sawpulse => @instrument mp o~~~~ .hats @hats => @instrument pp .snare @snare => @instrument mf .kick @kick => @instrument mf 130 => ) {! four_bars_rest !! }}}}} !} {! eight_bars_rest !! }}}}}} !} {! twelve_bars_rest !! !four_bars_rest !eight_bars_rest !} {! bass_fun<x> !! !x ) ]] ]] ] ) ) !} {! bass_end<x> !! !x ) ) ) ] ] !} {! bass_climb !! | _e ]] _a# ]] c# ] e ]] a# ]] ~o c# ] e ) } | f ) o~ _f ]] ]] ] ) } | !} {! bassline_a !! !bass_fun<a#> !bass_fun<g#> !bass_fun<f#> !bass_fun<c#> !bass_fun<b> !bass_fun<a#> !bass_fun<c> !bass_end<f> !} {! bassline_b !! !bass_fun<a#> !bass_fun<g#> !bass_fun<f#> !bass_fun<f> !bass_climb !bass_climb !bass_fun<b> !bass_fun<a#> !bass_fun<c> !bass_end<f> !} {! intro !! .hats !four_bars_rest .snare !four_bars_rest .kick !four_bars_rest .alice | _a# )) o/. ]] ]] ]] ] | ]. _g# ]] _a# ) o/. ]] ]] ]] ] | .bob | _d )) o/. ]] ]] ]] ] | _c ]. ]] ) o/. ]] ]] ]] ] | .bass | a# ) ]] ]] ] ) ]] ]] ] | g# ) ]] ]] ] ) ]] ]] ] | .alice | ]. _g# ]] _a# ) o/. ]] ]] ]] ] | ] _f ]] ]] ] ]] ]] ] ]] ]] ] ] | .bob | _c# ]. ]] ) o/. ]] ]] ]] ] | ] o~ _a ]] ]] ] ]] ]] ] ]] ]] ] ] | .bass | f# ) ]] ]] ] ) ]] ]] ] | f ) ) ) g ] a ] | !} {! melody_a !! .bass !bassline_a .alice | _a# ) _f )__ o/. _a# ]] ]] c ]] d ]] d# ]] | .bob | _d ) ]] ]] _c ] _d ]. ]] ]] _d# ]] _f ]] _g ]] | .alice | f )) o/ ] f ] f# ]] g# ]] | .bob | _g# ]. _a# ]] ]] c ]] d ]] d# ]] f ) _g# ] _a# ]] c ]] | .alice | a# )) o/ a# ] ] g# ]] f# ]] | .bob | c# ]. _f# ]] ]] _g# ]] _a# ]] c ]] c# ]. ]] ] c ]] _a# ]] | .alice | g# ]. f# ]] f )) ) | .bob | c# ]. _g# ]] ]] ]] _f# ] _g# ]. ]] ]] _f# ]] _g# ] | .alice | d# ] ]] f ]] f# )) f ] d# ] | .bob | _f# ] ]] _f ]] _f# ] ]] _g# ]] _a# ) _g# ] _f# ] | .alice | c# ] ]] d# ]] f )) d# ] c# ] | .bob | _f ] ]] _d# ]] _f ] ]] _f# ]] _g# ) _f# ] _d# ] | .alice | c ] ]] d ]] e )) g ) | .bob | _e ] ]] _d ]] _e ] ]] _g ] ]] _a ]] _a# ] c ] | .alice | f ] _f ]] ]] ] ]] ]] ] ]] ]] ] ] | .bob | _a ] o~ _a ]] ]] ] ]] ]] ] ]] ]] ] ] ~o | !} {! melody_b !! .bass !bassline_b .alice | _a# ) _f )__ o/. _a# ]] ]] c ]] d ]] d# ]] | .bob | _d ) ]] ]] _c ] _d ]. ]] ]] _d# ]] _f ]] _g ]] | .alice | f )) o/ ] f ] f# ]] g# ]] | .bob | _g# ]. _a# ]] ]] c ]] d ]] d# ]] f ) _g# ] _a# ]] c ]] | .alice | a# )). ~o c# ) | c ) o~ a )) f ) | f# )). a# ) | a ) f )) ) | .bob | c# )). e ) | d# ) c )) _a ) | _b )). c# ) | c ) _a )) ) | .alice | f# )). a# ) | a ) f )) d ) | d# )). f# ) | f ) c# )) _a# ) | .bob | _b )). c# ) | c ) _a )) ) | _f# )). _b ) | _a# ) _f )) _c# ) | .alice | c ] ]] d ]] e )) g ) | .bob | _e ] ]] _d ]] _e ] ]] _f ]] _g ] ]] _a ]] _a# ] c ] | .alice | f ] _f ]] ]] ] ]] ]] ] ]] ]] ] ] | .bob | _a ] o~ _a ]] ]] ] ]] ]] ] ]] ]] ] ] ~o | !} {! fill !! .alice | f ] _f ]] ]] ] ]] ]] ] ]] ]] ] ] | .bob | _a ] o~ _a ]] ]] ] ]] ]] ] ]] ]] ] ] ~o | .snare | ] ]] ]] ] ]] ]] ] ]] ]] ] ] | .hats | ] ] ] ] ] ] ] ] | .kick | ) } ) } | .bass !bass_end<f> !} {! drums !! .hats |: ] ] ] ] ] ] ] ]] ]] :| :| :| :| :| :| :| :| :| :| :| .snare |: } ) } ) :| :| :| :| :| :| :| :| :| :| ] ]] ]] ] ]] ]] ] ]] ]] ] ] | .kick |: ) } ) } :| :| :| :| :| :| :| :| :| :| :| !} !intro !melody_a .kick !eight_bars_rest .hats !four_bars_rest }}} }}} }}} ] ] ] ] ] ] ] ] .snare !eight_bars_rest !fill !melody_b !drums !fill """)