Overview
What is VKO1?
VKO1 is a professional visual performance app for Android. It plays your video clips, GIFs, images, and 3D models in sync with music. Designed for live performance, VKO1 delivers automated visual playback with precise BPM synchronization, 53 real-time effects, performance tape recording, and hardware controller support.
The Philosophy: Load your content, configure your performance, and let the app handle visual playback while you focus on your music.
8 Banks × 16 Pads
128 pads organized across banks A–H. Media added via MediaMesh3D nodes in the Node Editor — supports MP4, GIF, PNG, JPG, and OBJ.
BPM-Synced Playback
Tap tempo, manual entry, MIDI clock, Ableton Link, or real-time beat detection. Clips and effects animate on the beat.
53 Master Effects
GPU shaders (GLSL/Vulkan) for real-time processing. All BPM-synced with wet/dry control and custom color support.
Set It & Forget It
MIX auto-plays from all banks and rotates effects. MIX2 adds two-layer compositing with blend mode cycling. BLEND does the same compositing without touching your effects — fully hands-free.
Node Editor
Build custom reactive visuals with a visual graph editor. Wire generators, modifiers, and combiners together. React to BPM, audio energy, MIDI CC, and more. Full docs →
Store
Browse and download free and premium visual graphs from the built-in Store. Tap the bag icon in the top bar to open it. Drop any graph straight into your set.
Supported Devices: Android 12+ (API 31+)
Getting Started
Up and running
01
Load Content
Long-press any pad → Edit Graph. In the Node Editor tap + → Generators → MediaMesh3D. Then in the Inspector tap ADD IMAGE, ADD GIF, or ADD VIDEO to pick from your device. For OBJ models tap IMPORT OBJ.
02
Choose Mesh & Shape
In the MediaMesh3D inspector pick a mesh shape: Plane (flat screen-fill), Cube, Torus, Icosphere, Sphere, or Model (imported OBJ). The media plays on the chosen mesh.
03
Set Your Tempo
Tap the BPM display. Use tap tempo, manual entry, MIDI clock, or enable beat detection.
04
Add Effects & Auto-Play
Twist the Master Effect knob and pick an effect. Tap AUTO to cycle modes: SEQ, RND, SHF, MIX, MIX2, or BLEND for automated playback.
Adding a Visualizer
No media files needed — VKO1 includes 25 GPU-rendered visualizer types. Long-press an empty pad and tap "Add Visualizer" to browse types, pick a palette, and set reactivity. Visualizers respond to your audio, work with all effects and blend modes, and are included in Auto-Play rotation. See the Visualizers section for full details.
Note: On Android all media (video, GIF, image, OBJ) is loaded through a MediaMesh3D node in the Node Editor — not via folder import. Media files are copied into app-private storage on pick, so they are available offline.
Playback
Playing clips
Manual Mode
Tap any pad to play its clip. Tap another pad to switch.
Hold Mode
Tap HOLD to enable. Now tapping a pad toggles it on/off. Stack multiple clips as layers. Tap a playing pad again to remove it. Press CLEAR (or Escape) to release all.
Auto-Play Modes
Tap AUTO to cycle through modes:
SEQ
Sequential order within current bank (1, 2, 3, 4...)
RND
Smart random — avoids recently played clips
SHF
Pure shuffle within current bank
MIX
Auto-mix across all 8 banks with automatic effect changes. Prefers clips from different banks for maximum variety.
MIX2
Two-layer compositing mode. Keeps the previous clip as a base layer while bringing in a new clip on top. Automatically cycles blend modes on the upper layer at each trigger and rotates master effects. Prefers clips from different banks for variety. No HOLD required — the two-layer stack is managed automatically. When HOLD is active, held pads act as the fixed base and MIX2 cycles on top.
BLEND
Two-layer compositing mode — identical to MIX2 in how it stacks clips and cycles blend modes, but with one key difference: no master effect automation. Your effects stay exactly as you've set them. Every trigger brings a new clip on top of the previous base, and blend modes on the upper layer cycle automatically. Selects across all 8 banks. When HOLD is active, held pads act as the fixed base. Use BLEND when you want the evolving composite texture of MIX2 but need full control over your effects.
MIX2 & BLEND Settings: Open BPM Settings and scroll to AutoMix Options. Toggle Master Effect Automation (MIX2 only — BLEND never touches effects) and Blend Mode Automation independently. Blend mode automation fires at 40% probability per trigger and is skipped automatically under performance stress.
Time Division: Controls how often clips switch (1/16, 1/8, 1/4, 1/2, 1 bar, 2 bars, 3 bars, 4 bars). Adjust with DIV.
Organization
Using banks
8 banks (A-H) with 16 pads each = 128 total clips.
- Tap A through H to switch banks
- Swipe left/right on the pad grid to navigate
- Organize by mood, theme, or energy level
Example Setup:
A: Geometric
B: Nature
C: Glitch Art
D: Abstract
E: Typography
F: Organic
G: 3D Models
H: Retro
Controls
Touch gestures
| Gesture | Action |
| Tap pad | Play/switch to that clip |
| Long-press pad | Open pad menu (Edit Graph, settings, effects, MIDI learn, delete) |
| Swipe left/right | Navigate between banks A through H |
| Drag up/down on knob | Adjust effect intensity (dry/wet) |
| Long-press knob | Open effect picker |
| Long-press effect in picker | Add/remove from favorites, exclude from AutoMix |
| Tap < > arrows | Cycle through effects |
| Tap bank buttons | Switch banks directly |
| Tap BPM display | Open BPM & Sync settings |
| Drag pad to another pad | Move clip to new slot |
| Drag pad + hold on destination | Copy clip (duplicate with all settings) |
Pro Tip: Long-press is your friend! Almost any button or pad can be long-pressed for additional options or MIDI Learn.
Master Effects
53 real-time effects
All effects run as GPU shaders (GLSL/Vulkan) applied to the composited output of all active clips. Drag up/down on the MFX knob to control intensity (dry/wet). Every effect supports BPM sync — tap the metronome icon in the picker to set the division.
How to use: Long-press the MFX knob to open the picker. Tap an effect to assign it. Use < > arrows to cycle. Drag the knob vertically to adjust intensity. Long-press any effect in the picker for color settings, BPM division, favorites, and AutoMix exclusion.
Invert
Flips every pixel to its RGB complement — blacks become white, colors rotate to their opposite on the wheel. At partial intensity, blends between original and inverted image.
Color Shift
Rotates the hue of all pixels through the color spectrum. Intensity controls rotation speed; at BPM sync the full hue wheel cycles once per beat division.
Saturation
Boosts or crushes color saturation. Below 50% intensity moves toward grayscale; above 50% pushes toward hyper-vivid neon. Pulses rhythmically at BPM.
Brightness
Raises or lowers the overall luminance of the frame. Low values darken toward black; high values blow out to white. Use at low intensity for a subtle exposure pump.
Contrast
Expands or compresses the tonal range. High contrast crushes blacks and blows out highlights for a punchy, graphic look that pulses on the beat.
Posterize
Reduces the number of distinct color levels, creating flat poster-art bands of solid color. Intensity controls the step count from many gradients down to two harsh tones.
Bloom
Simulates lens glow by spreading bright areas outward. Lights and highlights radiate a soft halo. Works especially well on neon and backlit footage.
Thermal
Maps pixel luminance to a false-color heat palette (blue → green → yellow → red). Converts any footage to an infrared camera aesthetic.
Gradient Map color
Replaces luminance with a synthwave gradient ramp (deep purple → cyan). Dark areas map to cool colors, bright areas to warm highlights. Open the color picker in the effect menu to customize the ramp endpoints.
Pixelate
Chunks pixels into large blocks. Intensity controls block size from subtle lo-fi grain to coarse Minecraft-style squares. BPM sync pulses the block size on the beat.
Glitch
Simulates digital signal corruption: random horizontal slice offsets, RGB channel smearing, and noise bands. Looks like a dying VHS or corrupted video stream. Severity follows intensity.
RGB Split
Separates the red, green, and blue channels and offsets them horizontally in opposite directions. Creates the classic chromatic aberration prism-split look found in lo-fi and glitch aesthetics.
Displace
Uses an animated noise field to push pixels away from their original position. Creates a watery, displacement-mapped wobble. Intensity controls the displacement radius.
Datamosh
Simulates compression artifact glitches by smearing motion across the frame, as if I-frames were dropped from a video stream. Content bleeds and streaks with movement.
Wave Warp
Applies a sine-wave distortion horizontally and vertically. Intensity controls wave amplitude. With BPM sync, the waves ripple rhythmically on each beat for a pumping wobble.
Ripple
Radiates concentric sine-wave rings outward from the frame center, creating a pond-ripple displacement effect. Wave frequency and amplitude are BPM-synced; intensity controls displacement strength.
Pixel Sort
Sorts pixel columns by brightness within a luminance threshold, producing directional streaks of organized pixels. A signature glitch art technique that creates aurora-like vertical smears.
Sharpen
Amplifies high-frequency edges using an unsharp mask. Moderate intensity crisps footage; high intensity creates an over-sharpened, artificial digital artifact look.
Kaleidoscope
2-fold radial symmetry. Mirrors the source quadrant twice and rotates the segments around a center point. Creates a shifting mandala from any footage.
Kaleido 4
4-fold symmetry. A more intricate mandala pattern formed from four mirrored and rotated copies of the source quadrant. Ideal for symmetrical, graphic content.
Kaleido 6
6-fold symmetry. Produces a hexagonal snowflake structure. The six segments rotate in sync with BPM for a spinning kaleidoscope effect.
Kaleido 8
8-fold symmetry for maximum kaleidoscopic complexity. Works especially well on footage that already contains repeating patterns or high contrast geometry.
Mirror
Flips the left half of the frame onto the right (bilateral symmetry). Simple and effective — any footage with strong asymmetry becomes suddenly surreal.
Mirror Quad
Mirrors both horizontally and vertically simultaneously, creating four-way symmetry from a single source quadrant. More geometric and abstract than bilateral mirror.
Blur
Gaussian blur softens all detail by spreading each pixel across its neighbors. Intensity controls the blur radius. Use at low intensity for a dreamy soft look, high intensity for total abstraction.
DOF
Depth of field simulation. Blurs the edges of the frame with a radial falloff while keeping the center sharp, mimicking a shallow-focus cinema lens. Intensity controls the vignette radius.
Feedback
Feeds the output back into the input with each frame, creating growing geometric trails and tunnel-vision spirals. Iconic video synthesizer effect. Low intensity adds subtle trails; high intensity creates infinite recursive tunnels.
Echo Trails
Blends the current frame with a decayed copy of previous frames. Fast-moving content leaves comet-tail streaks. Intensity controls trail length and decay speed.
Ghosting
Overlays semi-transparent echoes of recent frames. Similar to Echo Trails but with opacity-based blending rather than additive. Great for slow panning footage and dreamy overlaps.
Strobe
Alternates between the live image and a frozen black frame on the beat division. Creates a strobe-light effect locked to your BPM. Use responsibly — avoid at high BPM in public venues.
Freeze
Locks a still frame of the current video output in place. With BPM sync enabled, creates a rhythmic freeze-release stutter: the image momentarily freezes on each beat, then snaps back to live playback.
Rotate
Continuously spins the entire frame around its center. Rotation speed is BPM-synced — one full revolution per beat division cycle. Intensity blends between stationary and fully rotating.
Scale
Rhythmically zooms in and out, creating a breathing, pumping effect. The zoom pulses on the beat. Intensity controls zoom depth from subtle push to aggressive slam-zoom.
Pinch
Applies an inward pinch warp radiating from the center, as if the image is being sucked into a lens. The warp pulses with BPM for a rhythmic vortex pull effect.
Spotlight
Fades the edges of the frame to black while preserving a circular center spotlight. Intensity controls spotlight radius, narrowing focus to a single bright point at full intensity.
Tile
Tiles the frame into a grid of smaller identical repetitions. Intensity controls the tile count — from 2×2 to a dense matrix. Creates a hypnotic mosaic of synchronized video tiles.
Fractal
Overlays an additive fractal noise texture onto the image. The noise pattern animates and evolves in real time, synced to BPM. Creates organic, ever-changing grain that complements any footage.
Perlin
Similar to Fractal but uses smooth Perlin noise, producing cloud-like wisps and fluid organic structures. Softer and more flowing than the fractal variant.
Plasma
Generates classic 90s-era plasma waves in vivid neon colors blended onto the image. Multiple sine-wave interference patterns cycle through hues synchronized with BPM.
Liquid
Applies complex multi-frequency warping to make the image appear to melt and flow. More extreme and chaotic than Wave Warp, with each layer of warp moving at different rates.
Vorticella
Generates animated vortex and spiral patterns overlaid on the image. Named after the spiral-stalked protozoa. The spiral arms spin at a rate locked to BPM division.
Solarize
Inverts pixels above a luminance threshold, creating a partially-inverted photograph effect (Sabatier effect). With BPM sync, the threshold sweeps across the tonal range rhythmically, creating pulsing inversions.
Slit Scan
Samples a thin horizontal slice of the frame over time and composites the slices into a single image — the technique behind Star Trek warp tunnels and time-warp photography. Motion through the frame creates flowing smear patterns.
Sepia color
Desaturates the image and applies a warm amber-brown tint. The color picker lets you replace the default sepia tone with any custom tint. Intensity blends from original to full toned effect.
B&W color
Converts to grayscale. The color picker lets you tint the bright areas any color (cyan, magenta, amber, etc.) while dark areas remain black — creating a duotone effect at partial intensity.
VHS
Simulates VHS tape degradation: horizontal scan lines, color bleed at high-contrast edges, noise bands drifting vertically, and slight desaturation. Intensity controls artifact severity from subtle Lo-Fi to completely degraded.
Halftone color
Renders the image as a grid of circles whose size is proportional to pixel brightness, like a newspaper print screen. Background color between dots is user-selectable. Intensity controls dot scale and spacing.
Edges color
Edge detection shader that isolates luminance boundaries and draws them as bright lines on a dark background — a neon wireframe of your footage. Line color is user-selectable. Great with high-contrast geometric content.
ASCII
Converts the image to block text characters (█ ▓ ▒ ░) scaled to pixel brightness, creating a real-time ASCII art rendition of your footage. Character density follows intensity.
Oil Paint
Applies a Kuwahara filter that groups neighboring pixels into smooth brush-stroke-like patches, giving footage the appearance of a painterly oil painting. Intensity controls brush size and abstraction level.
Rutt-Etra color
Emulates the Rutt/Etra analog video synthesizer from the 1970s: displaces horizontal scan lines vertically based on pixel brightness, forming a 3D wireframe topology. Default line color is phosphor green — user-selectable.
Glass
Applies a frosted glass refraction using a noise-based displacement map, making the image appear to be seen through textured or bumped glass. Works well combined with Blur at low intensity.
Outline color
Draws a soft Blender-style edge glow around bright regions of the frame. Tint color is user-selectable; edge width and glow intensity react to the beat.
Per-Clip Pad FX
Long-press a pad and select "Effects" to apply effects to individual clips. Per-clip effects are applied before the master effect, so they stack multiplicatively.
Favorites
Long-press any effect in the picker and choose "Add to Favorites". Favorites appear in a dedicated star tab for quick access during performance. Favorite status persists across sessions.
Exclude from AutoMix
Long-press any effect in the picker and select "Exclude from AutoMix". MIX mode will skip excluded effects during automatic effect rotation, but they remain available for manual use.
Custom Effect Colors
Six effects support a user-chosen color, opened via the color palette icon in the effect picker:
Halftone — background fill between dots
Sepia — tint color
B&W — highlight tint
Edges — line color
Rutt-Etra — scan line color
Gradient Map — ramp color
Generative Visuals
Built-in Visualizers
Twenty-five GPU-rendered visualizer types that run directly on the pad grid. No video files needed — everything is generated in real time via GLSL shaders. Visualizers react to your audio, work with all master and per-pad effects, blend modes, and save with your sessions.
Adding a Visualizer
There are two ways to place a visualizer on a pad:
Empty pad
Long-press an empty pad and tap "Add Visualizer". This opens the Visualizer Picker where you can browse types, choose a palette, and adjust settings with a live preview before assigning.
Replace existing clip
Long-press a pad that already has content and open the "Replace with Visualizer" submenu. Pick a visualizer type and it replaces the current clip immediately.
Visualizer Picker
Full configuration sheet with live preview, type grid, horizontal scrolling palette picker, and sliders for reactivity and complexity. Tap "Assign to Pad" when ready.
Tweaking After Assignment
Long-press any visualizer pad to open its context menu. From there you can change:
| Type | Switch between all 25 visualizer types without removing the pad |
| Palette | Pick from 33 color palettes |
| Reactivity | How strongly the visualizer responds to audio (Low / Medium / High / Max) |
| Complexity | Detail level from minimal to maximum (affects layer count, particle density, etc.) |
Visualizer Types
Plasma
Classic plasma waves generated by overlapping sine functions. Produces flowing, organic color gradients that shift and morph continuously. Complexity adds more sine layers for denser interference patterns.
Voronoi Cells
Animated Voronoi diagram with drifting cell centers. Creates an organic, cellular texture that resembles stained glass, reptile scales, or microscope imagery. Complexity controls the number of cell points.
Fractal Noise
Multi-octave fractal Brownian motion (fBm) noise field. Produces cloud-like, terrain-like structures that evolve slowly over time. Complexity adds more octaves for finer detail. Audio energy drives the noise evolution speed.
Tunnel Warp
An infinite tunnel effect using polar coordinate warping. The camera appears to fly through a textured tunnel whose walls twist and pulse. Beat strength controls tunnel speed; complexity adjusts wall distortion layers.
Starfield
Multi-layer parallax starfield with twinkling, color variation, and a subtle nebula background. Deeper layers move faster for depth. Audio energy drives flight speed; beat hits flash all stars brighter. Complexity adds more parallax layers. 3 stars per grid cell for density.
Geometric Patterns
Concentric rings of segmented geometric shapes that rotate in alternating directions. Beat phase modulates the rotation. Complexity adds more rings. Creates mandalas and spirograph-like structures.
Spectrum Rings
Radial frequency bars arranged in a circle. Each bar reads live spectrum data and extends outward from the center, creating a radar/sonar-like display. Signal is heavily amplified for maximum visibility. Complexity controls the number of frequency bins displayed.
Particle Fountain
GPU-instanced particle system with thousands of particles that spawn, drift, and fade. Beat strength boosts spawn rate, velocity, and particle size. Particles use additive blending for a glowing, firefly-like appearance. Complexity controls the maximum number of active particles.
EQ Bars
Classic equalizer bar display driven by live spectrum data. Each bar represents a frequency bin and grows in real time. Aspect-ratio aware — bars grow vertically in portrait and horizontally in landscape. Complexity controls the number of bars (8–32). Defaults to maximum complexity.
Audio-reactive
Spectrum Wave
Smooth flowing waveform lines that fill the entire screen. Multiple wave layers are stacked vertically, each reading from a different offset in the spectrum data for organic variety. Every layer has its own palette hue, glow, and fill. Complexity controls layer count (4–16).
Audio-reactive
Oscilloscope
DAW-style oscilloscope that draws the audio waveform as a bright, glowing line across the screen. The waveform thickens and pulses with beat strength. A subtle phosphor afterglow trails behind the main trace. Complexity controls the line resolution and glow width.
Audio-reactive
Level Meter
LED-segment level meters like those on a hardware mixing console. Each channel averages a region of the spectrum and displays it as a column of lit LED segments. Aspect-ratio aware — meters grow vertically in portrait and horizontally in landscape. Complexity controls channel count (2–8) and segment resolution. Defaults to maximum complexity.
Audio-reactive
Grid Pulse
A sharp, animated grid of intersecting lines that drifts slowly across the canvas. Audio energy sends ripple waves outward from the center, distorting the grid in real time. Every line crossing flares brightly on beat hits, and a radial vignette keeps energy focused at the center. Complexity controls grid density.
Neon Prism
Concentric regular polygons — triangles, squares, pentagons, hexagons, heptagons, and octagons — stacked concentrically and rotating in alternating directions at staggered speeds. Each ring has a sharp neon-glowing edge with layered halos. Inner rings pulse dramatically on beat; outer rings hold steadier. Complexity controls how many rings are drawn (3–10).
Laser Web
Multiple ultra-thin laser lines radiate from the center of the canvas, each one rotating at a slightly different speed in alternating directions. The lines have a razor-sharp core with a narrow glow halo; where they overlap, additive blending creates naturally blazing intersections. Beat fires a central strobe flash. Complexity controls beam count (3–12).
Shard Burst
Triangular shards radiate from the center, each one driven by a live spectrum bin. Shard height maps directly to frequency energy — louder frequencies produce longer, more dramatic spikes. Each shard tapers to a sharp point with glowing angular edges and a bright tip halo. The entire arrangement rotates slowly with a snap on the beat. Complexity controls shard count (8–32).
Audio-reactive
Signal Decode
Industrial data stream with horizontal glitch scan lines and corruption blocks that snap to a grid on beat. Vertical data streams scroll downward, edge bracket markers frame the display, and corruption bands flash across on impact. Beat-quantized randomness keeps every hit surprising. Complexity controls grid density.
Marathon-inspired
Tactical Grid
HUD-style tactical radar display with concentric dashed range rings, crosshairs, and a rotating radar sweep. Targeting brackets jump to new random positions on each beat. Tick-mark coordinates line the edges. An expanding pulse ring radiates outward on every hit. Complexity controls target count and grid detail.
Marathon-inspired
Glyph Matrix
A grid of procedural geometric symbols — crosses, diamonds, triangles, circles, arrows, crosshairs, data bars, and dot patterns — that randomly shuffle and snap-rotate (0°/90°/180°/270°) on each beat. A wave-based reveal animation sweeps across the grid. Complexity controls grid size.
Marathon-inspired
Schematic Pulse
Circuit board traces with orthogonal lines, intersection nodes, diagonal connectors, and data packets that travel along the traces. Hub nodes with concentric rings flash on beat. Random nodes light up on each hit. Complexity controls trace density and hub frequency.
Marathon-inspired
Terminal
Old CRT terminal rapidly loading a program. Fast-scrolling fake code lines, memory addresses, progress bars, blinking cursor, and status readouts. Beat triggers glitch corruption rows and scroll speed bursts. CRT scan lines and phosphor vignette complete the retro feel. Complexity controls character density.
Retro
Tron Grid
Infinite perspective wireframe grid floor rushing toward the camera, with a matching sky grid receding above the horizon. Bright vector horizon line with glow, floating wireframe shapes (diamonds, squares, circles) rotating in space, and vertical accent lines. Classic 1982 vector monitor aesthetic. Beat pulses the grid in waves.
3D Vector
Wire Tunnel
Flying through a rotating wireframe tunnel with morphing polygon cross-sections that shift between triangles, squares, pentagons, and beyond. Longitudinal lines connect the rings. Beat spawns expanding flash rings and accelerates flight speed. A glowing vanishing point marks the tunnel core. Complexity controls ring count and polygon variation.
3D Vector
Vector Terrain
80s wireframe mountain landscape with noise-driven peaks scrolling toward the camera. A retro sliced sun sits on the horizon with twinkling vector stars above. Beat makes the terrain peaks spike dramatically. Vertical perspective grid lines add depth to the floor. Complexity controls mesh resolution.
3D Vector
Holo Cube
Up to 7 nested wireframe cubes rotating independently on all three axes with full perspective projection. Inner cubes spin faster. Glowing vertex dots mark the corners of the outermost cube. Beat triggers scale pulses and 90° axis snaps. Complexity controls nesting depth.
3D Vector
33 Color Palettes
Every visualizer type supports all 33 palettes. A random palette is assigned each time you load a new visualizer. Colors are generated procedurally using cosine-based gradient functions, so they produce smooth, continuous color ramps rather than hard steps.
Cyberpunk
Neon
Fire
Ice
Nature
Synthwave
Monochrome
Rainbow
Toxic
Blood Moon
Electric
Lava
UV
Candy
Matrix
Inferno
Mono Red
Mono Blue
Mono Green
Mono Purple
Mono Amber
Mono Cyan
Mono Pink
Sunset
Ocean
Vapor
Copper
Aurora
Coral
Midnight
Rust
Hologram
Marathon
Audio Reactivity
Visualizers respond to three audio signals from the beat detection engine:
| Beat Strength | Impulse on each detected beat — triggers flashes, particle bursts, speed boosts |
| Energy | Overall audio loudness — drives continuous animation speed, brightness, particle velocity |
| Beat Phase | Position within the current beat cycle (0–1) — used for smooth oscillations and rotations |
The Reactivity slider scales how much these signals affect the visualizer. At zero, the visualizer animates on its own clock. At maximum, every visual parameter is driven by the audio. Reactivity defaults to maximum for all visualizer types.
Works Like Any Clip
Once assigned to a pad, a visualizer behaves exactly like a video clip:
| Master Effects | All 53 effects apply to visualizers (kaleidoscope, glitch, feedback, etc.) |
| Per-Pad Effects | Long-press the pad to assign a per-clip effect that stacks with the master |
| Blend Modes | Additive, multiply, screen, difference — layer visualizers with video clips |
| Opacity | Adjust per-pad opacity for layering |
| AutoMix | Visualizer pads are included in MIX, SEQ, RND, and SHF rotation |
| Sessions | Full visualizer config (type, palette, reactivity, complexity) saves and restores with sessions and performance scenes |
Tip: Layer a visualizer pad with a video clip using additive blend mode for an instant reactive overlay. Set the visualizer to high reactivity and the video to a loop — the visualizer pulses on top of your footage.
Generative Visuals
Node Editor
The Node Editor lets you build custom reactive visuals by connecting nodes on a graph canvas — no coding required. Each node is a processing block: generators create visuals from scratch, modifiers transform them, combiners blend layers together, and inputs feed live data like BPM, audio energy, or MIDI into the graph.
Access it from the pad context menu (Long-press pad → Edit Graph) or via the node editor button in the toolbar. Tap + to open the node palette and add nodes. Connect output ports to input ports by dragging. The result renders in real time on the pad.
Generators
Create the base visual layer. Includes all 25 built-in visualizer types, MediaMesh3D (video/GIF/image/OBJ on a 3D mesh), and custom GLSL shaders. Each generator has its own palette, complexity, and reactivity controls.
Modifiers
Transform a layer — color controls, affine transform (rotate, scale, translate), twirl, vortex, blur, film look, and more. Chain multiple modifiers for compound effects.
Combiners
Blend two layers together using standard blend modes (add, multiply, screen, overlay, difference…). Mix parameter controls the blend ratio between the two inputs.
Inputs
Feed live data into graph parameters. Constant, LFO (sine, square, saw, triangle), MIDI CC (reads a live CC value 0–127), and MIDI Note (reads velocity of a specific note).
MediaMesh3D — Loading Video, GIF & Images
MediaMesh3D is the generator node for all media content on Android. Add it from the node palette, then use the Inspector to configure it:
| Inspector control | What it does |
| ADD IMAGE | Pick a PNG / JPG from your device via the Android photo picker |
| ADD GIF | Pick a GIF — plays back BPM-synced or at native speed |
| ADD VIDEO | Pick an MP4 — loops on the pad, audio-reactive |
| IMPORT OBJ | Load a custom 3D mesh (only visible when Mesh = Model) |
| Mesh chips | Plane · Cube · Torus · Icosphere · Sphere · Model |
Media is copied into app-private storage on pick and survives app restart. The node renders the media on the chosen mesh in the 3D environment, fully reacting to BPM and audio signals.
Custom GLSL Shaders
Tap New Shader from Scratch in the node palette to create a blank GLSL fragment shader. Edit the source directly in the built-in code editor — three modes available: Snippet (write one vec4 vko_main(vec2 uv) function), 3D (write vko_vertex and/or vko_fragment), or Full Shader (start with #version 450 for a complete GLSL file). Compiled shaders appear in the My Shaders library and can be placed on any graph. Import existing .glsl files via the import button in the node editor toolbar.
Saving & Sharing Graphs
Finished graphs are saved with your session. Tap the bookmark icon to save a graph to the Graph Library for reuse across sessions. Tap the share icon to export a .vkograph file — share via the Android share sheet or Files. Import graphs from the session manager or by opening a .vkograph file.
Full documentation: Node Editor Reference → — complete node type reference, shader authoring guide, and example graphs.
Content
The Store
The Store is a built-in library of downloadable visual graphs. Browse free and premium packs, preview them live, and drop them directly onto any pad.
Opening the Store
Tap the bag icon in the top bar. The store opens as a sheet. Browse packs, tap any graph to preview, then tap Download to add it to your Graph Library. From there, long-press any pad and choose Load Graph to assign it.
Graph Packs
Packs contain curated collections of node graphs — from generative animations and reactive shaders to abstract compositing setups. Each pack is designed to work out of the box, and every graph can be opened in the Node Editor and customized.
Content
Shader Store
The Shader Store is a built-in marketplace for GPU shader packs (GLSL/Vulkan). Each pack contains ready-to-use shaders that drop directly onto any pad — no node graph required. Browse free and premium packs, install with one tap, then assign any shader from the pad menu.
Opening the Shader Store
Tap the store icon in the toolbar. The Shader Store opens as a full sheet. Browse packs, read descriptions, and tap Get (free) or the price button (paid) to install.
Installing Shaders
Tap Install All inside a pack to compile and install every shader in one go. A progress bar tracks compilation. Once installed, shaders appear in the pad menu under Load Shader. Shaders run as real-time GLSL/Vulkan GPU programs — they react to audio, lock to BPM, and support all master effects and blend modes.
Purchases & Restore
Paid packs are one-time purchases via Google Play in-app purchase. They restore automatically across all your devices signed into the same Google account — tap Restore Purchases in the store if a purchase doesn't appear.
Source Code Included
Every shader in every pack ships with its full GLSL source code. Open any shader in the Node Editor to read, fork, and rewrite it however you want.
Browse packs online: Shader Store →
Recording
Performance Tape
Record your live performance and play it back as a loop, like a loop station for visuals. Event-based — captures actions, not video frames.
Recording
Tap REC to start. Perform: tap pads, change effects, twist knobs, scratch. Tap REC again to stop. Your performance is now a loop.
Overdub
Tap REC while a tape is playing. New events layer on top. First take sets the bar length, overdubs layer on top.
Playback
Tap PLAY to loop your recorded performance. The tape re-triggers all your actions in time. 960 PPQN precision.
Tape Editor
Visual timeline with colored blocks and automation curves. Quantize to grid. Delete individual events. Undo layers.
Tape Controls
Long-press the tape button for: Eject (save to library), Clear (delete tape), Editor (timeline view).
What Gets Recorded
- Pad on/off triggers
- Effect type changes
- Effect intensity (knob automation at ~15Hz)
- Bank changes
- Hold mode toggles
- Jogwheel scratch (engage, release, rate)
Tape Library
Long-press REC to access saved tapes. Each tape has a unique color and icon. Tapes persist across sessions.
Scratch
Jogwheel mode
Toggle between the Master Effect knob and the Jogwheel by tapping the MFX pill button, or pressing G on a keyboard.
Touch Scratching
- Touch the wheel — instantly freezes playback (like hand on vinyl)
- Rotate — scrub forward/backward through the clip
- Release — playback resumes
- Works with video clips and GIFs (frame-level scrubbing)
- Haptic feedback every 15 degrees of rotation
Scratch Sensitivity
Open BPM & Sync > Jogwheel section. Slider from 0.25x (Fine) to 3.0x (Turbo). Preset pills: Fine, Slow, Normal, Fast, Turbo.
MIDI CC Scratch
- Open MIDI Settings > Knobs & Faders > tap "Learn" next to Scratch Wheel
- Move a knob on your MIDI controller
- Center (64) = stopped, 0 = full reverse, 127 = full forward
- Auto-engages when you move the knob, auto-releases at center
- Deadzone (60-68) prevents jitter
Performance
Memory gauge
The MEM indicator in the top bar shows how much of your device's physical RAM the app is currently using. It is designed to warn you before you load so many heavy clips that the system kills the app.
Reading the gauge
The vertical bar fills from the bottom. Color changes automatically as usage climbs:
| Color | Usage | Meaning |
| Green | Below 35% | Plenty of headroom. Load freely. |
| Orange | 35–55% | Getting full. Avoid adding many more heavy clips. |
| Red | Above 55% | High pressure. Android may terminate the app if usage keeps climbing. |
Tap for details
Tapping the MEM chip opens a popover with a full breakdown:
- App footprint — total physical RAM used by the process, in MB and as a proportion of device total.
- Reverse frame cache — how much of that memory is used by pre-decoded video frames (reverse / ping-pong playback). Shows MB used and how many clips are cached.
- Warning tip — appears at high usage with advice to reduce clip count or switch to forward-only playback modes.
What fills memory
Regular forward playback is streamed and uses minimal RAM. Memory usage climbs when:
- Reverse or Ping-Pong playback mode is active on a clip — all frames must be decoded in advance and held in memory for smooth reverse scrubbing.
- High-resolution source videos (1080p/4K) with many frames — each frame at 1080p uses ~8 MB. VKO1 caps each clip at 256 MB of decoded frames automatically.
- Many clips loaded across all banks simultaneously.
Pro Tip: If you need reverse playback on long 1080p clips, trim them to the essential section first (long-press pad > Trim). Shorter clips decode fewer frames. Or switch to 720p exports for the same visual result at a quarter of the memory cost.
Tempo
BPM & Sync
Set Your BPM
Tap Tempo: Tap the BPM display, then tap the tempo button in rhythm (at least 4 taps).
Manual Entry: Tap BPM display > Manual Input > type BPM (20-300) > Set.
Sync Sources
Internal Clock
Manual BPM via tap tempo or direct entry. The default for standalone use.
MIDI Clock
Receive 24 PPQN clock from your DAW, drum machine, or hardware. Transport follows external play/stop.
Ableton Link
Sync tempo, beat, and phase over the local network with Ableton Live, Traktor, Serato, and other Link-enabled apps.
Audio Beat Detection
Real-time analysis detects tempo from audio. Genre presets constrain BPM range to prevent drift.
Beat Detection
Tap BPM display > enable "Audio Beat Detection". The app listens to your music and detects tempo in real-time. Auto-starts/stops playback when audio is present/absent.
Genre Presets
Constrain beat detection to the correct BPM range:
| Genre | BPM Range |
| Any | 60–200 |
| Hip Hop | 70–105 |
| Reggaeton | 88–104 |
| House | 118–135 |
| Techno | 125–155 |
| D&B | 160–190 |
| Dubstep | 135–150 |
| Pop | 95–135 |
| Rock | 100–145 |
Network Sync
Ableton Link
Ableton Link synchronizes tempo, beat, and phase across multiple devices and apps on the same local network. Every Link-enabled app shares one unified timeline — no master/slave, no cables, no configuration.
What is Ableton Link?
Link is a protocol by Ableton that keeps apps in sync over Wi-Fi. When enabled, all Link peers on the network agree on a shared tempo and beat grid. If one app changes tempo, all others follow instantly. VKO1 uses Link to sync visual playback with your music apps.
Compatible Apps
Ableton Live
Traktor
Serato DJ
djay
Reason
Maschine
Bitwig Studio
Logic Pro
Koala Sampler
AUM
Drambo
And hundreds more. Any app with Ableton Link support works with VKO1.
How to Enable
- Tap the BPM display to open BPM & Sync settings
- Under Sync Source, select "Ableton Link"
- Or toggle the Ableton Link switch in the dedicated section below
- A status indicator shows connection state:
- Green circle — Connected to peers
- Orange circle — Searching for peers on the network
- Enable Link in your other apps (Ableton Live: Link button in top bar, Traktor: Preferences > Link)
How It Works
Shared Tempo
All peers agree on one BPM. Change tempo in VKO1 or any other Link app — everyone follows. No master device needed.
Beat & Phase Sync
VKO1 reads beat position and phase from the Link session. Clip switches and effect animations lock precisely to the shared beat grid.
Zero Config
No IP addresses, no pairing. All devices on the same Wi-Fi network discover each other automatically via multicast UDP.
Peer Count
The BPM settings screen shows how many Link peers are currently connected. The Link tempo display shows the shared session BPM.
Network Requirements
- All devices must be on the same Wi-Fi network
- The network must allow multicast/broadcast UDP traffic (most home and studio networks do)
- Corporate or venue networks sometimes block multicast — use a portable router or hotspot if Link can't find peers
- No internet connection required, just local network connectivity
Pro Tip: For rock-solid sync at a gig, bring a dedicated portable router. Connect your laptop and Android devices to the same network. Link works over any local network — even a phone hotspot.
Typical Setup
- Laptop running Ableton Live / Traktor / Serato with Link enabled
- Android device running VKO1 with Link enabled, outputting visuals via HDMI
- Both on the same Wi-Fi — visuals automatically sync to the DJ’s tempo and beat grid
The DJ changes BPM in their software — VKO1 follows instantly. Clips switch and effects animate precisely on beat. No MIDI cables, no manual BPM entry, no drift.
3D Content
3D model support
Supported Formats: OBJ
Animation Presets (per-clip)
Static
Built-in
Turntable
Orbit
Bounce
Spin
Rock
3D models respond to master effects, speed control, and the Depth of Field (DOF) effect. Models are pre-cached on assignment for instant activation.
Keyboard
Hardware keyboard shortcuts
Connect a Bluetooth or USB keyboard for hands-on control.
Pad Triggers
Q1
W2
E3
R4
A5
S6
D7
F8
Z9
X10
C11
V12
113
214
315
416
Controls
| Key | Action |
| Space | Play / Stop |
| Escape | Clear all (pads + effects) |
| H | Toggle Hold mode |
| G | Cycle MFX / JOG / CLR / BPM mode |
| N | Add Node (Node Editor only) |
| B | Toggle Beat Detection |
| P | Toggle Fullscreen |
| O | External display output |
| J | Cycle Auto-Play Mode |
| K | Cycle Time Division |
| L | Cycle Pads 1–16 |
| M | Clear Master Effect |
| T | Tape Record (toggle) |
| Y | Tape Play (toggle) |
| U | Open Tape Editor |
| < > | Previous / Next Master Effect |
| Up / Down | BPM +1 / -1 |
| Tab / Shift+Tab | Next / Previous Bank |
| Ctrl/Meta + ← → | Previous / Next palette on active pad |
| Alt+E | Open Node Editor for active pad |
| Alt+P | External display output |
| Alt+S | Quick save session |
| Alt+M | Mute selected node (Node Editor only) |
Game Controllers
Xbox. PlayStation. Android.
Connect any Bluetooth game controller via Android's standard gamepad API for hands-free visual performance.
Xbox Wireless
DualSense (PS5)
DualShock 4 (PS4)
Android-compatible gamepads
Default Mapping
| Button | Action |
| A / Cross | Trigger pad 1 |
| B / Circle | Trigger pad 2 |
| X / Square | Trigger pad 3 |
| Y / Triangle | Trigger pad 4 |
| L1 / R1 | Previous / Next Bank |
| D-pad Left / Right | BPM −1 / +1 |
| D-pad Up / Down | Previous / Next palette on active pad |
| Left Stick Button | Tape Record |
| Right Stick Button | Toggle Beat Detection |
| Right Stick Y | Master effect intensity (analog) |
| Left Trigger | Secondary effect intensity (analog) |
| Left Stick X | Jogwheel scrub (analog) |
| Menu / Start | BPM Tap Tempo |
| Options / Select | Toggle Hold mode |
Custom Mapping
Long-press any button in the app to access Game Controller Learn alongside MIDI Learn. Full analog threshold support for triggers and thumbsticks.
MIDI
Connect your controller
Setup
- Plug in your MIDI controller (USB or Bluetooth)
- Tap the MIDI icon (top bar)
- Select your device under "MIDI Controller"
- Choose a preset or map pads manually
MIDI Learn
Long-press any pad or button > select "MIDI Learn" > play a note on your controller. Done.
Pre-configured Controllers
TE EP-133 K.O. II
Akai MPK Mini
Akai APC40
Novation Launchpad
Ableton Push
Roland SP-404SX
QWERTY Keyboard
EP-133 K.O. II Setup
The EP-133 has a dedicated preset with full integration:
Pad Mappings
| EP-133 Group | Notes | VKO Bank | Pads |
| Group A | 36–47 | Bank A | 1–12 |
| Group B | 48–59 | Bank B | 1–12 |
| Group C | 60–71 | Bank C | 1–12 |
| Group D | 72–83 | Bank D | 1–12 |
Button & Fader Mappings
| EP-133 Control | VKO Action |
| Record button | Tape Record |
| Minus (-) | Previous Effect |
| Plus (+) | Next Effect |
| Fader | MFX Dry/Wet (CC) |
Transport sync: Set MIDI Clock to "out" on the EP-133 (System > code 102). Enable MIDI Clock Sync in VKO for BPM lock. Button/fader MIDI values are defaults — use MIDI Learn to remap if needed.
Knobs & Faders (CC Mapping)
- Open MIDI Settings > Knobs & Faders
- Tap "Learn" next to MFX Dry/Wet or Scratch Wheel
- Move a knob or fader on your controller
- The CC is now mapped
MIDI Action Mappings (35+ actions)
Open MIDI Settings > Advanced > Button Action Mappings to map MIDI notes to any app action:
Play/Pause
Stop
Bank Select
Tap Tempo
Cycle Effects
Toggle Hold
BPM ×2 / ÷2
Tape Record
Tape Overdub
Fullscreen
Jogwheel
MIDI Clock Sync
Enable in MIDI Settings > Sync to synchronize playback to an external MIDI clock (24 PPQN). Start/Stop messages control VKO transport.
Interface
Main layout
+---------------------------------------------+
| VKO1 BPM 127 MIDI Files MEM TV [?] | < Top bar
+---------------------------------------------+
| [Video Player Window - OUTPUT] | < Playing clip preview
+---------------------------------------------+
| 1 2 3 4 |
| 5 6 7 8 | < 4×4 Pad Grid
| 9 10 11 12 |
| 13 14 15 16 |
+---------------------------------------------+
| [A][B][C][D][E][F][G][H] | < Bank Selection
| [PLAY][REC][DIV][AUTO][HOLD] [MFX / JOG] | < Transport + Effects
+---------------------------------------------+
Top bar icons
| Icon | Function |
| BPM display | Tap to open BPM & Sync settings (tap tempo, MIDI clock, Ableton Link, beat detection) |
| MIDI plug | Open MIDI settings, device selection, and action mappings |
| Folder | Open media importer, bank folder mapping, and session manager |
| MEM | Memory gauge — thermometer bar shows RAM usage. Tap for full breakdown. |
| TV / monitor | External display output: HDMI start/stop |
| ? | Quick reference card |
MFX / JOG toggle
The bottom-right control switches between two modes via the pill button:
- MFX mode — shows the Master Effect knob. Drag up/down to adjust intensity. Long-press to open the effect picker. Tap < > arrows to cycle effects.
- JOG mode — replaces the knob with a touch jogwheel for scratching. Tap the wheel to freeze playback; rotate to scrub.
Fullscreen Mode
Tap the fullscreen icon in the video preview. Video fills the entire screen with audio EQ visualizers. Tap anywhere to show/hide controls. Tap X or press P on keyboard to exit.
Output
Send visuals anywhere
Tap the TV / monitor icon in the top bar to open the Output sheet. Three independent output paths are available simultaneously.
Screen Mirroring / Cast
Mirror your full screen wirelessly to any Chromecast or screen-cast receiver. Swipe down → Quick Settings → Screen Cast. Tap your device name. Full screen including all effects.
Clean Visual Output (HDMI)
Connect via USB-C adapter. Secondary screen shows only the rendered visuals — no pads, no controls. Your main screen keeps all controls.
RTMP Stream
Stream renderer-only output over your local network. No UI overlays — exactly what the Vulkan renderer produces. Works with OBS, Resolume Arena, VDMX, and any RTMP-capable software.
Screen Mirroring / Casting
Uses Android's built-in screen cast. Streams your full screen including all effects and visualizers to a Chromecast, smart TV, or compatible receiver.
- Swipe down from the top of the screen to open Quick Settings
- Tap Screen Cast (or Cast / Smart View on Samsung)
- Select your display from the list
Note: Screen Cast mirrors the full screen including the VKO1 UI. If you want clean visuals only (no pads or controls on the output), use HDMI or RTMP instead.
Clean Visual Output — HDMI / USB-C
Plug in a USB-C to HDMI adapter. The Output sheet shows a green indicator when a secondary display is detected. The external screen renders the same Vulkan visuals with no UI elements at all — projector-ready, monitor-ready.
HDMI Status Indicators
- Dimmed icon — No display connected
- Red indicator — Adapter detected but clean output not started
- Green indicator — Clean output active on external screen
Tap Refresh Connection in the Output sheet if the adapter was plugged in after the app started.
Frame Rate
The Output sheet includes a frame rate selector that applies to the external display:
| Setting | Behavior |
| MAX | Requests the display's highest supported refresh rate (90 or 120 Hz on capable panels) |
| 120 / 90 / 60 / 30 | Caps the frame rate to the chosen value. Lower caps save battery and reduce heat. |
RTMP Streaming
RTMP streams the renderer output — the exact same Vulkan-rendered frame — over your local network as an H.264 video stream. No UI overlays, no pads, no controls. What you see in the visualizer is what gets streamed.
What it streams
Only the Vulkan renderer output. All master effects, blend modes, and visualizers are included. The VKO1 interface (pads, knobs, controls) is never captured.
What you need
An RTMP server on your local network — OBS RTMP server, mediamtx, Nginx-RTMP, or any software that accepts RTMP input. Both devices on the same Wi-Fi.
Setting up the RTMP URL
In the Output sheet, enter an RTMP URL and tap START STREAM. The status dot shows:
| Dot color | State |
| Grey | Off — not streaming |
| Orange | Connecting… |
| Green | Live |
| Red | Error — check URL and server |
Tap STOP STREAM to end. The URL is saved automatically between sessions.
Stream orientation
The RTMP stream matches your phone's current orientation exactly — the same content the renderer produces, with no cropping or rotation applied. Portrait phone = 9:16 stream. Landscape phone = 16:9 stream. Rotate your device before starting the stream to get the aspect ratio you want in OBS or Resolume.
Testing with mediamtx (Mac)
mediamtx is a free RTMP server. Run it on your Mac to receive the stream from VKO1.
- Install mediamtx:
brew install mediamtx
- Create the required config file (mediamtx v1.18+ needs this to accept incoming streams):
echo "paths: all_others:" > ~/mediamtx.yml
Or create ~/mediamtx.yml with:
paths:
all_others:
- Start the server:
mediamtx
Listens on RTMP port 1935. To run as a background service: brew services start mediamtx
- Find your Mac's local IP:
ipconfig getifaddr en0
- In VKO1 Output sheet, enter:
rtmp://192.168.x.x:1935/live/vko1
- Tap START STREAM. The dot turns green when connected.
Receiving in OBS (Mac or PC)
- In OBS, add a source: + → Media Source
- Uncheck Local File
- Set Input to:
rtmp://localhost:1935/live/vko1
(if mediamtx is running on the same machine)
- Click OK. The VKO1 renderer output appears as a source in OBS.
From OBS you can record to disk, add to a virtual camera, or re-stream to any platform (YouTube, Twitch, etc.).
Receiving in Resolume Arena
- In the clip browser, right-click an empty slot → Add URL
- Enter:
rtmp://localhost:1935/live/vko1
- The VKO1 output appears as a live clip. Route it to any layer or output in Resolume.
Network tip: For stable streaming, make sure your Android device and receiving computer are on the same Wi-Fi network. Streaming over a 5 GHz band reduces latency. Avoid corporate or venue networks that block multicast — use a portable router or hotspot if needed.
Stream settings
| Parameter | Value |
| Video codec | H.264 |
| Video bitrate | 2 Mbps |
| Resolution | Up to 1280px on the longer dimension, maintains phone aspect ratio |
| Frame rate | Up to 30 fps |
| Audio | None (video-only stream) |
| Protocol | RTMP (Real-Time Messaging Protocol) |
Persistence
Saving sessions
- Tap the folder icon (top bar)
- Tap "Session Manager"
- Type a session name
- Tap "Save Session"
Everything is saved: clips, mappings, effects, MIDI settings, trim points, speed, render mode, blend mode, volume, 3D animation presets, and tape recordings.
Load: Folder icon > Session Manager > tap a saved session > Load
Export/Share: Sessions are saved as .visualko files. Share via the Android share sheet or Files.
Help
Troubleshooting
"No clips appear after import"
- Check format: MP4, GIF, PNG, JPG, JPEG, OBJ
- Try importing to a specific pad (long-press > Import)
"Auto-play doesn't start"
- Make sure AUTO is enabled (shows SEQ/RND/SHF/MIX/MIX2/BLEND)
- Check that clips are loaded and BPM is set
- If using Beat Detection, make sure audio is present and transport is on Play
"MIX2 or BLEND blend modes are not changing"
- Both modes require at least two clips to be active — the second layer builds automatically after the first trigger, so blend changes begin from the second clip switch onward
- Check that Blend Mode Automation is enabled in BPM Settings > AutoMix Options
- Blend mode changes fire at 40% probability per trigger — some beats will pass without a change by design
- Changes are suppressed when the performance guard is at minimal level (thermal stress or low FPS)
- In BLEND, master effects are never automated — if your effects are changing, you are in MIX2, not BLEND
"MIDI controller not detected"
- Check USB/Bluetooth connection
- Go to MIDI Settings and tap "Scan for Devices"
- Some controllers need to be in "USB MIDI mode"
"App crashes or quits unexpectedly"
- Watch the MEM gauge — if it is orange or red before the crash, memory pressure is the cause
- Avoid loading very long high-resolution clips (1080p, 120+ seconds) in Reverse or Ping-Pong playback mode; trim them first
- Switch heavy clips to Forward-only playback to avoid pre-decoding all frames
- Close background apps to free system RAM before starting a performance
"Video playback is choppy"
- Try lower resolution clips (720p is usually sufficient for projected output)
- Close other apps
- Reduce simultaneous effects
"External display shows UI elements"
Disable screen mirroring in Control Center. Use the built-in output feature via the TV icon.
Workflows
Common setups
DJ Set with Auto-Play
Import 8 folders (one per bank). Set BPM, enable Beat Detection, or use Ableton Link. Enable AUTO > MIX for fully automated visuals. Override manually anytime.
Hands-Free Layered Visuals (MIX2)
Load thematically grouped content into banks. Enable AUTO > MIX2. VKO1 keeps two clips layered and continuously remixes the blend mode — the look evolves without any intervention. Combine with master effects automation for a fully self-generating visual set.
Compositing with Effects Control (BLEND)
Dial in the exact master effects you want, then enable AUTO > BLEND. VKO1 keeps two clips layered and continuously cycles blend modes — but never changes your effects. Use this when you want evolving compositing textures while staying in control of the overall look and feel.
VJ + DJ with Ableton Link
DJ runs Traktor/Serato/Ableton with Link enabled. VJ runs VKO1 on Android with Link enabled, outputting via HDMI. Tempo and beat sync automatically — no cables, no drift.
Live Performance with MIDI
Connect controller, select preset. Tap pads on hardware. Use fader for dry/wet, +/- for effects. Record with Tape.
Loop Station Visuals
Start tape recording (REC). Perform a sequence. Stop — it loops. Overdub to layer more. Build up complex multi-layer performances.
Tips
Best practices
Performance
Use shorter clips (5-15 sec). GIFs loop seamlessly. Images are great for overlays. Trim clips to their best section.
Content Organization
Group by visual theme or energy level. 16 items per folder for 1:1 bank mapping. Mix content types.
MIDI Tips
EP-133: use the built-in preset. Launchpad/APC: grid mode. MIDI Learn is faster than manual mapping.
Auto-Play
1/16 = fast cuts, 1 bar = slow transitions. MIX respects "Exclude from AutoMix" effect settings. For MIX2 and BLEND, organize content so each bank has a consistent visual theme — same-bank pairing produces more coherent blend results. Choose BLEND over MIX2 when you've set specific master effects and don't want them touched during the set.