diff --git a/.bin/music/Cranky-VLSI_short.sj b/.bin/music/Cranky-VLSI_short.sj index e69de29..bb25c66 100644 --- a/.bin/music/Cranky-VLSI_short.sj +++ b/.bin/music/Cranky-VLSI_short.sj @@ -0,0 +1,790 @@ +$define damage_ratio {1.0} +$define nearness_ratio {0.01} + +// ---- TEMPLATE DECLARATION ---- +$define main_color { + color_r := 1; + color_g := 0; + color_b := 0; + color_a := 0.9; +} + +// ---- INITIALIZE ---- +actor [0..1] { + color_a := 1; + + clip_left := 0; + clip_right := 0; + clip_top := 9/32; + clip_bottom := 9/32; +} +background [0..1] { + inner_r := 0.4; + inner_g := 0.4; + inner_b := 0.5; + inner_a := 1; + + outer_r := 0.1; + outer_g := 0.1; + outer_b := 0.1; + outer_a := 1; +} +posteffect [0..1] { + clip_left := 0; + clip_right := 0; + clip_top := 9/32; + clip_bottom := 9/32; + + contrast_r := 1.5; + contrast_g := 1.5; + contrast_b := 1.5; +} + +// ---- INTRO [2..34] ---- +$define beat {2} +$repeat i 3 { + $define main_square { + $main_color + + scale_x := 0.1; + scale_y := 0.1; + + rotation_z := PI/4; + + translation_x := $i*0.6 - 0.6; + } + square [$beat..$beat+4] { + $main_square + + damage := $damage_ratio*0.01; + color_a = step(0.5, sin(PI*(1-pow(time, 2))*10)); + } + square [$beat+4..$beat+26] { + $main_square + damage := $damage_ratio; + } + square [$beat+26..$beat+28] { + $main_square + weight = pow(1-time, 2); + } + + $repeat j 8 { + $repeat k 6 { + circle [$beat+$j*2+6..$beat+$j*2+16] { + $main_color + + scale_x := 0.025; + scale_y := 0.025; + + __theta := $k*PI/3 + $j*PI/10; + __cos := cos(__theta); + __sin := sin(__theta); + + translation_x = ($i*0.6-0.6) + (time*1.5+0.2)*__cos; + translation_y = (time*1.5+0.2)*__sin; + + damage := $damage_ratio*0.5; + } + } + square [$beat+$j*2+6..$beat+$j*2+8] { + $main_square + + scale_x = 0.1+time*0.1; + scale_y = 0.1+time*0.1; + + color_a = 1-time; + + weight := 0.03; + } + } +} + +// ---- OUTRO -> A melody [30..34] ---- +$define beat {30} +triangle [$beat..$beat+1] { + $main_color + + scale_x = 0.1 + pow(1-time, 2)*0.05; + scale_y = 0.1 + pow(1-time, 2)*0.05; + + damage := $damage_ratio * 0.5; +} +square [$beat+1..$beat+2] { + $main_color + + scale_x := 0.1; + scale_y := 0.1; + + rotation_z = (1-pow(1-time, 2)) * PI/2; + + weight = 0.03 + time*0.97; + + damage := $damage_ratio * 0.75; +} +square [$beat+2..$beat+3] { + $main_color + + scale_x = 0.1 + (1-pow(1-time, 2)) * 0.7; + scale_y := 0.1; + + damage := $damage_ratio; +} +square [$beat+3..$beat+4] { + $main_color + + scale_x := 0.8; + scale_y := 0.1; + + rotation_z = pow(time, 2) * PI; + + damage := $damage_ratio; +} +circle [$beat+4..$beat+5] { + $main_color + + scale_x = (1-time)*0.8; + scale_y = (1-time)*0.8; + + damage := $damage_ratio * 0.75; +} + +// ---- A melody [34..98] ---- +$define beat {34} +$repeat i 16 { + square [$beat+($i*4)..$beat+($i*4)+2] { + $main_color + + scale_x := 0.5; + scale_y := 0.05; + + translation_x = 0.5; + translation_y = 1 - 2*time; + + damage := $damage_ratio*0.25; + } + square [$beat+($i*4)+2..$beat+($i*4)+4] { + $main_color + + scale_x := 0.5; + scale_y := 0.05; + + translation_x = -0.5; + translation_y = 1 - 2*time; + + damage := $damage_ratio*0.25; + } + + $define lazer_shooter_wrap_circle { + $main_color + color_a = 1-time; + + scale_x = (1-pow(1-time, 2)) * 0.3; + scale_y = (1-pow(1-time, 2)) * 0.3; + + weight := 0.05; + } + $define lazer_shooter_triangle { + $main_color + + scale_x = (1-pow(1-time, 2)) * 0.1; + scale_y = (1-pow(1-time, 2)) * 0.2; + + rotation_z = PI*2 * (1-pow(1-time, 4)) + + atan2(actor_y - translation_y, actor_x - translation_x) - PI/2; + + damage = $damage_ratio * 0.5; + } + $define lazer { + $main_color + color_a = 1-time; + + scale_x := 0.01; + scale_y := 2; + rotation_z := + atan2(actor_y - translation_y, actor_x - translation_x) - PI/2; + + damage = $damage_ratio * pow(time, 2); + } + circle [$beat+($i*4)..$beat+($i*4)+1] { + translation_x := -0.5; + $lazer_shooter_wrap_circle + } + triangle [$beat+($i*4)..$beat+($i*4)+1.5] { + translation_x := -0.5; + $lazer_shooter_triangle + } + square [$beat+($i*4)+1.5..$beat+($i*4)+2] { + translation_x := -0.5; + $lazer + } + + circle [$beat+($i*4)+2..$beat+($i*4)+3] { + translation_x := 0.5; + $lazer_shooter_wrap_circle + } + triangle [$beat+($i*4)+2..$beat+($i*4)+3.5] { + translation_x := 0.5; + $lazer_shooter_triangle + } + square [$beat+($i*4)+3.5..$beat+($i*4)+4] { + translation_x := 0.5; + $lazer + } +} +$define beat {66} +$repeat i 16 { + $repeat x 3 { + circle [$beat+($i*2)..$beat+($i*2)+8] { + $main_color + + scale_x := 0.025; + scale_y := 0.025; + + translation_x = ($x-1)*0.4 + sin(time*PI*6) * 0.1; + translation_y = 1 - time * 2; + + damage := $damage_ratio; + } + } +} + +// ---- A melody -> B melody [98..102] ---- +$define beat {98} +$repeat x 3 { + $repeat i 3 { + triangle [$beat+$i/3..$beat+($i+4)/3] { + $main_color + color_a = 0.8 - time*0.8; + + scale_x := 0.15; + scale_y := 0.15; + + translation_x := $i*0.06 + ($x-1)*0.6; + translation_y := -$i*0.05; + + damage := $damage_ratio * 0.5; + } + } +} +actor [$beat+2..$beat+4] { + clip_left := 0; + clip_right := 0; + clip_top = 9/32 * (time+1); + clip_bottom = 9/32 * (time+1); +} +posteffect [$beat+2..$beat+4] { + clip_left := 0; + clip_right := 0; + clip_top = 9/32 * (time+1); + clip_bottom = 9/32 * (time+1); +} + +// ---- B melody [102..134] ---- +$define beat {102} +$repeat i 12 { + $repeat y 2 { + square [$beat+($i*2)+$y..$beat+($i*2)+$y+8] { + $main_color + + scale_x := 0.03; + scale_y := 1; + + translation_x = (time-0.5)*2.1 * ($y-0.5)*2; + translation_y := ($y-0.5)*2; + + damage := $damage_ratio; + nearness_coe := $nearness_ratio; + } + } +} +actor [$beat+27..$beat+28] { + clip_left := 0; + clip_right := 0; + clip_top = 9/32 * (2-pow(time, 3)); + clip_bottom = 9/32 * (2-pow(time, 3)); +} +posteffect [$beat+27..$beat+28] { + clip_left := 0; + clip_right := 0; + clip_top = 9/32 * (2-pow(time, 3)); + clip_bottom = 9/32 * (2-pow(time, 3)); +} +$repeat y 2 { + $repeat x 2 { + $define translation_x {1.2 * ($x - $y*0.5)} + $define translation_y {0.6 * ($y-0.5)*2} + + circle [$beat+27..$beat+29] { + $main_color + color_a = 1-time; + + scale_x = time * 0.1 + 0.1; + scale_y = time * 0.1 + 0.1; + + translation_x := $translation_x; + translation_y := $translation_y; + + weight = 0.3 * (1-time); + } + triangle [$beat+27..$beat+28] { + $main_color + + scale_x = 0.15 * (1-pow(1-time, 4)); + scale_y = 0.15 * (1-pow(1-time, 4)); + + translation_x := $translation_x; + translation_y := $translation_y; + + rotation_z = (pow(1-time, 4) * PI * 2) + $y * PI; + + damage := $damage_ratio * 0.2; + } + triangle [$beat+28..$beat+29] { + $main_color + + scale_x = 0.15 - 0.05 * (1-pow(1-time, 4)); + scale_y := 0.15; + + translation_x := $translation_x; + translation_y := $translation_y; + + rotation_z := $y * PI; + + damage := $damage_ratio; + } + square [$beat+29..$beat+32] { + $main_color + color_a = 1-time; + + scale_x := 0.01; + scale_y := 1; + + translation_x := $translation_x; + + damage = (1-time) * $damage_ratio; + nearness_coe = $nearness_ratio; + } + } +} + +// ---- C melody [134..166] ---- +$define beat {134} +$repeat i 4 { + square [$beat+$i*8..$beat+$i*8+4] { + $main_color + scale_x = 0.1 * pow(1-time, 2); + scale_y = 0.1 * pow(1-time, 2); + + rotation_z = time * PI * 2; + + damage := $damage_ratio; + } + circle [$beat+$i*8+1..$beat+$i*8+2] { + $main_color + color_a = time; + + scale_x = 0.1 + pow(time, 4) * 0.2; + scale_y = 0.1 + pow(time, 4) * 0.2; + + weight = pow(1-time, 2) * 0.8 + 0.2; + + damage := $damage_ratio; + nearness_coe := $nearness_ratio; + } + $repeat t 10 { + square [$beat+$i*8+2..$beat+$i*8+4] { + $main_color + + scale_y = 0.02; + scale_x = pow(1-time, 2) * 0.3; + + __theta := PI*2 * $t/10; + rotation_z := __theta; + + __sin = sin(__theta); + __cos = cos(__theta); + translation_x = __cos * (time+0.35); + translation_y = __sin * (time+0.35); + + damage := $damage_ratio; + nearness_coe := $nearness_ratio; + } + } + square [$beat+$i*8+2..$beat+$i*8+3] { + $main_color + + scale_x := 0.5; + scale_y := 0.1; + + translation_x = 0.5; + translation_y = 1 - 2*pow(time, 2); + + damage := $damage_ratio*0.25; + } + square [$beat+$i*8+3..$beat+$i*8+4] { + $main_color + + scale_x := 0.5; + scale_y := 0.1; + + translation_x = -0.5; + translation_y = 1 - 2*pow(time, 2); + + damage := $damage_ratio*0.25; + } + $repeat y 10 { + circle [$beat+$i*8+4..$beat+$i*8+8] { + $main_color + + scale_x := 0.025; + scale_y := 0.025; + + translation_x = 1-time*2; + translation_y = ($y-5)*0.2 + sin(time*PI*3) * 0.2; + + damage := $damage_ratio; + nearness_coe := $nearness_ratio; + } + } +} + +// ---- C melody -> D melody [158..162] ---- +$define beat {158} +$repeat y 2 { + $define translation_x {0.6 * ($y-0.5)*2} + $define translation_y {0.6 * ($y-0.5)*2} + + circle [$beat+2..$beat+4] { + $main_color + color_a = 1-time; + + scale_x = time * 0.1 + 0.1; + scale_y = time * 0.1 + 0.1; + + translation_x := $translation_x; + translation_y := $translation_y; + + weight = 0.3 * (1-time); + } + triangle [$beat+2..$beat+3] { + $main_color + + scale_x = 0.15 * (1-pow(1-time, 4)); + scale_y = 0.15 * (1-pow(1-time, 4)); + + translation_x := $translation_x; + translation_y := $translation_y; + + rotation_z = (pow(1-time, 4) * PI * 2) + $y * PI; + + damage := $damage_ratio * 0.2; + } + triangle [$beat+2..$beat+4] { + $main_color + + scale_x = 0.15 - 0.05 * (1-pow(1-time, 4)); + scale_y := 0.15; + + translation_x := $translation_x; + translation_y := $translation_y; + + rotation_z := $y * PI; + + damage := $damage_ratio; + } + square [$beat+4..$beat+7] { + $main_color + color_a = 1-time; + + scale_x := 0.01; + scale_y := 1; + + translation_x := $translation_x; + + damage = (1-time) * $damage_ratio; + nearness_coe = $nearness_ratio; + } +} + +// ---- D melody [162..194] ---- +$define beat {162} +$repeat i 8 { + $define falling_triangle { + $main_color + + scale_x := 0.35; + scale_y := 0.20; + + rotation_z := PI; + + damage := $damage_ratio; + } + triangle [$beat+$i*4..$beat+$i*4+1] { + $falling_triangle + translation_y = pow(1-time, 2); + } + triangle [$beat+$i*4+1..$beat+$i*4+2] { + $falling_triangle + translation_y = -pow(time, 2); + } + + $repeat x 2 { + $define translation_x {($x*2-1)} + triangle [$beat+$i*4+2..$beat+$i*4+3] { + $falling_triangle + translation_y = pow(1-time, 2); + translation_x := $translation_x * 0.7; + } + triangle [$beat+$i*4+3..$beat+$i*4+4] { + $falling_triangle + translation_y = -pow(time, 2); + translation_x := $translation_x * 0.7; + } + } + + $repeat x 2 { + $repeat y 3 { + circle [$beat+$i*4..$beat+$i*4+12] { + $main_color + + scale_x = 0.025; + scale_y = 0.025; + + translation_x := 1.1 * ($x*2-1); + translation_y := $y-1; + + __theta := atan2(actor_y - translation_y, actor_x - translation_x); + __cos := cos(__theta); + __sin := sin(__theta); + + translation_x += __cos * 0.01; + translation_y += __sin * 0.01; + + damage := $damage_ratio; + } + } + } +} + +// ---- D melody -> E melody [194..198] +$define beat {194} +posteffect [$beat..$beat+1] { + contrast_r = 1 + pow(1-time, 2)*0.5; + contrast_g = 1 + pow(1-time, 2)*0.5; + contrast_b = 1 + pow(1-time, 2)*0.5; +} +posteffect [$beat+1..$beat+2] { + clip_left := 0; + clip_right := 0; + clip_top = 9/32 * pow(1-time, 2); + clip_bottom = 9/32 * pow(1-time, 2); +} +actor [$beat+1..$beat+2] { + clip_left := 0; + clip_right := 0; + clip_top = 9/32 * pow(1-time, 2); + clip_bottom = 9/32 * pow(1-time, 2); +} + +// ---- E melody [198..262] ---- +$define beat {198} +$repeat i 16 { + $define falling_bar { + $main_color + + scale_y := 0.1; + + damage := $damage_ratio*0.25; + } + square [$beat+($i*4)+2..$beat+($i*4)+3] { + $falling_bar + scale_x := 0.4; + + translation_x := -0.75; + translation_y = -(1 - 2*time); + } + square [$beat+($i*4)+2..$beat+($i*4)+3] { + $falling_bar + scale_x := 0.4; + + translation_x := 0.75; + translation_y = -(1 - 2*time); + } + + $repeat x 3 { + $define lazer { + $main_color + color_a = 1-time; + + scale_x := 0.01; + + damage = $damage_ratio*time; + } + square [$beat+($i*4)+$x*0.3+2..$beat+($i*4)+4] { + $lazer + translation_x := 0.5 + $x*0.2; + } + square [$beat+($i*4)+$x*0.3+2..$beat+($i*4)+4] { + $lazer + translation_x := -(0.5 + $x*0.2); + } + } + + $define lazer_shooter_wrap_circle { + $main_color + color_a = 1-time; + + scale_x = (1-pow(1-time, 2)) * 0.3; + scale_y = (1-pow(1-time, 2)) * 0.3; + + weight := 0.05; + } + $define lazer_shooter_triangle { + $main_color + + scale_x = (1-pow(1-time, 2)) * 0.1; + scale_y = (1-pow(1-time, 2)) * 0.2; + + rotation_z = PI*2 * (1-pow(1-time, 4)) + + atan2(actor_y - translation_y, actor_x - translation_x) - PI/2; + + damage = $damage_ratio * 0.5; + } + $define lazer { + $main_color + color_a = 1-time; + + scale_x := 0.01; + scale_y := 2; + rotation_z := + atan2(actor_y - translation_y, actor_x - translation_x) - PI/2; + + damage = $damage_ratio * pow(time, 2); + } + $repeat x 2 { + $repeat y 2 { + $define translation_x {($x-0.5)*1.2} + $define translation_y {($y-0.5)/2} + circle [$beat+($i*4)..$beat+($i*4)+1] { + translation_x := $translation_x; + translation_y := $translation_y; + $lazer_shooter_wrap_circle + } + triangle [$beat+($i*4)..$beat+($i*4)+1.5] { + translation_x := $translation_x; + translation_y := $translation_y; + $lazer_shooter_triangle + } + square [$beat+($i*4)+1.5..$beat+($i*4)+2] { + translation_x := $translation_x; + translation_y := $translation_y; + $lazer + } + } + } + $repeat y 10 { + circle [$beat+$i*4..$beat+$i*4+4] { + $main_color + + scale_x := 0.025; + scale_y := 0.025; + + translation_x = ($y-5)*0.2 + sin(time*PI*3) * 0.2; + translation_y = -(1-time*2); + + damage := $damage_ratio; + nearness_coe := $nearness_ratio; + } + } +} + +// ---- Outro [262..276] ---- +$define beat {262} +$repeat i 2 { + square [$beat..$beat+1] { + $main_color + scale_x := 0.2; + scale_y := 0.02; + + rotation_z = (PI/6 * pow(1-time, 4) + PI/6) * ($i-0.5)*2; + + damage := $damage_ratio; + } + square [$beat+1..$beat+2] { + $main_color + scale_x := 0.2; + scale_y := 0.02; + rotation_z = PI/6 * pow(1-time, 4) * ($i-0.5)*2; + + damage := $damage_ratio; + } +} +square [$beat+2..$beat+3] { + $main_color + scale_x = 0.2 * (1-time); + scale_y := 0.02; + + damage := $damage_ratio; +} +$repeat y 5 { + $repeat x 5 { + square [$beat+3+$y*0.2..$beat+3+$y*0.2+2] { + $main_color + color_a = pow(1-abs(time*2-1), 2) * 0.5; + + scale_x := 0.15; + scale_y := 0.15; + + translation_x := ($x-2.5) / 2.5 + 0.2; + translation_y := ($y-2.5) / 2.5 + 0.2; + + damage = color_a * $damage_ratio * 0.25; + } + } +} + +// ---- Ending ---- +posteffect [276..280] { + clip_left := 0; + clip_right := 0; + clip_top = 1-pow(1-time, 4); + clip_bottom = 1-pow(1-time, 4); + + contrast_r = 1+9*time; + contrast_g = 1+9*time; + contrast_b = 1+9*time; +} + + +// ---- IDEA BOX ---- +// [cross] +//$repeat x 2 { +// $repeat y 10 { +// $repeat i 16 { +// square [$beat+($i*2)..$beat+($i*2)+2] { +// $main_color +// +// translation_y := -1 + $y/5; +// translation_x := -0.7 + $x*1.4; +// +// scale_x := 0.06; +// scale_y := 0.01; +// rotation_z = pow(time, 3) * PI / 2; +// +// damage = $damage_ratio; +// } +// square [$beat+($i*2)..$beat+($i*2)+2] { +// $main_color +// +// translation_y := -1 + $y/5; +// translation_x := -0.7 + $x*1.4; +// +// scale_x := 0.01; +// scale_y := 0.06; +// rotation_z = pow(time, 3) * PI / 2; +// +// damage = $damage_ratio; +// } +// } +// } +//} diff --git a/.bin/music/list.json b/.bin/music/list.json index e83f09f..4e5ceda 100644 --- a/.bin/music/list.json +++ b/.bin/music/list.json @@ -13,7 +13,7 @@ }, { "name": "Cranky - V.L.S.I.", - "bpm": 60, + "bpm": 160, "music": "Cranky-VLSI_short.ogg", "script": "Cranky-VLSI_short.sj",