Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Support WASM Presets #35

Merged
merged 53 commits into from Sep 20, 2020
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
53 commits
Select commit Hold shift + click to select a range
336b0f7
all hacks WIP
jberg Apr 21, 2020
631f44c
fix reg vars
jberg Apr 21, 2020
a6aa49b
working on wave eqs, add another preset, useWASM toggle
jberg Apr 22, 2020
55e2e6f
fix toggling presets
jberg Apr 22, 2020
6a5cddb
split out equation key returns, fix frame keys
jberg Apr 22, 2020
efa4a45
add shape equations and another preset
jberg Apr 22, 2020
7f36ce0
fix basic waveform with more props it needs
jberg Apr 22, 2020
dcbc51d
more presets
jberg Apr 23, 2020
4f7a14e
more presets
jberg May 3, 2020
ce51e2f
navigate presets with arrow keys
jberg May 3, 2020
487632e
update presets
jberg May 3, 2020
4479bf9
switch setWasm to plain for loop
jberg May 3, 2020
2e4b601
fix frame keys and qs
jberg May 3, 2020
a374f25
TODOs
jberg May 3, 2020
5cbba0a
narrow down keys we set before equations
jberg May 5, 2020
1f151c8
upgrade eel-wasm
jberg Jun 16, 2020
d35cef5
wasm presets can handle regVars differently
jberg Jun 16, 2020
de2f125
trim frameKeys
jberg Jun 16, 2020
317c6c0
trim customWave and customShape keys
jberg Jun 16, 2020
a508630
fix custom waveform additive/dots/thick
jberg Jun 17, 2020
514c8a9
add FPS calculation
jberg Jun 17, 2020
23fb3d4
Netlify deploy for wasm
captbaritone Jul 1, 2020
852ec3d
start using variable pools
jberg Aug 29, 2020
639a30f
add dev-build for netlify
jberg Aug 29, 2020
dd20e17
try without redirect
jberg Aug 29, 2020
61ae21e
dont need perPixel / perPoint pools
jberg Aug 30, 2020
80be8ea
restore netlify config to captbaritone version
jberg Aug 30, 2020
a0838f2
run wave per point eqs without extra JS object creation
jberg Aug 30, 2020
349f028
run per pixel eqs without extra JS object creation, also reduce varia…
jberg Aug 31, 2020
e5ecc48
use prod build
jberg Aug 31, 2020
a685841
back to dev build, so can see function names, etc.
jberg Aug 31, 2020
97e2b32
update to latest eel-wasm
jberg Sep 1, 2020
a5718c3
more presets
jberg Sep 1, 2020
1e1e54d
load presets as needed, load textures
jberg Sep 1, 2020
c1eb834
split out broken presets
jberg Sep 1, 2020
6352fff
fix presets with # in title
jberg Sep 1, 2020
6b023e7
support bmotionvectors deprecated param
jberg Sep 6, 2020
f6eff88
only include default variables, intialize pools
jberg Sep 7, 2020
9d42df3
testing broken presets
jberg Sep 7, 2020
b699485
another broken preset
jberg Sep 7, 2020
5c2317b
custom shape inline instance per frame eqs / fix js version
jberg Sep 12, 2020
56314a8
remove unused WASM runShapeFrameEquations
jberg Sep 13, 2020
b8cdf66
enforce unset variables are 0 in JS presets
jberg Sep 13, 2020
285b4a9
already pulling out the keys in runFrameEqs, this was doubling vars
jberg Sep 14, 2020
62a0e4d
add perPixel pool back
jberg Sep 14, 2020
5cce8d1
fix preset transitions
jberg Sep 14, 2020
9bf726f
allow toggling WASM with w
jberg Sep 14, 2020
2241278
loop remote audio
jberg Sep 14, 2020
0baed9c
remove duplicate presets
jberg Sep 14, 2020
1c0dd9e
hide broken presets
jberg Sep 14, 2020
0c253e0
runShapeFrameEquations doesnt need instance
jberg Sep 19, 2020
ace781b
remove unused shapeFrameKeys
jberg Sep 19, 2020
278745a
move getQVars/getTVars
jberg Sep 19, 2020
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
1 change: 1 addition & 0 deletions .gitignore
@@ -1,2 +1,3 @@
node_modules/
/lib/
.netlify
1 change: 1 addition & 0 deletions config/webpack.config.js
Expand Up @@ -37,6 +37,7 @@ const config = {
loader: 'babel-loader',
options: {
presets: ['@babel/preset-env'],
plugins: ['@babel/plugin-transform-runtime'],
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I had to manually install this since I don't think it got added to package.json.

Copy link
Owner Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

weird, it seems like its there...hrmmm

sourceType: 'unambiguous'
}
}
Expand Down
733 changes: 733 additions & 0 deletions experiments/wasm-eel/index.html

Large diffs are not rendered by default.

