From b7864e1d47c8f834091c3cd2c6cb5950cbe4af1f Mon Sep 17 00:00:00 2001 From: klemek Date: Mon, 10 Nov 2025 08:54:21 +0100 Subject: [PATCH] fix: small fixes --- default/inc_debug.glsl | 31 +++++++++++++++++++++++++++---- default/inc_functions.glsl | 4 ++++ default/inc_fx.glsl | 2 +- default/inc_magic.glsl | 8 ++++++++ default/inc_src.glsl | 16 +++++++++++++--- 5 files changed, 53 insertions(+), 8 deletions(-) diff --git a/default/inc_debug.glsl b/default/inc_debug.glsl index 9938905..f0f0539 100644 --- a/default/inc_debug.glsl +++ b/default/inc_debug.glsl @@ -52,28 +52,46 @@ vec4 debug(vec2 vUV) // inputs int selected_srca = iState3 - 1; - if (selected_srca == 14) { - selected_srca = int(randTime(iSeed3 + 100, 16) * 14); + bool random_srca = iState3 == 15; + if (random_srca) { + selected_srca = int(randTime(iSeed3 + 100) * 14); } if (selected_srca == 5 && iDemo > 0) { selected_srca = 1; + random_srca = true; } if (selected_srca == 10 && iDemo > 0) { selected_srca = 2; + random_srca = true; } int selected_srcb = iState4 - 1; - if (selected_srcb == 14) { - selected_srcb = int(randTime(iSeed4 + 100, 16) * 14); + bool random_srcb = iState4 == 15; + if (random_srcb) { + selected_srcb = int(randTime(iSeed4 + 100) * 14); } if (selected_srcb == 5 && iDemo > 0) { selected_srcb = 1; + random_srcb = true; } if (selected_srcb == 10 && iDemo > 0) { selected_srcb = 2; + random_srcb = true; } int selected_fxa = iState5 - 1; + bool random_fxa = iState5 == 15; + if (random_fxa) { + selected_fxa = int(randTime(iSeed5 + 100) * 14); + } int selected_fxb = iState6 - 1; + bool random_fxb = iState6 == 15; + if (random_fxb) { + selected_fxb = int(randTime(iSeed6 + 100) * 14); + } int selected_mfx = iState8 - 1; + bool random_mfx = iState8 == 15; + if (random_mfx) { + selected_mfx = int(randTime(iSeed8 + 100) * 14); + } float fxa_value = magic(iMidi2_1[6].xy, vec3(1, 0, 0), iSeed5); bool fxa_invert = magic_trigger(vec3(iMidi2_1[6].z, 0, 0), iSeed5); float fxb_value = magic(iMidi2_2[6].xy, vec3(1, 0, 0), iSeed6); @@ -126,13 +144,18 @@ vec4 debug(vec2 vUV) // show selected src/fx f += char_at(uv2, vec2(-5.4, 1.45), hex_chars[selected_srca]); + f += random_srca ? circle(uv2, vec2(-4.25, 2.7), 0.1) : 0; f += char_at(uv2, vec2(-5.4, -2.55), hex_chars[selected_srcb]); + f += random_srcb ? circle(uv2, vec2(-4.25, -1.3), 0.1) : 0; f += char_at(uv2, vec2(-2.4, 1.45), hex_chars[selected_fxa]); f += fxa_invert ? rect(uv2, vec2(-2, 2.7), vec2(0.5, 0.05)) : 0; + f += random_fxa ? circle(uv2, vec2(-1.25, 2.7), 0.1) : 0; f += char_at(uv2, vec2(-2.4, -2.55), hex_chars[selected_fxb]); f += fxb_invert ? rect(uv2, vec2(-2, -1.3), vec2(0.5, 0.05)) : 0; + f += random_fxb ? circle(uv2, vec2(-1.25, -1.3), 0.1) : 0; f += char_at(uv2, vec2(4.6, -0.55), hex_chars[selected_mfx]); f += mfx_invert ? rect(uv2, vec2(5, 0.7), vec2(0.5, 0.05)) : 0; + f += random_mfx ? circle(uv2, vec2(5.75, 0.7), 0.1) : 0; // show current selected f += iSelected == 3 ? h_rect(uv2, vec2(-5, 2), vec2(1.2), 0.1) : 0; diff --git a/default/inc_functions.glsl b/default/inc_functions.glsl index cae9232..c5b5adf 100644 --- a/default/inc_functions.glsl +++ b/default/inc_functions.glsl @@ -220,6 +220,10 @@ vec4 voronoi(vec2 uv, float dist) { // SHAPES +float circle(vec2 uv, vec2 c, float size) { + return istep(size, length(uv - c)); +} + float stripe(float x, float k1, float k2) { return k2 > k1 ? (1 - step(x, k1)) * (step(x, k2)) : ((1 - step(x, k2)) * (step(x, k1))); diff --git a/default/inc_fx.glsl b/default/inc_fx.glsl index 73879c8..92d316e 100644 --- a/default/inc_fx.glsl +++ b/default/inc_fx.glsl @@ -526,7 +526,7 @@ subroutine(fx_stage_sub) vec4 fx_14(vec2 vUV, sampler2D previous, sampler2D feed // FX 15 : Random subroutine(fx_stage_sub) vec4 fx_15(vec2 vUV, sampler2D previous, sampler2D feedback, int seed, vec3 b1, vec2 f1, vec3 b2, vec2 f2, vec3 b3, vec2 f3, vec3 m0) { - int fx = int(randTime(seed + 100, 16) * 14); + int fx = int(randTime(seed + 100) * 14); if (fx == 0) { return fx_1(vUV, previous, feedback, seed, b1, f1, b2, f2, b3, f3, m0); diff --git a/default/inc_magic.glsl b/default/inc_magic.glsl index 74e0d31..836ec07 100644 --- a/default/inc_magic.glsl +++ b/default/inc_magic.glsl @@ -50,6 +50,14 @@ float magic(vec2 F, vec3 B, float i) return mix(0, f.x * mix(1 - modTime(f.y), cosTime(f.y) * 0.5 + 0.5, b.y), b.x); } +float fmagic(vec2 F, vec3 B, float i) +{ + vec2 f = magic_f(F, B, i); + vec3 b = magic_b(B, i); + + return f.x * mix(1 - modTime(f.y), cosTime(f.y) * 0.5 + 0.5, b.y); +} + float magic(float i) { return magic(vec2(0), vec3(0, 0, 1), i); diff --git a/default/inc_src.glsl b/default/inc_src.glsl index 5cdcdb2..b5158a6 100644 --- a/default/inc_src.glsl +++ b/default/inc_src.glsl @@ -433,13 +433,23 @@ subroutine(src_stage_sub) vec4 src_14(vec2 vUV, int seed, vec3 b1, vec2 f1, vec3 // controls float size = magic(f1, b1, seed + 10) * 2 + 0.1; - float dx = (magic(f2, b2, seed + 20) * (1 - size * 0.06) - 0.5) * ratio; - float dy = magic(f3, b3, seed + 30) * (1 - size * 0.17) - 0.5; + float dx = (fmagic(f2, b2, seed + 20) * (1 - size * 0.06) - 0.5) * ratio; + bool flip_x = magic_trigger(b2, seed + 20); + float dy = fmagic(f3, b3, seed + 30) * (1 - size * 0.17) - 0.5; + bool flip_y = magic_trigger(b3, seed + 30); // logic vec2 uv2 = uv1; + if (flip_x) { + uv2.x = -uv2.x; + } + + if (flip_y) { + uv2.y = -uv2.y; + } + uv2 -= vec2(dx, -dy); uv2 /= size; @@ -460,7 +470,7 @@ subroutine(src_stage_sub) vec4 src_14(vec2 vUV, int seed, vec3 b1, vec2 f1, vec3 // SRC 15 : Random subroutine(src_stage_sub) vec4 src_15(vec2 vUV, int seed, vec3 b1, vec2 f1, vec3 b2, vec2 f2, vec3 b3, vec2 f3) { - int src = int(randTime(seed + 100, 16) * 14); + int src = int(randTime(seed + 100) * 14); if (src == 0) { return src_1(vUV, seed, b1, f1, b2, f2, b3, f3);