FreeVJ FULL AUTO VJ LOOP

FreeVJ / Loop library / Pattern

Spectrum Bars

An equaliser of bars: lows on the left, mids in the middle, highs on the right.

Spectrum Bars
Play this loop live

Exports are made in this browser and saved directly.

GLSL source

// Band bars — lows on the left, mids in the centre, highs on the right. A 4-beat ripple shakes their height.
vec2 prim(vec2 uv) {
    float n = floor(uParams.x);
    float i = floor(uv.x * n);
    float f = fract(uv.x * n);
    float t = i / n;
    float b = t < 0.25 ? uBass : (t < 0.6 ? uMid : uHigh);
    float h = 0.06 + 0.6 * b * (0.55 + 0.45 * sin(i * 1.7 + uBeat * TAU / 4.0));
    float gap = uParams.y * 0.5;
    float bar = step(gap, f) * step(f, 1.0 - gap) * step(uv.y, h);
    float l = bar * (0.55 + 0.45 * uv.y / max(h, 0.01));
    return vec2(l, bar);
}

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.