1 change: 1 addition & 0 deletions experiments/wasm-eel/presets/$$$ Royal - Mashup (160).json
@@ -0,0 +1 @@
{"baseVals":{"rating":3,"gammaadj":1,"decay":1,"modwavealphabyvolume":1,"wave_a":0.207,"wave_scale":0.397,"wave_smoothing":0,"wave_mystery":0.24,"modwavealphaend":1.17,"warpscale":2.853,"zoomexp":0.99983,"zoom":0.99752,"warp":0.01565,"ob_size":0,"mv_x":64,"mv_y":48,"mv_l":0,"mv_r":0.35,"mv_g":0.35,"mv_b":0.35,"mv_a":0},"shapes":[{"baseVals":{"enabled":0},"init_eqs_eel":"","frame_eqs_eel":""},{"baseVals":{"enabled":0},"init_eqs_eel":"","frame_eqs_eel":""},{"baseVals":{"enabled":0},"init_eqs_eel":"","frame_eqs_eel":""},{"baseVals":{"enabled":0},"init_eqs_eel":"","frame_eqs_eel":""}],"waves":[{"baseVals":{"enabled":0},"init_eqs_eel":"","frame_eqs_eel":"","point_eqs_eel":""},{"baseVals":{"enabled":0},"init_eqs_eel":"","frame_eqs_eel":"","point_eqs_eel":""},{"baseVals":{"enabled":0},"init_eqs_eel":"","frame_eqs_eel":"","point_eqs_eel":""},{"baseVals":{"enabled":0},"init_eqs_eel":"","frame_eqs_eel":"","point_eqs_eel":""}],"init_eqs_str":"a.q1=0;a.q2=0;a.oldq2=0;","frame_eqs_str":"a.wave_r+=.4*(.6*Math.sin(.933*a.time)+.4*Math.sin(1.045*a.time));a.wave_g+=.1*(.6*Math.sin(.9*a.time)+.4*Math.sin(.956*a.time));a.wave_b+=.1*(.6*Math.sin(.91*a.time)+.4*Math.sin(.92*a.time));a.mv_r=a.wave_r;a.mv_b=a.wave_b;a.mv_g=a.wave_g;a.q1=.05*div(pow(1+1.2*a.bass+.4*a.bass_att+.1*a.treb+.1*a.treb_att+.1*a.mid+.1*a.mid_att,6),a.fps);a.mv_a=.00001<Math.abs(above(a.bass-1.2,1))?1:a.bass-1.2;a.q2=a.oldq2+.05*div(pow(1+1.2*a.treb+.4*a.treb_att+.1*a.treb+.1*a.treb_att+.1*a.mid+\n.1*a.mid_att,6),a.fps);a.oldq2=a.q2;a.monitor=a.q2;","pixel_eqs_str":"a.zoom+=.1*a.rad*a.q1;","init_eqs_eel":"","frame_eqs_eel":"wave_r = wave_r + 0.400*( 0.60*sin(0.933*time) + 0.40*sin(1.045*time) );\nwave_g = wave_g + 0.100*( 0.60*sin(0.900*time) + 0.40*sin(0.956*time) );\nwave_b = wave_b + 0.100*( 0.60*sin(0.910*time) + 0.40*sin(0.920*time) );\nmv_r = wave_r;\nmv_b = wave_b;\nmv_g = wave_g;\nq1 = 0.05*(pow(1+1.2*bass+0.4*bass_att+0.1*treb+0.1*treb_att+0.1*mid+0.1*mid_att,6)/fps);\n//q1 = 0.6*(bass+bass_att);\nmv_a = if(above(bass-1.2,1),1,bass-1.2);\nq2 = oldq2 + 0.05*(pow(1+1.2*treb+0.4*treb_att+0.1*treb+0.1*treb_att+0.1*mid+0.1*mid_att,6)/fps);\n\n//q2 = oldq2 +q1;\noldq2 = q2 ;\nmonitor = q2;","pixel_eqs_eel":"zoom = zoom + rad*0.1*q1;","warp":" shader_body { \n vec3 ret_1;\n vec4 tmpvar_2;\n tmpvar_2 = texture (sampler_main, uv);\n ret_1 = (tmpvar_2.xyz + ((tmpvar_2.xyz - \n ((texture (sampler_blur2, uv).xyz * scale2) + bias2)\n ) * 0.3));\n ret_1 = (ret_1 * 0.9);\n ret_1 = (ret_1 + ((\n (texture (sampler_noise_lq, (((uv_orig * texsize.xy) * (texsize_noise_lq.zw * 0.4)) + rand_frame.xy)).xyz - 0.5)\n / 256.0) * 112.0));\n vec4 tmpvar_3;\n tmpvar_3.w = 1.0;\n tmpvar_3.xyz = ret_1;\n ret = tmpvar_3.xyz;\n }","comp":" shader_body { \n float ang2_1;\n ang2_1 = ((ang * 0.1591549) + (time * 0.025));\n ang2_1 = (cos((50.26548 * ang2_1)) * 0.023);\n ang2_1 = (ang2_1 * 6.283185);\n vec2 tmpvar_2;\n tmpvar_2.x = cos(ang2_1);\n tmpvar_2.y = sin(ang2_1);\n vec4 tmpvar_3;\n tmpvar_3.w = 1.0;\n tmpvar_3.xyz = texture (sampler_main, (0.5 + ((\n (0.375 * (rad * sqrt(dot (texsize.xy, texsize.xy))))\n * tmpvar_2) * texsize.zw))).xyz;\n ret = tmpvar_3.xyz;\n }"}
1 change: 1 addition & 0 deletions experiments/wasm-eel/presets/$$$ Royal - Mashup (177).json
@@ -0,0 +1 @@
{"baseVals":{"rating":3,"decay":0.5,"echo_zoom":1,"echo_alpha":0.5,"echo_orient":3,"solarize":1,"wave_a":0.001,"warpanimspeed":0.037,"warpscale":0.015,"zoomexp":1.22019,"warp":0.033,"wave_r":0,"wave_g":0,"wave_b":0,"ob_size":0,"ob_a":1,"ib_size":0.09,"ib_r":0,"ib_g":0,"ib_b":0,"mv_r":0.8,"mv_a":0},"shapes":[{"baseVals":{"enabled":0},"init_eqs_eel":"","frame_eqs_eel":""},{"baseVals":{"enabled":1,"textured":1,"x":0.25,"y":0.75,"rad":4.44708,"tex_zoom":0.22746,"r":0,"a":0.1,"g2":0,"a2":0.2,"border_r":0,"border_g":0,"border_a":0},"init_eqs_str":"a.q1=0;a.tex_capture=0;a.q3=0;a.tex_saw=.4;","frame_eqs_str":"a.ang=.2*a.q1;a.tex_capture=above(a.q3,1);a.tex_zoom=.6;","init_eqs_eel":"tex_saw = 0.4;","frame_eqs_eel":"ang = q1*0.2;\n//x = 0.5 + 0.2*sin(q2);\n//y = 0.5 + (0.3*sin(q2));\n\ntex_capture = above(q3,1);\ntex_zoom = 0.6;"},{"baseVals":{"enabled":0},"init_eqs_eel":"","frame_eqs_eel":""},{"baseVals":{"enabled":0},"init_eqs_eel":"","frame_eqs_eel":""}],"waves":[{"baseVals":{"enabled":1,"thick":1,"smoothing":0},"init_eqs_str":"a.q1=0;a.speed=0;a.v=0;a.xs=0;a.ys=0;","frame_eqs_str":"","point_eqs_str":"a.q1=0;a.speed=.8*a.bass_att;a.v=1E6*a.sample+a.value2*a.bass*.1;a.xs+=Math.sin(a.v)*a.speed*Math.atan(1.51*a.v);a.ys+=Math.sin(a.v)*a.speed*Math.atan(10*a.v);a.x=.5+.5*Math.sin(.1*a.xs)*Math.cos(.2*a.time+a.xs);a.y=.5+.5*Math.sin(.12*a.ys)*Math.cos(.1*a.time+a.xs);a.x=.8*a.x+.1;a.y=.8*a.y+.1;a.r=.5*Math.sin(1.22*a.time)+.6;a.g=.4+.4*Math.sin(1.307*a.time+2*a.y);a.b=.4+.4*Math.sin(1.959*a.time+2*a.x);a.xs=.00001<Math.abs(above(a.xs,1E3))?0:a.xs;a.ys=.00001<Math.abs(above(a.ys,\n1E3))?0:a.ys;","init_eqs_eel":"","frame_eqs_eel":"","point_eqs_eel":"//q1 = state;\n//q2 = basstime;\n\nq1 = 0;\nspeed = bass_att*0.8;\nv = sample*1000000 + value2*bass*0.1;\n\n//state 0 elipse\nxs = xs + sin(v)*speed*atan(v*1.51);\nys = ys + sin(v)*speed*atan((v*10));\n\nx = 0.5 + 0.5*sin(xs*0.1)*cos(time*0.2 + xs);\ny = 0.5 + 0.5*sin(ys*0.12)*cos(time*0.1 + xs);\n\nx = x*0.8 + 0.1;\ny = y*0.8 + 0.1;\n\nr = 0.5 + 0.5*sin(time*1.22) + 0.1;\ng = 0.4 + 0.4*sin(time*1.307 + 2*y);\nb = 0.4 + 0.4*sin(time*1.959 + x*2);\n\nxs = if(above(xs,1000),0 ,xs);\nys = if(above(ys,1000),0 ,ys);"},{"baseVals":{"enabled":1,"thick":1,"smoothing":0},"init_eqs_str":"a.q1=0;a.speed=0;a.v=0;a.xs=0;a.ys=0;","frame_eqs_str":"","point_eqs_str":"a.q1=0;a.speed=.8*a.bass_att;a.v=1E6*a.sample+a.value2*a.bass*.1;a.xs+=Math.sin(a.v)*a.speed*Math.atan(1.51*a.v);a.ys+=Math.sin(a.v)*a.speed*Math.atan(10*a.v);a.x=.5+.5*Math.sin(.1*a.xs)*Math.cos(.2*a.time+a.xs);a.y=.5+.5*Math.sin(.14*a.ys)*Math.cos(.1*a.time+a.xs);a.x=.8*a.x+.1;a.y=.8*a.y+.1;a.x=.6*a.x+.2;a.y=.6*a.y+.2;a.r=.5*Math.sin(1.322*a.time)+.6;a.g=.4+.4*Math.sin(1.5407*a.time+2*a.y);a.b=.4+.4*Math.sin(1.759*a.time+2*a.x);a.xs=.00001<Math.abs(above(a.xs,1E3))?0:a.xs;\na.ys=.00001<Math.abs(above(a.ys,1E3))?0:a.ys;","init_eqs_eel":"","frame_eqs_eel":"","point_eqs_eel":"//q1 = state;\n//q2 = basstime;\n\nq1 = 0;\nspeed = bass_att*0.8;\nv = sample*1000000 + value2*bass*0.1;\n\n//state 0 elipse\nxs = xs + sin(v)*speed*atan(v*1.51);\nys = ys + sin(v)*speed*atan((v*10));\n\nx = 0.5 + 0.5*sin(xs*0.1)*cos(time*0.2 + xs);\ny = 0.5 + 0.5*sin(ys*0.14)*cos(time*0.1 + xs);\n\nx = x*0.8 + 0.1;\ny = y*0.8 + 0.1;\nx = x*0.6 + 0.2;\ny = y*0.6 + 0.2;\n\nr = 0.5 + 0.5*sin(time*1.322) + 0.1;\ng = 0.4 + 0.4*sin(time*1.5407 + 2*y);\nb = 0.4 + 0.4*sin(time*1.759 + x*2);\n\nxs = if(above(xs,1000),0 ,xs);\nys = if(above(ys,1000),0 ,ys);"},{"baseVals":{"enabled":1,"thick":1,"smoothing":0},"init_eqs_str":"a.q1=0;a.speed=0;a.v=0;a.xs=0;a.ys=0;","frame_eqs_str":"","point_eqs_str":"a.q1=0;a.speed=.8*a.bass_att;a.v=1E6*a.sample+a.value2*a.bass*.1;a.xs+=Math.sin(a.v)*a.speed*Math.atan(1.51*a.v);a.ys+=Math.sin(a.v)*a.speed*Math.atan(10*a.v);a.x=.5+.5*Math.sin(.1*a.xs)*Math.cos(.2*a.time+a.xs);a.y=.5+.5*Math.sin(.14*a.ys)*Math.cos(.1*a.time+a.xs);a.x=.8*a.x+.1;a.y=.8*a.y+.1;a.x=.25*a.x+.375;a.y=.25*a.y+.375;a.r=.5*Math.sin(1.622*a.time)+.6;a.g=.4+.4*Math.sin(1.2407*a.time+2*a.y);a.b=.4+.4*Math.sin(1.359*a.time+2*a.x);a.xs=.00001<Math.abs(above(a.xs,1E3))?\n0:a.xs;a.ys=.00001<Math.abs(above(a.ys,1E3))?0:a.ys;","init_eqs_eel":"","frame_eqs_eel":"","point_eqs_eel":"//q1 = state;\n//q2 = basstime;\n\nq1 = 0;\nspeed = bass_att*0.8;\nv = sample*1000000 + value2*bass*0.1;\n\n//state 0 elipse\nxs = xs + sin(v)*speed*atan(v*1.51);\nys = ys + sin(v)*speed*atan((v*10));\n\nx = 0.5 + 0.5*sin(xs*0.1)*cos(time*0.2 + xs);\ny = 0.5 + 0.5*sin(ys*0.14)*cos(time*0.1 + xs);\n\nx = x*0.8 + 0.1;\ny = y*0.8 + 0.1;\nx = x*0.25 + 0.375;\ny = y*0.25 + 0.375;\n\nr = 0.5 + 0.5*sin(time*1.622) + 0.1;\ng = 0.4 + 0.4*sin(time*1.2407 + 2*y);\nb = 0.4 + 0.4*sin(time*1.359 + x*2);\n\nxs = if(above(xs,1000),0 ,xs);\nys = if(above(ys,1000),0 ,ys);"},{"baseVals":{"enabled":0},"init_eqs_eel":"","frame_eqs_eel":"","point_eqs_eel":""}],"init_eqs_str":"a.vol=0;a.mtime=0;a.q1=0;a.mv_x=64;a.mv_y=48;a.nut=0;a.stp=0;a.stq=0;a.rtp=0;a.rtq=0;a.wvr=0;a.decay=0;a.dcsp=0;","frame_eqs_str":"a.decay=1;a.zoom=.95+.075*Math.max(a.treb_att,a.bass_att);a.warp=0;a.vol=.25*(a.bass_att+a.mid_att+a.treb_att);a.vol*=a.vol;a.mtime+=.1*a.vol;a.q1=.4*a.mtime-.05*a.time;","pixel_eqs_str":"","init_eqs_eel":"mv_x=64;mv_y=48;\nnut=0;\nstp=0;stq=0;\nrtp=0;rtq=0;\nwvr=0;\ndecay=0;\ndcsp=0","frame_eqs_eel":"decay=1;\nzoom=0.95+.075*max(treb_att,bass_att);\n\nwarp = 0;\n\nvol=(bass_att+mid_att+treb_att)*0.25;\nvol=vol*vol;\nmtime=mtime+vol*0.1;\n\nq1=mtime*0.4-.05*time;","pixel_eqs_eel":"","warp":" shader_body { \n vec3 ret_1;\n vec2 tmpvar_2;\n tmpvar_2 = (vec2(1.0, 0.0) * texsize.z);\n vec2 tmpvar_3;\n tmpvar_3 = (vec2(0.0, 1.0) * texsize.z);\n ret_1 = (((\n (texture (sampler_main, (uv + tmpvar_2)).xyz + texture (sampler_main, (uv + tmpvar_2)).xyz)\n * 0.5) + (\n (texture (sampler_main, (uv + tmpvar_3)).xyz + texture (sampler_main, (uv + tmpvar_3)).xyz)\n * 0.5)) - texture (sampler_main, ((\n (uv - 0.5)\n * 0.9) + 0.5)).xyz);\n ret_1 = (ret_1 - 0.4);\n vec4 tmpvar_4;\n tmpvar_4.w = 1.0;\n tmpvar_4.xyz = ret_1;\n ret = tmpvar_4.xyz;\n }","comp":" shader_body { \n vec3 ret_1;\n vec2 tmpvar_2;\n tmpvar_2 = (texsize.zw * 4.0);\n vec3 tmpvar_3;\n tmpvar_3 = (((texture (sampler_blur1, \n (uv + (vec2(1.0, 0.0) * tmpvar_2))\n ).xyz * scale1) + bias1) - ((texture (sampler_blur1, \n (uv - (vec2(1.0, 0.0) * tmpvar_2))\n ).xyz * scale1) + bias1));\n vec3 tmpvar_4;\n tmpvar_4 = (((texture (sampler_blur1, \n (uv + (vec2(0.0, 1.0) * tmpvar_2))\n ).xyz * scale1) + bias1) - ((texture (sampler_blur1, \n (uv - (vec2(0.0, 1.0) * tmpvar_2))\n ).xyz * scale1) + bias1));\n vec2 tmpvar_5;\n tmpvar_5.x = tmpvar_3.y;\n tmpvar_5.y = tmpvar_4.y;\n vec2 tmpvar_6;\n tmpvar_6.x = tmpvar_3.z;\n tmpvar_6.y = tmpvar_4.z;\n vec2 tmpvar_7;\n tmpvar_7 = ((uv - (tmpvar_5 * 0.1)) + (tmpvar_6 * 0.06));\n vec4 tmpvar_8;\n tmpvar_8 = texture (sampler_main, uv);\n ret_1 = (((\n ((texture (sampler_blur2, tmpvar_7).xyz * scale2) + bias2)\n .x * \n clamp ((1.0 - tmpvar_8.y), 0.0, 1.0)\n ) * pow (hue_shader.yxz, vec3(8.0, 8.0, 8.0))) * 3.0);\n ret_1 = (mix (ret_1, (\n pow (hue_shader.yzx, vec3(8.0, 8.0, 8.0))\n * 1.4), vec3((\n (texture (sampler_main, tmpvar_7).x * 0.8)\n + \n ((texture (sampler_blur1, tmpvar_7).xyz * scale1) + bias1)\n .x))) * clamp ((1.0 - \n (((texture (sampler_blur1, uv).xyz * scale1) + bias1).z * 4.0)\n ), 0.0, 1.0));\n vec2 tmpvar_9;\n tmpvar_9.x = tmpvar_3.z;\n tmpvar_9.y = tmpvar_4.z;\n vec3 tmpvar_10;\n vec3 tmpvar_11;\n tmpvar_11 = pow (hue_shader, vec3(8.0, 8.0, 8.0));\n tmpvar_10 = mix (mix (ret_1, vec3(1.0, 1.0, 1.0), (\n (tmpvar_11 * texture (sampler_main, clamp ((uv - (tmpvar_9 * 2.0)), 0.0, 1.0)).y)\n * 1.2)), (tmpvar_11.zxy * 1.8), tmpvar_8.zzz);\n ret_1 = tmpvar_10;\n vec4 tmpvar_12;\n tmpvar_12.w = 1.0;\n tmpvar_12.xyz = tmpvar_10;\n ret = tmpvar_12.xyz;\n }"}
1 change: 1 addition & 0 deletions experiments/wasm-eel/presets/$$$ Royal - Mashup (197).json
@@ -0,0 +1 @@
{"baseVals":{"rating":3,"decay":0.5,"echo_zoom":1,"echo_alpha":0.5,"echo_orient":3,"wrap":0,"darken_center":1,"solarize":1,"wave_a":0.001,"zoom":0.97,"rot":-6.27999,"warp":0.00052,"wave_r":0,"wave_g":0,"wave_b":0,"ob_r":1,"ob_g":1,"ob_b":1,"mv_r":0.8,"mv_a":0},"shapes":[{"baseVals":{"enabled":0},"init_eqs_eel":"","frame_eqs_eel":""},{"baseVals":{"enabled":1,"textured":1,"x":0.25,"y":0.75,"rad":4.44708,"tex_zoom":0.22746,"r":0,"a":0.1,"g2":0,"a2":0.2,"border_r":0,"border_g":0,"border_a":0},"init_eqs_str":"a.q1=0;a.tex_capture=0;a.q3=0;a.tex_saw=.4;","frame_eqs_str":"a.ang=.2*a.q1;a.tex_capture=above(a.q3,1);a.tex_zoom=.6;","init_eqs_eel":"tex_saw = 0.4;","frame_eqs_eel":"ang = q1*0.2;\n//x = 0.5 + 0.2*sin(q2);\n//y = 0.5 + (0.3*sin(q2));\n\ntex_capture = above(q3,1);\ntex_zoom = 0.6;"},{"baseVals":{"enabled":0},"init_eqs_eel":"","frame_eqs_eel":""},{"baseVals":{"enabled":0},"init_eqs_eel":"","frame_eqs_eel":""}],"waves":[{"baseVals":{"enabled":1,"thick":1,"smoothing":0},"init_eqs_str":"a.q1=0;a.speed=0;a.v=0;a.xs=0;a.ys=0;","frame_eqs_str":"","point_eqs_str":"a.q1=0;a.speed=.8*a.bass_att;a.v=1E6*a.sample+a.value2*a.bass*.1;a.xs+=Math.sin(a.v)*a.speed*Math.atan(1.51*a.v);a.ys+=Math.sin(a.v)*a.speed*Math.atan(10*a.v);a.x=.5+.5*Math.sin(.1*a.xs)*Math.cos(.2*a.time+a.xs);a.y=.5+.5*Math.sin(.12*a.ys)*Math.cos(.1*a.time+a.xs);a.x=.8*a.x+.1;a.y=.8*a.y+.1;a.r=.5*Math.sin(1.22*a.time)+.6;a.g=.4+.4*Math.sin(1.307*a.time+2*a.y);a.b=.4+.4*Math.sin(1.959*a.time+2*a.x);a.xs=.00001<Math.abs(above(a.xs,1E3))?0:a.xs;a.ys=.00001<Math.abs(above(a.ys,\n1E3))?0:a.ys;","init_eqs_eel":"","frame_eqs_eel":"","point_eqs_eel":"//q1 = state;\n//q2 = basstime;\n\nq1 = 0;\nspeed = bass_att*0.8;\nv = sample*1000000 + value2*bass*0.1;\n\n//state 0 elipse\nxs = xs + sin(v)*speed*atan(v*1.51);\nys = ys + sin(v)*speed*atan((v*10));\n\nx = 0.5 + 0.5*sin(xs*0.1)*cos(time*0.2 + xs);\ny = 0.5 + 0.5*sin(ys*0.12)*cos(time*0.1 + xs);\n\nx = x*0.8 + 0.1;\ny = y*0.8 + 0.1;\n\nr = 0.5 + 0.5*sin(time*1.22) + 0.1;\ng = 0.4 + 0.4*sin(time*1.307 + 2*y);\nb = 0.4 + 0.4*sin(time*1.959 + x*2);\n\nxs = if(above(xs,1000),0 ,xs);\nys = if(above(ys,1000),0 ,ys);"},{"baseVals":{"enabled":1,"thick":1,"smoothing":0},"init_eqs_str":"a.q1=0;a.speed=0;a.v=0;a.xs=0;a.ys=0;","frame_eqs_str":"","point_eqs_str":"a.q1=0;a.speed=.8*a.bass_att;a.v=1E6*a.sample+a.value2*a.bass*.1;a.xs+=Math.sin(a.v)*a.speed*Math.atan(1.51*a.v);a.ys+=Math.sin(a.v)*a.speed*Math.atan(10*a.v);a.x=.5+.5*Math.sin(.1*a.xs)*Math.cos(.2*a.time+a.xs);a.y=.5+.5*Math.sin(.14*a.ys)*Math.cos(.1*a.time+a.xs);a.x=.8*a.x+.1;a.y=.8*a.y+.1;a.x=.6*a.x+.2;a.y=.6*a.y+.2;a.r=.5*Math.sin(1.322*a.time)+.6;a.g=.4+.4*Math.sin(1.5407*a.time+2*a.y);a.b=.4+.4*Math.sin(1.759*a.time+2*a.x);a.xs=.00001<Math.abs(above(a.xs,1E3))?0:a.xs;\na.ys=.00001<Math.abs(above(a.ys,1E3))?0:a.ys;","init_eqs_eel":"","frame_eqs_eel":"","point_eqs_eel":"//q1 = state;\n//q2 = basstime;\n\nq1 = 0;\nspeed = bass_att*0.8;\nv = sample*1000000 + value2*bass*0.1;\n\n//state 0 elipse\nxs = xs + sin(v)*speed*atan(v*1.51);\nys = ys + sin(v)*speed*atan((v*10));\n\nx = 0.5 + 0.5*sin(xs*0.1)*cos(time*0.2 + xs);\ny = 0.5 + 0.5*sin(ys*0.14)*cos(time*0.1 + xs);\n\nx = x*0.8 + 0.1;\ny = y*0.8 + 0.1;\nx = x*0.6 + 0.2;\ny = y*0.6 + 0.2;\n\nr = 0.5 + 0.5*sin(time*1.322) + 0.1;\ng = 0.4 + 0.4*sin(time*1.5407 + 2*y);\nb = 0.4 + 0.4*sin(time*1.759 + x*2);\n\nxs = if(above(xs,1000),0 ,xs);\nys = if(above(ys,1000),0 ,ys);"},{"baseVals":{"enabled":1,"thick":1,"smoothing":0},"init_eqs_str":"a.q1=0;a.speed=0;a.v=0;a.xs=0;a.ys=0;","frame_eqs_str":"","point_eqs_str":"a.q1=0;a.speed=.8*a.bass_att;a.v=1E6*a.sample+a.value2*a.bass*.1;a.xs+=Math.sin(a.v)*a.speed*Math.atan(1.51*a.v);a.ys+=Math.sin(a.v)*a.speed*Math.atan(10*a.v);a.x=.5+.5*Math.sin(.1*a.xs)*Math.cos(.2*a.time+a.xs);a.y=.5+.5*Math.sin(.14*a.ys)*Math.cos(.1*a.time+a.xs);a.x=.8*a.x+.1;a.y=.8*a.y+.1;a.x=.25*a.x+.375;a.y=.25*a.y+.375;a.r=.5*Math.sin(1.622*a.time)+.6;a.g=.4+.4*Math.sin(1.2407*a.time+2*a.y);a.b=.4+.4*Math.sin(1.359*a.time+2*a.x);a.xs=.00001<Math.abs(above(a.xs,1E3))?\n0:a.xs;a.ys=.00001<Math.abs(above(a.ys,1E3))?0:a.ys;","init_eqs_eel":"","frame_eqs_eel":"","point_eqs_eel":"//q1 = state;\n//q2 = basstime;\n\nq1 = 0;\nspeed = bass_att*0.8;\nv = sample*1000000 + value2*bass*0.1;\n\n//state 0 elipse\nxs = xs + sin(v)*speed*atan(v*1.51);\nys = ys + sin(v)*speed*atan((v*10));\n\nx = 0.5 + 0.5*sin(xs*0.1)*cos(time*0.2 + xs);\ny = 0.5 + 0.5*sin(ys*0.14)*cos(time*0.1 + xs);\n\nx = x*0.8 + 0.1;\ny = y*0.8 + 0.1;\nx = x*0.25 + 0.375;\ny = y*0.25 + 0.375;\n\nr = 0.5 + 0.5*sin(time*1.622) + 0.1;\ng = 0.4 + 0.4*sin(time*1.2407 + 2*y);\nb = 0.4 + 0.4*sin(time*1.359 + x*2);\n\nxs = if(above(xs,1000),0 ,xs);\nys = if(above(ys,1000),0 ,ys);"},{"baseVals":{"enabled":0},"init_eqs_eel":"","frame_eqs_eel":"","point_eqs_eel":""}],"init_eqs_str":"a.basstime=0;a.stickybit=0;a.volavg2=0;a.q1=0;a.decay_r=0;a.sample1=0;a.difftime=0;a.diff=0;a.decay_b=0;a.edge=0;a.volavg=0;a.bit2=0;a.vol=0;a.q2=0;a.q3=0;a.basssum=0;a.decay_g=0;a.sample2=0;","frame_eqs_str":"a.basstime+=.03*a.bass;a.q1=4*a.basstime;a.basstime=.00001<Math.abs(below(a.basstime,1E3))?1E3:a.basstime;a.basstime+=.03*a.bass_att;a.vol=pow(a.bass+a.mid+a.treb,2);a.basssum=a.vol;a.stickybit=mod(a.time,2);a.volavg+=a.vol*equal(a.stickybit,1);a.sample1+=equal(a.stickybit,1);a.volavg2+=a.vol*equal(a.stickybit,0);a.sample2+=equal(a.stickybit,0);a.edge=bnot(equal(a.bit2,a.stickybit));a.volavg-=a.volavg*a.edge*a.stickybit;a.volavg2-=a.volavg2*a.edge*equal(a.stickybit,0);a.sample1-=\na.sample1*a.edge*a.stickybit;a.sample2-=a.sample2*a.edge*equal(a.stickybit,0);a.diff=.00001<Math.abs(equal(a.stickybit,1))?div(a.basssum,div(a.volavg2,a.sample2)):0;a.diff=.00001<Math.abs(equal(a.stickybit,0))?div(a.basssum,div(a.volavg,a.sample1)):a.diff;a.q3=a.diff;a.bit2=mod(a.time,2);a.difftime+=.03*a.diff;a.q2=a.difftime;a.difftime=.00001<Math.abs(above(a.difftime,2E3))?0:a.difftime;a.monitor=3.14*Math.abs(Math.cos(a.time));a.mv_a=above(a.diff,10);","pixel_eqs_str":"a.zoom=1+.05*a.q3*a.rad;a.decay_r=.2*a.rad*Math.sin(.35*a.q2)+.85+.1*Math.sin(a.q2);a.decay_g=.2*a.rad*Math.sin(.5*a.q2)+.85+.1*Math.sin(.7*a.q2);a.decay_b=.2*a.rad*Math.sin(.4*a.q2)+.85+.1*Math.sin(.8*a.q2);a.rot=0;","init_eqs_eel":"","frame_eqs_eel":"basstime = basstime + bass*0.03;\nq1 = basstime*4;\n\n//start in most active range\nbasstime = if(below(basstime,1000),1000,basstime);\n//basstime = if(above(basstime,495),450,basstime);\n\nbasstime = basstime + bass_att*0.03;\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\nmonitor = abs(cos(time))*3.14;\n\n\nmv_a = above(diff,10);","pixel_eqs_eel":"zoom = 1 + 0.05*q3*rad;\n\ndecay_r = 0.2*rad*sin(q2*0.35) + 0.85 + 0.1*sin(q2);\ndecay_g = 0.2*rad*sin(q2*0.5) + 0.85 + 0.1*sin(0.7*q2);\ndecay_b = 0.2*rad*sin(q2*0.4) + 0.85 + 0.1*sin(0.8*q2);\n\nrot = 0;","warp":" shader_body { \n vec3 ret_1;\n vec2 tmpvar_2;\n tmpvar_2 = (vec2(1.0, 0.0) * texsize.z);\n vec2 tmpvar_3;\n tmpvar_3 = (vec2(0.0, 1.0) * texsize.z);\n ret_1 = (((\n (texture (sampler_main, (uv + tmpvar_2)).xyz + texture (sampler_main, (uv + tmpvar_2)).xyz)\n * 0.5) + (\n (texture (sampler_main, (uv + tmpvar_3)).xyz + texture (sampler_main, (uv + tmpvar_3)).xyz)\n * 0.5)) - texture (sampler_main, ((\n (uv - 0.5)\n * 0.9) + 0.5)).xyz);\n ret_1 = (ret_1 - 0.4);\n vec4 tmpvar_4;\n tmpvar_4.w = 1.0;\n tmpvar_4.xyz = ret_1;\n ret = tmpvar_4.xyz;\n }","comp":" shader_body { \n vec3 ret_1;\n vec2 tmpvar_2;\n tmpvar_2 = ((0.5 - uv) + 0.5);\n ret_1 = (mix (texture (sampler_main, uv).xyz, texture (sampler_main, tmpvar_2).xyz, vec3(0.5, 0.5, 0.5)) * 2.0);\n ret_1 = (((\n ((texture (sampler_blur3, uv).xyz * scale3) + bias3)\n * 2.0) + (\n ((texture (sampler_blur3, tmpvar_2).xyz * scale3) + bias3)\n * 2.0)) + ret_1);\n vec4 tmpvar_3;\n tmpvar_3.w = 1.0;\n tmpvar_3.xyz = ret_1;\n ret = tmpvar_3.xyz;\n }"}