FreeVJ FULL AUTO VJ LOOP

FreeVJ / Loop library / Pattern

Sine Weave

Woven sine lines that swell with the mids.

Sine Weave
Play this loop live

Exports are made in this browser and saved directly.

GLSL source

// Six overlapping sine strands. They travel one wavelength every 4 beats; mids grow the amplitude.
vec2 prim(vec2 uv) {
    float lines = floor(uParams.x);
    float l = 0.0;
    float amp = 0.03 + uMid * 0.14;
    for (int k = 0; k < 12; k++) {
        if (float(k) >= lines) break;
        float fk = float(k);
        float base = 0.5 + (fk - (lines - 1.0) * 0.5) * (0.6 / lines);
        float y = base + sin(uv.x * TAU * uParams.y + uBeat * TAU / 4.0 + fk * 1.1) * amp;
        l += smoothstep(0.006 + uHigh * 0.004, 0.0, abs(uv.y - y));
    }
    l = min(l, 1.0);
    return vec2(l, l);
}

One vec2 prim(vec2 uv) function using the shared uniform contract (uBeat · uBass · uKick …). It outputs luma and alpha only.

Similar loops

☕ Buy me a coffee

FreeVJ is free. If you enjoy it, support the maker with a coffee's worth of USDT.

USDT · TRON (TRC20) TRC20 network only

TVg11kWumyqNpRU9HXKo8a8u2fa8sdJtKh

☕ 3 USDT☕☕ 5 USDT☕☕☕ 10 USDT

How to send with Binance
  1. Binance app: Wallet › Withdraw › USDT › paste the address (or scan the QR) › network TRC20 › amount › confirm. The address belongs to Binance, so it may go through as a free internal transfer.
  2. Other wallets and exchanges (Trust Wallet, OKX, Bybit …): send USDT on the TRC20 network to the same address. A self-custody wallet needs a little TRX for the fee.

Always send on the TRC20 network. USDT sent on another network is hard to recover.