CRYSTAL FOCUS X
Unstable Effects Collection
PART 8 OF 18
Unstable series · Wave · unstable=8

Wave (unstable=8)

A practical guide to the Wave effect on Crystal Focus X, including waveform shapes, scrolling motion, speed, frequency, direction, percentage-based modulation, audio overlay, and ready-to-use recipes for sine waves, stripes, ripples, and sawtooth ratchets.

What you will learn
  • How Wave relates to Gradient and Chainsaw
  • How speed, frequency, and direction shape the motion
  • How percentage-based amplitude and offset affect the blend
  • How to tune recipes you can paste into your blade profile
Main parameters
Shape
lcool
Motion
sparkd, sparkf, drift
Blend
mapb, mapc, ecolor, mapping_unstable
Best used for
  • Smooth scrolling energy
  • Traveling color bands
  • Animated ripples
  • Dual-strip crossflow patterns
Series: Customizing Unstable Effects on Crystal Focus X · Guide 8 of 18

Introduction

The Wave effect (unstable=8) is a signal generator. It creates a scrolling waveform that continuously moves along the blade, blending between the blade color and the effect color. If Gradient is a still image, Wave is the moving version of that idea.

Wave shares a lot of DNA with Chainsaw. Both are scrolling waveform effects with the same family of shapes and the same built-in clash and lockup speed boosts. But Wave is the cleaner, more direct version. It is especially good when you want smooth flowing energy instead of harsh teeth or mechanical patterns.

Gradient vs. Wave vs. Chainsaw

FeatureGradient (7)Wave (8)Chainsaw (4)
AnimationStaticScrollingScrolling
Position basisNormalized pattern spaceRaw pixel positionRaw pixel position
sparkd roleOffsetSpeedSpeed
sparkf roleFrequency, very dense rangeFrequency, moderate rangeFrequency, moderate range
drift roleInversionDirectionDirection
mapb / mapc scalingPercentage-basedPercentage-basedDifferent scaling behavior
Lockup / ClashNone×3 / ×2 speed×3 / ×2 speed

Enabling Wave

In your blade profile section, set:

unstable=8

How Wave Works

Each frame, Wave advances a waveform pattern and redraws it across the blade.

  1. Advance the pattern — a position counter moves forward based on sparkd.
  2. Generate per-pixel values — each pixel is combined with the moving counter and the frequency from sparkf.
  3. Shape the waveform — the selected shape from lcool is applied.
  4. Apply amplitude and offset — the wave is scaled by mapb and lifted by mapc.
  5. Blend color — the result blends between blade color and ecolor.
  6. Audio overlay — if enabled, extra audio-based response is added on top.

Parameter Mapping

lcool — Waveform Shape

Default: 20

This selects the wave shape.

lcool RangeWaveformVisual Character
0–39SawtoothSharp ramp with sudden drop, ratcheting look
40–79TriangleSmooth rise and fall, rolling peaks
80–119SineSoft curved wave, organic movement
120–159SquareHard alternating bands
160–200Drunk / RandomAnimated noise texture

hcool — Not Used

hcool has no visible role in Wave.

sparkd — Scroll Speed

Default: 10

This controls how fast the pattern moves along the blade.

ValueSpeedVisual Result
0FrozenNo movement, effectively static
5Very slowGentle drift
10DefaultBalanced scrolling
25ModerateClearly moving
50FastEnergetic travel
100MaximumVery rapid movement
Important: During clash the speed doubles. During lockup it triples.

sparkf — Frequency Multiplier

Default: 120

This controls how many wave cycles fit across the blade.

ValueApprox. MultiplierVisual Result
0One very wide wave cycle
40~5×A few large wave periods
80~10×Moderate density
120~15×Dense default pattern
20025×Maximum density

drift — Scroll Direction

Default: 0

This controls which way the wave travels.

drift=0    One direction
drift=1    Opposite direction

Unlike Gradient, drift does not flip the pattern shape. It changes the direction of travel.

Color & Modulation Controls

Wave uses direct color blending with percentage-based modulation, just like Gradient.

ecolor — Effect Color

This is the color the wave peaks blend toward.

ecolor=1023,1023,1023,0   # white
ecolor=0,800,1023,0       # cyan
ecolor=1023,400,0,0       # orange

On CFX, color channel values can go up to 1023.

mapb — Amplitude / Modulation Depth

Default: 50

This controls how strongly the wave swings between blade color and effect color.

ValueEffect
0No visible waveform, only the offset remains
50Half-strength default wave
100Full natural amplitude
150+Overdriven peaks, some clipping

mapc — Offset / Baseline Blend

Default: 50

This lifts the whole waveform upward toward ecolor.

ValueOffset AddedVisual Result
00Troughs stay at blade color
50~128Default, strong baseline blend
100255Blade stays fully effect-colored
Important: Just like Gradient, the default mapc=50 already adds a strong baseline shift. Set mapc=0 if you want the wave to drop back fully to the blade base color.

