SAMPLER
◀
SHADER
SHADERS AND FX CHAINS
PARAMS
open
play
reverse
restart
loop
bounce
cam
front
rear
rot 0°
flip
mirror
blend
SPEED 1.00×
IN / OUT
BLEND normal 50%
GEN SHADER
FX SHADER
fx off
VIDEO
O open file
capture screen
F9 snap png
L camera
SPC play/pause
R reverse
flip V
rot 90°
0 in→out→clr
record
LFO
120.0 BPM
LFO 1
AMT
+0.50
OFS
0.00
SKW
0.50
CRV
0.50
4.0s
LFO 2
AMT
+0.30
OFS
0.00
SKW
0.50
CRV
0.50
8.0s
LFO 3
AMT
+0.30
OFS
0.00
SKW
0.50
CRV
0.50
16.0s
AUDIO INPUT
off
mic
vid
tab
file
BASS
MID
TRE
VOL
AUD AMT
+0.50
RELEASE
150ms
MIDI
MISC
F fullscreen
RST reset params
? help
P perf meter
I system info
DEF default
ZOOM 1.00× RES
RENDER CAP
DROP VIDEO

recured

live visual instrument
Plays video files, a camera or a screen capture through a chain of real-time shaders, or runs the shaders on their own. Any parameter can be moved by audio, LFOs, a tempo clock or MIDI. Records the output as video and can show it on a second screen.
Panel
◀ tabTap the tab at the bottom centre of the screen to open or close the control panel.
grip stripTap the grip at the top of the panel to close it. Drag it up or down to change the panel height.
SHADERS AND FX CHAINSFolds away the preset bank and the GEN and FX rows, leaving PARAMS. Useful on a phone when you only want the sliders. The folded state is remembered.
PARAMS headerThe header above the sliders. It names what is selected and folds the sliders away. With the CLIP row selected it shows the clip's controls; with the CAM block selected, the camera's.
section headersEvery section heading folds its section. The arrow points down when open, right when closed. VIDEO, LFO, AUDIO INPUT, MIDI and MISC start closed. Which sections you fold is remembered. ZOOM, RES and RENDER CAP are in MISC.
modesThere is one mode. A loaded clip plays under the GEN and FX rows; the camera is a block (CAM) in the GEN row. With neither, the shaders run on their own. The title at the top of the panel shows what is on screen: CLIP n, CLIPS, CAMERA, a clip + CAMERA, or SHADERS. Where this help says "in SAMPLER" it means a clip is loaded; "in SHADER" means none is.
RNDRandomise. Fills the GEN and FX rows with different shaders and effects, randomises their params, blend modes and amounts, the three LFOs and some LFO bindings. The first shader is always normal blend at full amount. If the CAM block is on it stays in box 0 and the first shader is set to screen. With clips loaded it also fills the eight sequencer steps.
ZOOMScales the canvas output. In MISC. Tap 1:1 to reset.
RESRender scale: ½, ¾ or 1× of the display resolution. In MISC. Lower it first if a long chain drops frames.
RENDER CAPA fixed limit on the internal render size: off, 1080 or 4K. In MISC. Default 4K. Unlike RES it does not depend on the display size, so it stops large displays rendering more pixels than needed. Saved per device, not in presets.
resolution readoutThe render size actually in use, after RES and RENDER CAP. A ▼ means the cap is reducing it.
param slidersThe slider area scrolls separately from the rest of the panel.
Signal flow strip
GEN rowThe generative chain, as eight boxes. A block stays in the box you put it in; empty boxes are skipped. Boxes run left to right in drawing order. Hover a block for its full name; click it to show its params. The selected clip, if any, is drawn first, underneath the whole row. The camera is a block in this row (CAM); shaders before it sit under the camera, shaders after it on top.
FX rowThe effects chain, on eight boxes like the GEN row. Effects apply left to right, each to the result of the one before.
drag to reorderDrag a block to another box to move it. If the box is occupied the two blocks swap. Nothing else moves.
drag from gridDrag a GEN or FX button from the grid onto a box. An empty box takes it; a filled box is replaced. The same GEN can be added more than once; each copy gets its own random seed.
double-clickDouble-click a block to bypass it (shown dimmed and struck through). Double-click again to turn it back on.
top rowThe row above the clip row: RND, SEQ, SRC and the camera toggle, then BANK, OVR and CLR. The rows below it follow the signal: clips, then GEN, then FX, then saved presets.
preset rowOne block per saved preset, under the FX row; the loaded one is lit. Click a block to load it immediately. [ and ] step back and forward. Eight fit on a page; after that the row pages.
BANKShows BANK1, BANK2 and so on once there are more than eight presets. Click to go to the next page. Saving, loading or stepping moves to the page with the loaded preset.
NEWStarts a fresh patch. It asks first: SAVE… saves the current patch then starts fresh, DISCARD starts fresh straight away, CANCEL does nothing. Clips, camera, sequence, orientation and playback settings are kept. With a clip loaded, the new GEN chain starts bypassed so the clip stays visible.
HELPOpens this help. Same as ? on the keyboard.
OVROverwrites a saved preset with the current patch, keeping its name. Tap OVR, tap the preset to replace, then tap it again to write. Tapping a different preset changes the target. Escape or tapping OVR again cancels.
CLRDeletes presets. With a preset lit in the bank row, CLR (magenta) deletes that one. With none lit, CLR (red) deletes all of them: tap once to arm, again to confirm; Escape cancels. There is no undo. Use EXPORT BANK in the SAVE dialog to keep a backup.
what a jump restoresLoading a preset restores everything it saved except which clips are loaded and the camera, which stay as they are.
drag off stripDrag a block off the strip and release to remove it. Its box is left empty. The last GEN shader cannot be removed.
empty boxClick an empty box to select it, then click a shader or effect in the grid to put it there. This is the easiest way to build a chain on a phone.
Source
SAMPLERWhile a clip is loaded, the selected clip plays under the GEN row and the shaders are drawn over it in box order. A shader at normal blend and full amount covers it, so use screen or add, or lower the amount. The clip's controls (open, play, reverse, restart, loop, bounce, rotate, flip, mirror, speed, in/out) are under PARAMS when the CLIP row is selected. Loading or switching clips does not change the GEN or FX rows.
SHADERWith no clip loaded the shaders run on their own, with the camera in the chain if its CAM block is on.
ENTERShows the clip alone, or the shaders over it: bypasses every shader, or turns them all back on. The CAM block is not affected. Needs a clip loaded.
Clips
open fileBrowse for a video file. mp4, webm, mov and most common formats work.
drag & dropDrop a video file onto the canvas to load it.
capture screenUses a screen or window as a live source; the browser asks for permission. It replaces the playing clip until the capture ends, then that clip comes back. snap png, beside it, saves a still of the output instead.
SPACE / RSPACE plays or pauses forwards. R plays or pauses backwards.
in/out pointsThe in→out→clr button, or the 0 key: first press sets the in-point, second the out-point, third clears both. The clip loops between them.
flip V / rot 90°Flip the video vertically, or rotate it 90° (cycles 0, 90, 180, 270).
GEN shaders
tap GEN buttonPuts that shader in the selected GEN box, replacing what was there. The box keeps its blend mode and amount; the params start at their defaults.
removeDrag a block off the strip to remove it. Tapping in the grid never removes. Keys 4–9 also add and remove.
drag to stripDrag a GEN button onto the strip to place it in a particular box.
multi-layer blendEach GEN block has a BLEND row at the top of its params: drag to set the amount, tap the mode to change it.
4 – 9Toggle the first six GEN shaders: plasma, kaleidoscope, tunnel, flowing-colours, hypnotic-rings, squarewaves. The others are in the grid only.
style slidersplasma, flowing-colours and zoom-clouds have a style selector with eight variants and extra shaping params. Style 0 with those params at 0 is the original look.
plasmaInterference pattern generator. speed, scale, warp and palette as named. style picks one of eight types: classic, fractal, warped, ridged, marble, ripples, julia (a fractal; scale zooms it; the most expensive style) and flow. detail sets the number of fractal layers (not used by classic). contrast pushes the pattern toward hard bands. fold adds mirror symmetry. drift moves the pattern slowly around the frame.
flowing-coloursSoft moving colour field. speed, detail, warp, hue and zoom as named. style picks one of eight types: classic, layered, warped, veins, contour, vortex, moire and liquid. layers adds depth (not used by classic; costs more). contrast widens the flat saturated areas. fold adds mirror symmetry. steady stops the pattern periodically fading to flat. vivid boosts saturation.
zoom-cloudsCloud pattern. speed, detail, warp, hue and zoom as named. style picks one of eight types: classic, billow, wispy, marble, ridged, storm, contour and streaks. contrast recovers washed-out highlights and adds definition. rough makes the clouds grainier. relief adds fake lighting for depth. drift makes the layers slide past each other. palette blends from the default blue-cream colours to a full colour palette.
voronoiCell pattern. density sets the number of cells, speed the motion, edge the softness of cell borders, palette the colours. mode: cells, borders, mosaic or particles. size and glow draw a dot and halo at each cell centre. swarm makes neighbouring cells move together. warp bends the grid.
squarewavesWave pattern. amplitude, wavetype, frequency, hue, zoom, softness and rotation as named. detail adds layers and a motion trail. warp bends the waves. fold adds symmetry. relief adds fake lighting. audio brightens columns with the live audio spectrum (needs audio input). High detail is expensive.
oscilloscopeAudio waveform display (needs audio input). style: line, filled, mirrored, bars or radial. thickness sets line width, scale and gain the size and sensitivity, hue the colour. persistence leaves a fading trail. outline edges the filled styles. glow adds a halo. brightness lifts the background. Use add blend to lay it over other layers.
kaleidoscopeMirrored radial pattern generated from its own waves (it does not use video; the mirror and kaleido-warp effects do). sides: 3 to 12 segments. spin rotates it; the middle of the slider is still. zoom scales the pattern, palette picks the colours.
tunnelRings and segments rushing toward you. speed sets travel speed, segs the number of segments around, twist twists them into a spiral. zoom and palette as usual.
hypnotic-ringsThree sets of rings, one per colour channel, from moving centres. speed drives the movement, freq the ring spacing, orbit how far the centres move, hue shifts the colour, zoom scales it. softness goes from hard bands to smooth gradients. wavetype changes the ring shape from sine to triangle to sawtooth. drift adds extra wandering so the pattern does not repeat.
starfieldTwo star emitters. stars sets how many (up to 500). e1-speed and e2-speed: above the middle stars fly outward, below it inward. e1-trail and e2-trail stretch stars into streaks. e1-size and e2-size set the star size. e2-x and e2-y move the second emitter; the first stays centred. palette and zoom apply to both.
gamma-rayRandom particle noise, new every frame. density sets how many particles, brightness how bright, size their size (1 to 6 pixels). colour at 0 is white; raising it moves through green, blue and red. Use add or screen blend over video.
wavesSimple sine bands, the cheapest generator. frequency sets band spacing, speed the movement, count the number of layers, palette the colours, zoom the scale. Good as a base layer when the frame rate is tight.
maze-flightFlight through an endless maze whose walls contain smaller mazes. speed sets flight speed (0 stops). fov sets lens width. turns sets how much the path wanders. width and density set corridor size and how many walls are open. detail adds the smaller maze levels and is the main performance control. glow, circuits and windows add different lighting to the walls. hue, saturation and fog set colour and haze. It does not use video; over a clip or the camera use screen or add blend.
quaternionA rotating 3D fractal object. form picks the basic shape. slice changes which cross-section of the 4D shape you see. morph makes the shape move slowly (0 holds it still). detail adds surface detail and costs performance. spin orbits the camera (the middle of the slider is still), tilt raises or lowers the view, zoom moves the camera in, and at the top it goes inside the object. speed drives morph and tumble. hue, palette, glow and shade set the colouring. The background is black, so use screen or add blend over video.
mandelboxA folded, architectural 3D fractal. scale changes it from chunky to lacy. fold changes the shape without changing its size on screen. morph makes it move slowly (0 holds it still). detail adds detail and costs performance. spin, tilt and zoom move the camera; at the top of zoom the camera is inside. speed drives morph and tumble. hue, palette, glow and shade set the colouring. The background is black, so use screen or add blend over video.
emitterParticles thrown out from a point. shape picks one of fifteen shapes, alternating flat and solid (dot, sphere, square, cube, tri, tetra, star, dodeca, ring, torus, cross, jack, diamond, octa, spark). Shapes face their direction of travel. origin-x and origin-y place the emitter. count is how many particles exist at once (8 to 512). rate is how many are emitted per second (0.25 to 250). A particle lives count ÷ rate seconds. reach is how far particles travel. size-start and size-end set the size at birth and death; below the middle of the slider the size is negative, which flips the shape. spin rotates particles over their life (middle is none). tumble gives each particle its own random rotation. depth turns it into a starfield: particles come from a distant point toward the viewer, growing as they approach. opacity, glow, hue-start and hue-end set the look; particles change from the start hue to the end hue over their life.
cameraThe camera as a layer in the GEN row, shown as CAM. Add it with L, the CAM block on the CLIP row, the camera icon, shift+9, or camera in the GEN grid. It works like any GEN block: move it, bypass it, set its blend and amount. Shaders in earlier boxes are drawn under it, later ones on top. Its params are camera on/off, front/rear camera, and rotate, flip and mirror (separate from the clips'). If the camera cannot start, the CAM block is bypassed. RETRY, L or the CAM controls turn it back on.
clipA clip as a layer in the GEN row, shown as CL1 to CL8. Drag a clip from the CLIP row onto a GEN box, or pick clip in the GEN grid. The clip param picks which clip slot it plays. Each clip layer loops between that clip's in and out points at its own speed, so several clips can play at once. It uses the clip's blend mode and amount (set with the clip selected). If the selected clip is also a live clip layer, it is drawn only at its box. Clip layers always play forwards.
FX shaders
tap FX buttonPuts that effect in the selected FX box (or box 1 if the row is empty), replacing what was there. Only one feedback slot is allowed. Remove effects by dragging them off the strip.
drag to stripDrag an FX button onto the FX row to place it in a particular box.
fx blend + mixEach FX block has a BLEND row. mix sets how much of the effect is used: 1 is the full effect, 0 is the unchanged input. The blend mode sets how the effect is combined with its own input. feedback is different; see its entry.
fx off btnRemoves every effect and its settings. Not undoable. To turn an effect off temporarily, double-click its block instead.
bitcrush 1-bitTurn on 1-bit in bitcrush to reduce the image to on or off by brightness. hue sets the "on" colour, threshold the cut-off.
asciiTurns the image into coloured text characters. char-size sets character size. invert swaps light and dark. mix blends with the original. variation adds randomness so flat areas use different characters. charset: all, ascii, ascii+katakana, katakana or CJK. rate sets how often characters change.
halftoneColour halftone: each colour channel is a grid of dots. R-angle, G-angle and B-angle set each grid's angle; R-size, G-size and B-size set its dot size. mix blends with the original.
levelsTone curve with five points: blacks, shadows, midtones, highlights, whites. Drag a point up or down on the curve display. Each point can be modulated like any param.
sample-holdFreezes the frame at random intervals. rate sets how often a new frame is taken. Effects after it keep running on the frozen frame. Each sample-hold slot works independently.
glitchDigital glitch. intensity shifts horizontal slices. rate sets how often the glitch changes. channel splits the colour channels. slices sets the number of bands. variation groups and stretches slices. blocks adds block corruption like a broken video stream. noise adds block drop-outs and colour errors. crush reduces the number of colours. wave adds a horizontal wobble. chaos makes it irregular: calm and heavy stretches, and random strength on each hit.
feature-dots (retired)No longer available; replaced by flow-dots. Old patches that used it still load, but the slot passes its input through unchanged.
scatterCuts the frame into a grid and rearranges the cells. grid sets the number of cells. shuffle sets how far cells move, amount how many move. pixelate flattens each cell. rate re-arranges them over time (0 holds still). seam darkens the cell borders. mode: scatter, swap, rows, columns or spin. stagger makes cells change at different times (only with rate above 0).
feedbackTrails. It keeps a history and mixes each new frame into it. place: top (default) runs it after the whole FX chain; in place runs it at its own position, so later effects process the trails. Several feedback slots each keep their own trail. blend sets where the blend mode applies: loop mixes it into the trail itself, output applies it when the trail is laid over the picture. inject sets how strongly each new frame goes into the trail. decay sets the trail length. spread blurs the trail as it ages (keep it low). zoom and rotate move the trail each frame so echoes separate; centre-x and centre-y set the centre point. trail picks the ageing style: plain, cycle (colour shifts), edge (outlines only), crisp (separate echoes) or ember (fades through red).
flow-dotsDots that sit on image features, move with the motion in the picture, and respawn. pitch sets dot spacing, dot-size their size, jitter how far they stray. sensitivity sets how easily features are detected. gamma evens out strong and weak features; lower it to get dots on faces and other low-contrast areas. detect chooses corners (0), all edges (0.5) or the opposite of features (1). flow sets how closely dots follow the motion. life sets how long a dot lasts. fall moves all dots in one of eight directions; fall-speed sets how fast. tint mixes from the picture's colour to a drifting palette colour. link draws lines between neighbouring dots (0 is off). The dots are on black; use screen or add blend. Needs float render targets (see the I overlay).
traceGlowing edges that follow motion. It draws the edges of its input and keeps a fading history that moves with the picture, so moving things leave trails. threshold: how strong an edge must be to draw. width: line thickness. detail: fine detail (1) or only large shapes (0). adapt and lift bring out low-contrast detail such as faces: adapt compares each edge to its surroundings, lift boosts weak edges. If flat areas start to sparkle, raise threshold. trail: how long the history lasts (0 is edges only). follow: how far trails move with the motion. smoke: horizontal edges give off smoke that rises and fades. glow: bloom around lines. brightness: line brightness. tint: from the picture's colour to the hue colour. hue-drift: older trails change colour. source: how much of the original picture shows under the lines. invert: dark lines on white. Needs float render targets.
mirrorMirrors the frame. axes picks which axes, rotation turns the mirror line, centre-x and centre-y move it.
invertInverts colour channels. R-invert, G-invert and B-invert each invert one channel; all three give a negative. amount sets the strength.
bitcrushPixelates and reduces colours. block-size sets the pixel size (1 to 512 px). color-depth sets the number of colour steps. gap draws lines between blocks. mix blends with the original. Large blocks flicker on moving footage because each block takes the colour of one pixel. See bitcrush 1-bit for the threshold mode.
grainFilm and tape texture. scanlines darkens alternate rows. noise adds grain. luma-crush reduces brightness levels. speed sets how fast the grain changes (low is a fixed pattern, high is live static).
wobbleWavy distortion. X-amp and X-freq set the horizontal wave, Y-amp and Y-freq the vertical one.
vhsVHS tape look. chroma separates colour, scanlines darkens alternate lines, noise adds grain, tracking shifts lines sideways. Also slightly desaturates and warms the image.
posterizeReduces the number of colours. levels: 2 to 16 per channel. contrast sharpens the steps. tint-hue shifts the colours (middle is none). mix blends with the original.
colorizerRecolours the image by brightness and scrolls the colours over time. bands sets how many times the colours repeat, speed the scroll speed, spread the saturation, mix the strength. Gives smooth gradients; hue-cycle gives flat bands.
hue-cycleLike colorizer, but in flat bands: brightness is split into steps, each with its own colour. bands sets the number of steps, speed the scroll speed; saturation and amount as usual.
hsv-shiftAdjusts hue, saturation and brightness. hue rotates colours (middle is none). saturation and value scale colour and brightness. amount sets the strength.
kaleido-warpFolds the video into mirrored wedges. sectors: 2 to 16. spin rotates it (middle is still). centre-x and centre-y move the centre.
rotate-zoomRotates and zooms the image. spin: one full turn across the slider (middle is none). zoom: 0.1× to 4×. centre-x and centre-y set the pivot. Edges repeat the border pixels.
zoom-fxZoom with movement. zoom sets the zoom (0.25× to 3×) about centre-x and centre-y. pulse adds a repeating movement; shape picks sine, kick, square or ramp. rotate turns the picture (middle is none). blur adds radial streaks. travel is an endless zoom: right of the middle zooms in, left zooms out. Keep zoom above about 0.45 on the slider when using travel or rotation to avoid showing repeated edge pixels.
Parameters
param sliderDrag sideways to change the value. Tap a row to select it. Some params are on/off toggles; tap to switch.
pattern centringGrid-based effects (bitcrush, ascii, halftone, flow-dots) measure their grid from the centre of the frame, so changing the cell size scales around the middle.
clip slotsThere are eight clip slots, shown on the CLIP row. Tap the CLIP label to open files (they fill from the first empty slot). Tap a loaded clip to select it and show its controls under PARAMS; tap an empty one to load a file into it. The selected clip plays under the GEN row using its BLEND and AMOUNT. Drag a clip onto a GEN box to add it as a clip layer (the target box is outlined in cyan). Double-click a clip to mute it (shown struck through); double-click again to unmute. MUTE mutes or unmutes every loaded clip. CAM turns the camera on or off (shift+9). shift+1 to shift+8 select a slot; ; and ' step to the previous and next loaded clip. Shift-drop a file to load it into the next empty slot. Each slot keeps its own in/out points, speed, loop, bounce, direction and position. Clips are not saved in presets or share links. The two blocks at the end of the row set clip changes: the first is the crossfade length (CUT, or 0.25 to 4 seconds), the second the blend mode used during the fade. A fade is shortened if either clip is shorter than it. Fade settings are saved in presets.
sequencerThe STEPS row is an eight-step sequence of clip slots. Drag a clip onto a step to fill it; drag a step to another to swap them, or off the row to clear it. A slot can be used in several steps. SEQ starts and stops the sequence; tapping a step starts or jumps to it. Each step plays its clip once between its in and out points, at its speed and direction, then moves on. The CAM block can also be dragged in: a camera step runs for a set time shown on the step (tap it to change: 2, 4, 8, 15, 30 or 60 seconds). With a crossfade length set, steps fade into each other. Selecting a clip by hand, tapping CAM or loading a file stops the sequence. PAUSE pauses it. Steps are saved in presets only when remember clip names & sequence is ticked in the SAVE dialog.
snapping slidersSome params snap to fixed positions (for example style, sides, sectors, charset, mode, fall, trail). The row shows the position number. Two-position params (invert on ascii, 1-bit on bitcrush) are shown as on/off toggles. All of them can still be modulated.
audio badgeTap the audio badge to cycle: none, bass, mid, treble, volume. The chosen band moves the param, scaled by AUD AMT and the row's influence.
LFO badgeTap the LFO badge to cycle: L1, L2, L3, none. The influence number sets how much of it applies. Audio and LFO add together.
MIDI badgeTap the MIDI badge to bind a MIDI control; see the MIDI section. MIDI sets the base value and audio and LFO add to it.
influenceThe number at the right of each param row, 0 to 100. Drag it up or down. It scales everything moving that param (LFO, audio and MIDI): 100 is full, 0 means only the slider value is used.
1 / 2 / 3Keyboard: next param, decrease, increase.
BKSPKeyboard: switch between the GEN and FX rows.
LFOs
3 LFOsThree LFOs, each with shape, AMT and period. A bound param moves up and down around its slider value.
shapesFive shapes: sine, triangle, ramp, square, and sample-and-hold (stepped random).
SKWSkew. Changes the timing of the wave without changing its range. 0.5 is symmetrical. Higher values spend more of each cycle on the first half.
CRVCurve. 0.5 is linear. Lower values stay near the centre and flick out to the peaks; higher values stay near the peaks.
previewThe small wave display shows how far a bound param moves around its slider, with skew and curve applied.
AMTDepth, from −1 to +1 (middle is 0). A bound param moves AMT either side of its slider, scaled by its influence. Negative values invert the wave. 0 stops movement without unbinding. The movement stops at 0 and 1.
OFSPhase offset, 0 to 1 of a cycle. Use it to offset LFOs that share a period; SYNC keeps the offset.
SEC modePeriod in seconds (0.1 to 30).
BPM modeTap SEC to switch to BPM: the period becomes a musical division of the tempo (1/8 to 16 beats).
TAPTap repeatedly to set the tempo. Uses up to eight taps; resets after a 3-second gap. Changing tempo does not make bound params jump.
SYNCCopies LFO 1's period and mode to LFOs 2 and 3 and restarts all three together.
assign to paramTap the LFO badge on a param row to cycle L1, L2, L3, none.
yellow tickWhen a param is being moved by an LFO, audio or MIDI, a yellow tick shows its actual value; the bar shows your slider setting.
device pickerChoose your MIDI device from the list. The dot turns green when connected. Any class-compliant USB or Bluetooth MIDI device works.
channelThe MIDI channel to listen on (1 to 16), or All.
MIDI badgeTap a row's MIDI badge to learn a control. Type a CC number (0 to 127), or N for note pitch, and press Enter, or move a control or play a key on your device.
note pitchA row bound to N follows the last note played: C2 (36) is 0, C6 (84) is 1. The value holds after the key is released. Velocity is ignored.
bound badgeShows the bound CC (for example C7) or N. Tap again to rebind. Escape or clicking outside cancels.
stackingA bound MIDI control sets the value; LFO and audio add to it. The result stays between 0 and 1. Influence scales all of it.
persistenceMIDI bindings are saved in presets and share links.
Audio modulation
off / mic / vid / tab / fileAudio source. mic: the microphone. vid: the selected clip's soundtrack (analysed only, not played). tab: another browser tab's audio. file: an audio file you choose, which plays aloud and loops; tap file again to change it. With export audio set to source, the chosen audio is recorded with the video.
tab audio, by browserTab audio only works in Chrome, Edge and Opera. Tick Share tab audio in the picker. Firefox and Safari cannot capture tab audio; use mic or vid there.
if a source will not startThe toast shows why, and the console has details. If the browser was told to block the microphone once, it will not ask again; allow it from the padlock in the address bar.
audio suspendedThe browser sometimes starts audio paused. The AUDIO line turns amber and says suspended; tap or press a key anywhere to start it.
vid, by browser and by transportvid does not work in Safari or on iOS. It only produces audio while the clip plays forwards; reverse and bounce are silent. It follows clip changes and hears both clips during a crossfade. Screen capture has no vid audio.
nothing is movingThe status line above the meters shows the audio source, and suspended if the browser has paused it (tap anywhere). If a source fails, the toast says why.
BASS / MID / TRE / VOLThe four audio signals. BASS is 20 to 250 Hz, MID 250 Hz to 4 kHz, TRE 4 to 16 kHz, VOL is overall loudness. Each is scaled to its own recent range (about four seconds), so quiet and loud inputs both use the full range, and a steady tone fades toward zero. Very quiet input reads as zero.
AUD AMTHow far the chosen audio band moves a param, from −1 to +1. Right of the middle pushes the param up on each hit, left pushes it down. The slider value is where the param sits in silence. Influence scales the result.
RELEASEHow quickly a band falls back after a hit, 10 ms to 4 s (default about 150 ms). Short gives flicker, long gives smooth swells. Applies to all four bands.
on the projectionThe output window uses the same param values as the control window every frame, including audio, LFO and MIDI movement, so it needs no audio or MIDI of its own.
Blend modes
stack orderThe selected clip, if one is loaded, is at the bottom. The GEN row is drawn over it from box 1 to box 8. The camera (CAM) and clip layers (CL1 to CL8) are boxes in the GEN row: blocks before them are underneath, blocks after them are on top.
blend rowThe BLEND row at the top of a GEN block's params. Drag to set how strongly it mixes onto the layers below. At 0 the block is skipped (except the first block drawn onto black).
mode labelTap the mode name to cycle: normal, add, screen, multiply, difference, lighten, darken, overlay, dodge, burn.
FX blend rowFX blocks have the same BLEND and amount rows, but mix the effect with its own input. At 0 the effect is skipped, except feedback and sample-hold, which keep running.
normal vs the restnormal at mix 1.00 costs nothing extra. Any other mode, or a lower mix, adds a blend pass.
◉ CAMThe camera button on the row above the clips turns the camera on or off (as the CAM block in the GEN row). The camera stays open while a CAM block is on or the sequencer has a camera step. When nothing needs it, it is released after about eight seconds.
Clip and camera controls
appears automaticallyThe clip's controls show under PARAMS when the CLIP row is selected; the camera's when the CAM block is selected. Loading a clip or turning the camera on selects it.
SAMPLER transportThe clip controls: open, play/pause, reverse, restart, loop and bounce, then rotate, flip, mirror and the blend toggle. Below them, SPEED and IN / OUT. On the IN / OUT track the two markers are the in and out points, the cyan tick is the playhead, and the number is the length.
play from a dead spotIf the playhead is outside the in/out range, play starts from the in-point.
SAMPLER: restartJumps to the in-point (or the start) and plays.
SAMPLER: open file…Opens the file picker. Same as the O key.
SAMPLER: SPEEDPlayback speed from ¼× to 4×, with 1× in the middle. It snaps to common values (¼, ⅓, ½, ¾, 1, 1¼, 1½, 2, 3, 4). Double-click for 1×. Also applies to reverse and bounce.
SAMPLER: LOOPOn (default): starts again from the in-point at the out-point. Off: stops at the out-point.
SAMPLER: PING-PONGPlays forward to the out-point, then backward to the in-point, repeatedly. Overrides LOOP.
IN / OUT previewWhile dragging an in or out marker the picture shows that frame. Playback continues when you let go.
SAMPLER: IN / OUTDrag the left marker to set the in-point and the right marker to set the out-point; playback loops between them. Drag a marker to the end to clear it; clr clears both. Same points as the 0 key sets.
SRC iconsThe camera buttons (on/off, front, rear) show with the CAM block selected; the transport buttons with a clip selected. Rotate, flip and mirror apply to whichever is selected, so the camera and clips keep separate settings. The camera's settings are remembered on this device; the clips' are saved in presets. A camera used for the first time starts upright, mirrored if it is a front camera.
FACINGSwitches between front and rear camera. On devices without a touch screen the buttons are dimmed.
rotate / flip / mirrorRotate 90° at a time (the caption shows the angle), flip vertically, mirror horizontally.
blend toggleWith a clip or the camera showing: either the source alone, or all shaders over it. For individual blocks, double-click them in the strip instead.
Export video
recordIn the VIDEO section. Press to set up and start a recording. While recording the button shows progress; press again to stop early. The file keeps what was recorded.
export sizeThe size to record at, regardless of window size and render settings. Screen: 720p, 1080p, 4K. Social: 1080×1920 vertical, 1080×1350, 1080×1080, 1920×1080. Or as displayed. During recording the preview changes to the recording's shape and resolution.
framingWhat happens when the recording shape differs from the screen shape. fit (default): the whole picture with bars. fill: fills the frame and crops. reframe: renders directly at the recording's shape. The line below shows how much is cropped or barred, and the render size.
will it keep upThe line below the export settings estimates the frame rate the recording will hold, based on how this device is currently performing, and warns if it will stutter. A recording that cannot keep up comes out the right length but with repeated frames.
export qualitydraft 5, good 10, high 25 or max 50 Mbps. The line below shows the size, frame rate and estimated file size, and warns if the bitrate is low for the size.
export lengthRecording length in seconds, 1 to 120. The estimate updates as you type.
export audiooff (default), source (records the current audio input: mic, tab or the clip's soundtrack) or mic (opens a microphone just for the recording).
audio and the fileWith audio, mp4 uses aac and webm uses opus, at 256 kbps. Audio is captured in stereo with processing off. If the audio cannot start, the recording continues without it and a toast says why.
record btnOpens the filename dialog; enter a name and press record. Press again to stop early.
save dialogSAVE opens the save or share sheet. DISCARD deletes the recording.
formatSaves as mp4 where supported, otherwise webm. Both can be loaded back as clips.
iOS tipIf the save sheet does not appear on iOS, use the built-in Screen Recording instead.
snap pngSaves the current frame as a PNG, at the export size. F9 does the same. Not available while recording.
Projection / dual screen (CAST)
CAST buttonOpens a second window showing only the output, with no controls or messages. Put it on a projector or second screen; Chrome opens it on the other screen. Click it to fill the screen.
● CAST indicatorPulses cyan while an output window is connected. All changes are sent to it automatically.
fullscreenClicking the output window, or pressing M, sizes it to its screen as a normal window. F is true fullscreen, which removes the title bar. On macOS true fullscreen blanks other displays unless Displays have separate Spaces is on (System Settings, Desktop & Dock, Mission Control). In Chrome and Edge, CAST opens on the other screen; pressing CAST again moves it to the next screen. In Safari and Firefox, drag the window to the second screen first. The pointer hides after two seconds.
SAMPLER / LIVEThe output window cannot use the control window's video or camera. Load the same file or start the camera in the output window as well.
same machine onlyThe output window must be in the same browser on the same computer.
Diagnostics
P — perf meterShows frame rate, frame time, the slowest frame (peak), late frames, render size, source size, estimated GPU memory, and how many GEN and FX blocks are running. Amber above 16.8 ms, red above 33.3 ms.
mean vs peakThe mean can look fine while occasional slow frames (peak) cause visible stutter, so both are shown.
I — system infoShows the GPU, graphics backend, shader precision, texture limits, float render support, pixel ratio, screen and render size, and the loaded source. COPY copies it all.
mediump line10 bits means the GPU uses faster 16-bit maths for most shaders; 23 bits means 32-bit. Apple Silicon usually shows 10.
source lineResolution, length, estimated frame rate and file size of the loaded clip. A clip larger than the GPU's texture limit cannot be shown, and a message says so.
Save / Load / Share
SAVESaves the current state as a named preset in the browser: chains, params, LFOs and blend settings. The suggested name is the time and date; type over it if you like.
LOADLoads a saved preset from the list.
SHARECreates a link containing the full patch (chains, params, blend settings and modulation, not video files). Open it on any device to get the same patch. Links from versions 4 and 5 still open; older ones do not.
unplayable filesIf a file cannot be played, a message says why (unsupported format, decode error, network error or aborted).
RSTResets all shader and effect params to their defaults, keeping the chains.
EXPORT BANKIn the SAVE dialog. Saves every preset to one .json file (the name can be edited). Video files are not included.
bank autoloadA file named recured-bank.js in the same folder as recured.html is added to the bank when recured opens. EXPORT AUTOLOAD in the SAVE dialog creates it; move it next to recured.html. It adds presets and never replaces or duplicates them.
IMPORT BANKIn the LOAD dialog, or drag a .json file onto the window. Adds the presets in the file to the bank; existing presets are kept and duplicates are skipped.
presets and footageA preset saved with a clip loaded records the clip's file name and in/out points, not the file itself. If that clip is not loaded, a bar names it with LOCATE to find it; the shaders load either way. With remember clip names & sequence ticked in the SAVE dialog, the preset records all eight clip slots and the STEPS row. LOCATE accepts several files; FOLDER finds every matching clip in a folder.
locate onceA located file is remembered until you reload, so it is only asked for once. SKIP stops asking for missing files until reload.
in / out pointsSaved with the preset and restored when the clip is loaded.
why presets don't travelPresets are stored in the browser, not in the recured file. Use EXPORT BANK and IMPORT BANK to move them.
preset storageBrowser storage is limited to a few megabytes. If it is full, saving says so; delete some presets from the LOAD list. Private windows may not store presets.
DEFResets everything: clears the FX chain, leaves one GEN shader with default params, and clears blend and modulation settings.
Keyboard shortcuts
ENTERShows the clip alone, or the shaders over it. Needs a clip loaded.
FToggle fullscreen.
LCamera on or off, as the CAM block in the GEN row. On adds it at box 0 if needed and selects it.
OOpen a video file.
SPACEPlay or pause the clip.
RPlay backwards, or pause if already playing backwards. SPACE goes forwards again.
0With a clip loaded: set in-point, set out-point, clear. With no clip: select the next GEN block. Also a button in the VIDEO section.
4 – 9Toggle the first six GEN shaders.
− / +Toggle the previous or next FX slot.
/Clear the whole FX chain (same as the fx off button).
*Toggle the next FX slot (numpad * only).
.Toggle the feedback trail.
1 / 2 / 3Next param, decrease, increase.
[  ]Previous or next preset.
;  'Previous or next loaded clip.
shift 1–8Select clip slot 1 to 8.
shift 9Camera on or off (the CAM block on the CLIP row).
BKSPSwitch the params between the GEN and FX rows.
F9Save a PNG of the output at the export size.
ESCCloses the NEW dialog and cancels OVR or CLR. It does not close the help screen.
?Show or hide this help. Also the HELP button in the header and ? in MISC.
click to fill this screen  ·  F for true fullscreen
CC / N
WebGL2 not supported in this browser.

RECORDING COMPLETE

Camera Access

On most browsers: click the camera icon in the address bar, set to Allow, then reload.

Save Preset

⚠ Video files are not saved — only shader settings and parameters.
Bank — every saved preset in one file

New Patch

Save the current patch as a preset first?

Chains, params, modulation, LFOs and tempo go back to their defaults. Clips, camera, mode and playback settings stay as they are.

Load Preset

Share Link

All current settings are embedded in this URL. Video files are not included.