{"version":2,"baseVals":{"rating":1,"decay":0.9,"echo_zoom":1.007,"echo_alpha":0.5,"echo_orient":1,"wave_mode":1,"brighten":1,"wave_a":0.001,"zoom":0.96,"rot":-0.02,"warp":0.00052,"wave_r":0,"wave_g":0,"wave_b":0,"ob_r":1,"ob_g":1,"ob_b":1,"mv_x":64,"mv_y":48,"mv_a":0},"shapes":[{"baseVals":{"textured":1,"rad":2.66718,"tex_zoom":0.45112,"g":1,"a":0.2,"g2":0,"a2":0.2,"enabled":0},"init_eqs_eel":"","frame_eqs_eel":""},{"baseVals":{"sides":100,"textured":1,"rad":2.38096,"tex_zoom":0.42497,"r":0,"b":1,"a":0.4,"g2":0,"a2":0.4,"border_a":1,"enabled":0},"init_eqs_eel":"","frame_eqs_eel":"r = 0.1 + 0.5*sin(q1);\ng = 0.1 + 0.5*sin(q1*0.9878);\nb = 0.1 + 0.5*sin(q1*0.897);"},{"baseVals":{"enabled":0},"init_eqs_eel":"","frame_eqs_eel":""},{"baseVals":{"enabled":0},"init_eqs_eel":"","frame_eqs_eel":""}],"waves":[{"baseVals":{"enabled":1,"spectrum":1,"additive":1},"init_eqs_eel":"","frame_eqs_eel":"","point_eqs_eel":"//q1 = state;\n//q2 = basstime;\n\nq1 = 0;\nspeed = bass_att*0.050;\nv = sample*100000 + value2*bass*0.1;\n\n//state 0 elipse\nxs = xs + sin(v*0.1 + sin(v)*0.1)*speed*atan(v*1.51);\nys = ys + sin(v*0.1 + cos(v)*0.1)*speed*atan(v);\n\nx = 0.5 + 0.5*sin(xs*0.1)*cos((time+0.5)*2 + ys);\ny = 0.5 + 0.5*sin(ys*0.1)*cos((time+0.5)*2.1 + xs);\n\nx = x;\ny = y;\ny = y;\n\nr = 0.5 + 0.5*sin(time*0.22) + 0.1;\ng = 0.4 + 0.4*sin(time*0.307) + x;\nb = 0.4 + 0.4*sin(time*0.959);\n\n\nxs = if(above(xs,1000),0 ,xs);\nys = if(above(ys,1000),0 ,ys);"},{"baseVals":{"enabled":1,"spectrum":1,"usedots":1,"additive":1},"init_eqs_eel":"","frame_eqs_eel":"","point_eqs_eel":"//q1 = state;\n//q2 = basstime;\n\nq1 = 0;\nspeed = bass_att*0.05;\nv = sample*100000 + value2*bass*0.1;\n\n//state 0 elipse\nxs = xs + sin(v*0.1 + sin(v)*0.1)*speed*atan(v*1.51);\nys = ys + sin(v*0.1 + cos(v)*0.1)*speed*atan(v);\n\nx = 0.5 + 0.5*sin(xs*0.1)*cos(time*2 + ys);\ny = 0.5 + 0.5*sin(ys*0.1)*cos(time*2.1 + xs);\n\nx = x;\ny = y;\ny = y;\n\nr = 0.5 + 0.5*sin(time*0.22) + 0.1;\ng = 0.4 + 0.4*sin(time*0.307) + x;\nb = 0.4 + 0.4*sin(time*0.959);\n\n\nxs = if(above(xs,1000),0 ,xs);\nys = if(above(ys,1000),0 ,ys);"},{"baseVals":{"enabled":1,"spectrum":1,"usedots":1,"additive":1},"init_eqs_eel":"","frame_eqs_eel":"","point_eqs_eel":"//q1 = state;\n//q2 = basstime;\n\nq1 = 0;\nspeed = bass_att*0.05;\nv = sample*100000 + value2*bass*0.1;\n\n//state 0 elipse\nxs = xs + sin(v*0.1 + sin(v)*0.1)*speed*atan(v*1.51);\nys = ys + sin(v*0.1 + cos(v)*0.1)*speed*atan(v);\n\nx = 0.5 + 0.5*sin(xs*0.1)*cos((time-0.5)*2 + ys);\ny = 0.5 + 0.5*sin(ys*0.1)*cos((time-0.5)*2.1 + xs);\n\nx = x;\ny = y;\ny = y;\n\nr = 0.5 + 0.5*sin(time*0.22) + 0.1;\ng = 0.4 + 0.4*sin(time*0.307) + x;\nb = 0.4 + 0.4*sin(time*0.959);\n\n\nxs = if(above(xs,1000),0 ,xs);\nys = if(above(ys,1000),0 ,ys);"},{"baseVals":{"spectrum":1,"usedots":1,"additive":1,"enabled":0},"init_eqs_eel":"","frame_eqs_eel":"","point_eqs_eel":"//apply zoom burst on beat\nflag = above(q3,2);\n//state zero is ready state\nstate = state + flag*equal(state,0);\n\n//upwards flight\nyval = if(equal(state,0),0, yval);\nyval = yval + 0.00004*equal(state,1);\nymax = if(equal(state,0),rand(100)*0.004,ymax);\n\n//hit apogee\nstate = if(above(yval,0.5+ymax),2,state);\n\n//reset variable\nyval = if(equal(state,0),0, yval);\nburst = if(equal(state,0),0.001,burst);\nalphax = if(equal(state,0),1,alphax);\nxdriftinc = if(equal(state,0),0,xdriftinc);\n\nburstspeed = if(equal(state,0),rand(10),burstspeed);\nxdrift = if(equal(state,0),rand(20),xdrift);\n//to get the numbers small enough have to use constants\nxdriftinc = xdriftinc\n+ equal(xdrift,0)*equal(state,1)*0.00002\n+ equal(xdrift,1)*equal(state,1)*0.000018\n+ equal(xdrift,2)*equal(state,1)*0.000016\n+ equal(xdrift,3)*equal(state,1)*0.000014\n+ equal(xdrift,4)*equal(state,1)*0.000012\n+ equal(xdrift,5)*equal(state,1)*0.00001\n+ equal(xdrift,6)*equal(state,1)*0.000008\n+ equal(xdrift,7)*equal(state,1)*0.000006\n+ equal(xdrift,8)*equal(state,1)*0.000004\n+ equal(xdrift,9)*equal(state,1)*0.000002\n+ equal(xdrift,11)*equal(state,1)*-0.000002\n+ equal(xdrift,12)*equal(state,1)*-0.000004\n+ equal(xdrift,13)*equal(state,1)*-0.000006\n+ equal(xdrift,14)*equal(state,1)*-0.000008\n+ equal(xdrift,15)*equal(state,1)*-0.00001\n+ equal(xdrift,16)*equal(state,1)*-0.000012\n+ equal(xdrift,17)*equal(state,1)*-0.000014\n+ equal(xdrift,18)*equal(state,1)*-0.000016\n+ equal(xdrift,19)*equal(state,1)*-0.000018;\n\nburst = burst\n+ equal(burstspeed,0)*equal(state,2)*0.000024\n+ equal(burstspeed,1)*equal(state,2)*0.000022\n+ equal(burstspeed,2)*equal(state,2)*0.00002\n+ equal(burstspeed,3)*equal(state,2)*0.000018\n+ equal(burstspeed,4)*equal(state,2)*0.000016\n+ equal(burstspeed,5)*equal(state,2)*0.000014\n+ equal(burstspeed,6)*equal(state,2)*0.000012\n+ equal(burstspeed,7)*equal(state,2)*0.00001\n+ equal(burstspeed,8)*equal(state,2)*0.000008\n+ equal(burstspeed,9)*equal(state,2)*0.000008;\n\nalphax = alphax - 0.00004*equal(state,2);\nstate = if(below(alphax,0),0,state);\n\n\ns = sample*3.14*100;\nss = sample*6.28*1000;\n\n//draw torus\nxs = (burst + 0.0001*cos(s))*cos(ss);\nys = (burst + 0.0001*cos(s))*sin(ss);\nzs = 0.1*burst*sin(s);\n\n\n//rotate x axis\nangle = sin(-q1*0.035)*6.28;\nyx = ys*cos(angle) - zs*sin(angle);\nzx = ys*sin(angle) + zs*cos(angle);\nxx = xs;\n\n//rotate y axis\nangle2 = sin(-q1*0.03)*6.28;\nxd = xx*cos(angle2) - zx*sin(angle2);\nzd = xx*sin(angle2) + zx*cos(angle2);\nyd = yx;\n\n//rotaye z axis\nangle3 = sin(-q1*0.022)*6.28;\nxn = xd*cos(angle3) - yd*sin(angle3);\nyn = xd*sin(angle3) + yd*cos(angle3);\n\nzd = zd + 2;\n\nx = xn*zd*0.3 + 0.5;\ny = yn*zd*0.3*1.2;\n\n\nx = x + xdriftinc;\ny = y + sin(yval*1.5) - 0.18;\n\n\nr = 0.5 + 0.5*sin(q1*1.3 + x + x);\ng = 0.5 + 0.5*sin(q1*1.1 + x + y);\nb = 0.5 + 0.5*sin(q1*1.66 + y + y);"}],"init_eqs_eel":"state = 0;","frame_eqs_eel":"basstime = basstime + bass*0.06;\nq1 = basstime;\n\nbasstime = if(below(basstime,1000),1000,basstime);\n\nvol = pow(bass+mid+treb,2);\nbasssum = vol;\n\nstickybit = time%2;\n\n//avg vol\n//buffer 1\nvolAvg = volAvg + vol*equal(stickybit,1);\n//number of samples 1 or framerate\nsample1 = sample1 + equal(stickybit,1);\n//buffer 2\nvolAvg2 = volAvg2 + vol*equal(stickybit,0);\n//number of samples 2\nsample2 = sample2 + equal(stickybit,0);\n\n//transision\nedge = bnot(equal(bit2,stickybit));\n\nvolAvg = volAvg - volAvg*edge*stickybit;\nvolAvg2 = volAvg2 - volAvg2*edge*equal(stickybit,0);\n\nsample1 = sample1  - sample1*edge*stickybit;\nsample2 = sample2  - sample2*edge*equal(stickybit,0);\n\n//test vol against avg buffer lvl\ndiff = if(equal(stickybit,1), (basssum/(volAvg2/sample2)) , 0);\ndiff = if(equal(stickybit,0), (basssum/(volAvg/sample1)), diff);\n\nq3 = diff;\n\nbit2 = time%2;\n\ndifftime = difftime + diff*0.03;\nq2 = difftime;\n\n//fix a strange error\ndifftime = if(above(difftime,2000),0, difftime);\n\n\n\nq10 = cos(q1*0.00001);\nq11 = sin(q1*0.00001);","pixel_eqs_eel":"zoom = 1  + (rad*rad-0.5)*0.05  + cos(x*3.14)*0.05 + sin(y*3.14)*0.05;","warp":" shader_body { \n  float tmpvar_1;\n  tmpvar_1 = (texsize.zw * 8.0).x;\n  vec3 tmpvar_2;\n  tmpvar_2 = ((texture (sampler_main, (uv + \n    (vec2(1.0, 0.0) * tmpvar_1)\n  )).xyz + texture (sampler_main, (uv + \n    (vec2(1.0, 0.0) * tmpvar_1)\n  )).xyz) * 0.5);\n  vec3 tmpvar_3;\n  tmpvar_3 = ((texture (sampler_main, (uv + \n    (vec2(0.0, 1.0) * tmpvar_1)\n  )).xyz + texture (sampler_main, (uv + \n    (vec2(0.0, 1.0) * tmpvar_1)\n  )).xyz) * 0.5);\n  vec3 tmpvar_4;\n  tmpvar_4.xy = uv;\n  tmpvar_4.z = q2;\n  float tmpvar_5;\n  tmpvar_5 = ((tmpvar_2 + (tmpvar_3 * texture (sampler_main, \n    ((uv + tmpvar_2.xy) + tmpvar_3.xy)\n  ).xyz)).xy - texture (sampler_noisevol_lq, tmpvar_4).xy).x;\n  vec2 tmpvar_6;\n  tmpvar_6.x = 0.0;\n  tmpvar_6.y = (tmpvar_5 * texsize.z);\n  vec4 tmpvar_7;\n  tmpvar_7.w = 1.0;\n  tmpvar_7.xyz = (texture (sampler_fc_main, ((\n    (((uv - 0.5) * (1.0 - (tmpvar_5 * 0.01))) * (0.99 - (bass * 0.001)))\n   + tmpvar_6) + 0.5)).xyz - 0.02);\n  ret = tmpvar_7.xyz;\n }","comp":" shader_body { \n  vec3 ret_1;\n  vec3 tmpvar_2;\n  tmpvar_2.xy = uv;\n  tmpvar_2.z = q2;\n  vec2 tmpvar_3;\n  vec2 tmpvar_4;\n  tmpvar_4 = (uv - 0.5);\n  tmpvar_3 = ((tmpvar_4 * vec2(-1.0, 1.0)) + 0.5);\n  ret_1 = (((\n    (mix (texture (sampler_main, ((tmpvar_4 * 0.98) + 0.5)).xyz, texture (sampler_main, ((\n      (tmpvar_3 - 0.5)\n     * 0.98) + 0.5)).xyz, vec3(0.5, 0.5, 0.5)) + ((texture (sampler_blur3, uv).xyz * scale3) + bias3))\n   + \n    ((texture (sampler_blur3, tmpvar_3).xyz * scale3) + bias3)\n  ) + (\n    (texture (sampler_blur1, uv).xyz * scale1)\n   + bias1)) + ((texture (sampler_blur1, tmpvar_3).xyz * scale1) + bias1));\n  ret_1 = (ret_1 * texture (sampler_noisevol_hq, tmpvar_2).xyz);\n  ret_1 = (ret_1 * 10.0);\n  vec4 tmpvar_5;\n  tmpvar_5.w = 1.0;\n  tmpvar_5.xyz = ret_1;\n  ret = tmpvar_5.xyz;\n }"}