How mapb and mapc Work Together

mapb controls wave height. mapc controls where that wave sits. High mapb with low mapc gives strong moving contrast. Lower mapb with higher mapc gives a softer wave on top of an already effect-colored blade.

Audio Reactivity

mapping_unstable — Reactivity Source

Default: 1

mapping_unstable=0 — None

The scrolling pattern is fixed except for its normal motion. No audio changes are applied.

mapping_unstable=1 — Audio

Audio adds two kinds of response:

  1. Speed and frequency boost — louder sounds make the wave move faster and become denser
  2. Per-pixel audio overlay — louder sounds add more blend toward ecolor

This makes the blade feel more alive during hum peaks, swings, clashes, and lockups.

Refresh Rate

refreshfx — Effect Refresh Interval

Default: 12 ms

This strongly affects the perceived motion speed because Wave advances by a set amount each frame. Lower values feel faster and smoother. Higher values feel slower and heavier.

ValueCharacter
8Fast, fluid scrolling
12Balanced default motion
20Slower, more deliberate wave travel
30+Heavy, measured motion

Wave vs. Gradient vs. Chainsaw

Gradient is the static version. It gives you a color structure without movement.

Wave is Gradient with motion. It is great for clean, smooth scrolling energy.

Chainsaw is the rougher cousin. It is better when you want harsher teeth, more mechanical banding, or a more aggressive feel.

Putting It All Together: Recipes

Recipe 1: Classic Scrolling Sine

The clean signature Wave look.

unstable=8
lcool=90
sparkd=15
sparkf=60
drift=0
mapb=100
mapc=0
mapping_unstable=1
ecolor=1023,1023,1023,0

Recipe 2: Slow Triangle Pulse

Gentle rolling triangle waves for a soft rhythmic blade.

unstable=8
lcool=50
sparkd=5
sparkf=20
drift=0
mapb=80
mapc=20
mapping_unstable=1
ecolor=800,600,1023,0
refreshfx=18

Recipe 3: Fast Scrolling Stripes

Square wave for bold marching bands.

unstable=8
lcool=140
sparkd=20
sparkf=40
drift=0
mapb=100
mapc=0
mapping_unstable=0
ecolor=1023,0,0,0

Recipe 4: Dense Energy Ripple

A fast, dense ripple with lots of energy.

unstable=8
lcool=95
sparkd=30
sparkf=150
drift=0
mapb=120
mapc=10
mapping_unstable=1
ecolor=0,800,1023,0
refreshfx=10

Recipe 5: Bidirectional Wave for Two Strips

Run opposite directions on dual-strip blades for a richer layered effect.

Main strip:

unstable=8
lcool=90
sparkd=12
sparkf=50
drift=0
mapb=100
mapc=0
ecolor=400,600,1023,0

Aux strip:

unstable=8
lcool=90
sparkd=12
sparkf=50
drift=1
mapb=100
mapc=0
ecolor=400,600,1023,0

Recipe 6: Subtle Undertow

A mostly effect-colored blade with a gentle moving oscillation underneath.

unstable=8
lcool=85
sparkd=8
sparkf=30
drift=0
mapb=30
mapc=70
mapping_unstable=1
ecolor=1023,800,600,0
refreshfx=20

Recipe 7: Sawtooth Ratchet

An asymmetric wave that feels like pulses being ratcheted along the blade.

unstable=8
lcool=10
sparkd=18
sparkf=70
drift=0
mapb=100
mapc=0
mapping_unstable=1
ecolor=1023,1023,1023,0

Quick Reference Card

KeyWave RoleDefaultRange / Notes
unstableEffect mode00–18
lcoolWaveform shape200–39 Saw, 40–79 Triangle, 80–119 Sine, 120–159 Square, 160–200 Drunk
hcoolNot used70
sparkdScroll speed100–100; clash ×2, lockup ×3
sparkfFrequency multiplier1200–200; up to 25× density
driftScroll direction00 = one way, 1 = opposite
mapbAmplitude, percentage-based500–255; values above 100 overdrive
mapcOffset, percentage-based500–255
ecolorTarget blend color0–1023 per channel
mapping_unstableAudio reactivity10 or 1
refreshfxRefresh interval in ms121–255

Tuning Tips

  1. Wave is Gradient with motion. If you like a Gradient setup, copy most of it and add sparkd for scrolling.
  2. Watch the default mapc=50. It already adds a strong baseline blend.
  3. sparkd=0 freezes the pattern. That is useful when you want to audition the static pattern before adding movement.
  4. Lockup speed boost is strong. Set your resting speed conservatively if you want lockup to stay readable.
  5. Sine with mapb=100 and mapc=0 is the cleanest starting point.
  6. Dual-strip blades benefit from opposite drift values.
  7. Very high sparkf makes the wave denser, but also less readable as a large visible pattern.