diff --git a/TODO.md b/TODO.md
index bfe6ff3..cc71cfd 100644
--- a/TODO.md
+++ b/TODO.md
@@ -1,7 +1,3 @@
-- textures
- - canvas / other shader
- - audio
- - mic?
- fix mouse, add button, drag
- device orientation
diff --git a/demo/audio.html b/demo/audio.html
new file mode 100644
index 0000000..be3647e
--- /dev/null
+++ b/demo/audio.html
@@ -0,0 +1,53 @@
+
+
+
+
+ <repa-shader> demo
+
+
+
+
+
+
+
+
+
+void main() {
+ vec2 uv = gl_FragCoord.xy / resolution.xy;
+ vec3 col = .5 + .5 * cos(uv.xyx + time + vec3(0, 2, 4));
+ col *= texture(texture1, vec2(.5 - .5*uv.y, 1.0)).rgb * texture(tex_avatar, uv).rgb;
+
+ outColor = vec4(col, 1.0);
+}
+
+
+
+
+
+
+
+
diff --git a/demo/canvas.html b/demo/canvas.html
index 3964e47..a7a11be 100644
--- a/demo/canvas.html
+++ b/demo/canvas.html
@@ -57,7 +57,7 @@
void main() {
vec2 uv = gl_FragCoord.xy / resolution.xy;
vec3 col = .5 + .5 * cos(uv.xyx + time + vec3(0, 2, 4));
- col *= texture(texture0, vec2(uv.x, 1.-uv.y)).rgb;
+ col *= texture(texture0, vec2(uv.x, uv.y)).rgb;
float dist = distance(uv, mouse.xy);
float circle = smoothstep(.1, .2, dist) * .5 + .5;
diff --git a/demo/demo_audio.mp3 b/demo/demo_audio.mp3
new file mode 100644
index 0000000..bdb33f5
Binary files /dev/null and b/demo/demo_audio.mp3 differ
diff --git a/demo/index.html b/demo/index.html
index ca2acff..10f7997 100644
--- a/demo/index.html
+++ b/demo/index.html
@@ -26,7 +26,7 @@
- [[1, 2, 3, 4, 5, 6, 128, 255], [255, 128, 64, 32, 4, 3, 2, 1]]
+
+
+
+
+
+
+
+
+
+void main() {
+ vec2 uv = gl_FragCoord.xy / resolution.xy;
+ vec3 col = .5 + .5 * cos(uv.xyx + time + vec3(0, 2, 4));
+ col *= texture(texture1, vec2(.5*uv.y, 1.0)).rgb;
+
+ vec3 futas = texture(texture0, uv).rgb;
+
+ col = mix(col, futas, uv.x);
+
+ outColor = vec4(col, 1.0);
+}
+
+
+
+
+
+
+
+