📖 The Manual
IKANDY paints your music. Press play in any music app and watch your screen come alive — colors, light and shapes that move with every beat. This guide covers everything: getting set up, picking a music source, presets, scenes, FX, lyrics, and what to do when things misbehave.
01 — First Launch
IKANDY is a single-installer Windows desktop app. About 75 MB. No account required to launch it — you can start visualising system audio in under a minute.
IKANDY.Setup.exe from the home page or the GitHub releases page.02 — The Layout
IKANDY has one layout: the full screen is the stage. A slim console bar lives at the bottom. Everything you need is in those five zones — no sidebars, no accordions.
Almost all visual controls live in two modals:
The multi-monitor toggle is in the Utility zone of the console bar. Enable it to send visuals to every secondary display. Two modes:
Per-display checkboxes let you include or exclude individual monitors. Hot-plug is automatic — connecting a new monitor opens a visualizer window; disconnecting one closes it.
03 — Audio Sources
IKANDY can connect to four different sources. Each one offers a different feature set depending on what its underlying API exposes. Switching between them automatically pauses the previous one.
The richest integration. Track info, album art, synced lyrics, playlist browser with search, and full transport — play, pause, skip, shuffle modes including Smart Shuffle detection. IKANDY uses Bring Your Own Key auth: you create a free Spotify Developer app and paste the Client ID once. It’s saved encrypted via Windows DPAPI and never leaves your machine.
developer.spotify.com/dashboard, log in, and click Create app.
IKANDY's Spotify settings panel showing the Client ID field and Redirect URI
For the audiophile crowd. Connects via the foo_beefweb component — a REST/JSON API that exposes the full library. Playlist browse with search, every shuffle mode foobar supports, transport, album art, lyrics. The most feature-complete source IKANDY offers.
github.com/hyperblast/beefweb/releases.8880). Optionally set a password. Click Apply.8880, enter the password if set, and click Connect.
foobar2000 → Preferences → Tools → Beefweb Remote Control
Connects to VLC’s built-in web interface — play, pause, skip, shuffle on/off, album art, synced lyrics. No library browse; pick what to play in VLC, control playback in IKANDY.
VLC → Preferences → All → Interface → Main interfaces → Web (ticked)
The catch-all. Reads whatever app is currently playing music on Windows — Spotify, YouTube Music, Apple Music, browser tabs, Tidal, anything that publishes to Windows Media Controls. Track info and transport controls (play, pause, next, prev) follow whatever is active. No browse, no shuffle, no album art.
about:config, search media.hardwaremediakeys.enabled, set it to true, and restart Firefox.
Capture audio from one specific app rather than the whole system mix. If you’re gaming while listening to Spotify, IKANDY normally reacts to everything — game effects, Discord pings, notification sounds. Per-Process Capture locks on to Spotify alone and ignores everything else.
04 — Visualizer & Presets
The core visualiser is built on Butterchurn 3.0 — a WebGL port of Winamp's legendary MilkDrop engine. IKANDY ships with 745 presets — the base library, extra curated packs, and an Image category that layers especially well over a background photo.
IKANDY auto-cycles through presets at a fixed interval with a smooth blend between each one. Controls in Viz Config (≡) → MILKDROP tab:
On first launch, IKANDY silently scans all presets in the background (after 30 seconds of keyboard/mouse idle) and rates each one for audio reactivity. The results are cached — future launches don't re-scan unless you add presets.
Once the scan is complete, a Hide non-reactive toggle appears in the console's visualiser zone. Enable it to filter the auto-cycle pool to only presets that visibly respond to beats. To run a manual scan or check progress, click Run Scan — it shows live progress (Scanning… 42/745) and a completion summary when done.
Click Browse (⊞) in the console's visualiser zone to open the full preset browser. All 745 are listed with thumbnail previews — hover any thumbnail for a live preview, click to load it immediately. Thumbnails are pre-cached on first launch.
In the preset browser, switch to the CUSTOM tab. If no folder is loaded, the empty state shows a Load Folder button — click it to pick a directory of Butterchurn preset files. The folder merges into the browser alongside the bundled library and persists across restarts.
.json preset format — not the original MilkDrop .milk binary format. When downloading community preset packs, look for Butterchurn-compatible exports. Native .milk import is planned but not yet implemented.
05 — Custom Scenes
Seven custom scenes written from scratch for IKANDY. Unlike Butterchurn presets — which interpret a recipe of math — these are direct audio-reactive engines driven by real-time FFT analysis. The music literally makes the picture.
Click the ✦ button in the console's Utility zone to open the Scene popover. Pick one of the seven scenes below — the Intensity slider controls how aggressively the scene reacts to the audio. Click ✦ again or press Escape to close.
06 — FX Shaders
The FX layer is for personalisation. Load a background image — a band photo, album art, your dog, anything — and overlay one of 12 cinematic GLSL shaders. The image becomes the canvas; the shader becomes the mood.
07 — Lyrics
IKANDY pulls synced lyrics from LRCLIB, a free, open community lyrics database. Lyrics fetch automatically based on the artist and title of the playing track — no manual entry, no per-track configuration.
One line at a time, centred on screen. Clean, karaoke-style. Perfect for recording, screen-sharing, or just reading along. The current line glows; surrounding lines are dim.
Words explode onto the screen and float in zero-gravity. They collide, bounce off the edges, and drift in response to the audio. Best paired with a busy preset for maximum overload, or against a clean scene for legibility.
08 — Controls & Themes
Preset cycling controls live in Viz Config (≡) → MILKDROP tab. The progress bar and themes are in the console bar.
In the MILKDROP tab, the Sensitivity slider controls how aggressively the visuals respond to the audio. Low gives a calm, ambient feel; high makes everything snap to the beat. Default sits in the middle and works for most music.
The playback progress bar in the console's Playback zone is draggable — click and drag anywhere on it to seek to that position in the track. Works with all sources that support seeking.
IKANDY ships with 6 colour themes that re-skin the entire UI. Access them via the palette button in Settings (⚙). Available themes: Gold, Neon, Forest, Dusk, Ice, White. Themes don't change the visuals themselves, just the chrome around them.
09 — Tips & Workflow
10 — Troubleshooting
The most common issues people run into, and how to fix them. Click any item to expand.
Windows reports no app is currently registered as the SMTC owner. Simply start playing music in any app and the message will disappear within a second.
If music is playing and Now Playing still doesn’t see it:
about:config, set media.hardwaremediakeys.enabled to true, restart Firefox.chrome://flags for Hardware Media Key Handling and set it to Enabled.By design. IKANDY queries the active app for which transport commands it actually exposes — some apps (single YouTube videos, podcasts) don’t advertise Next or Previous, so IKANDY locks those buttons.
Hover any greyed-out button to see the reason. For full transport, use a YouTube Mix or playlist URL, or Spotify desktop/web player.
Windows treats system audio capture the same as microphone access for privacy purposes.
Fix: Settings → Privacy & security → Microphone → toggle Let desktop apps access your microphone on. Restart IKANDY.
If that doesn’t help, click 🎤 Reconnect Audio in Settings (⚙) → SOURCE tab.
Spotify only allows external playback control for Premium subscribers — this is a Spotify API restriction. Free accounts still get track info, album art, and synced lyrics.
Premium users: the dedicated source works whether you’re playing in Spotify desktop, web player, mobile, or a Spotify Connect speaker.
Most common cause: the Redirect URI in your Spotify Developer app doesn't exactly match the one IKANDY shows.
Open IKANDY's Spotify settings, copy the Redirect URI, then go to developer.spotify.com/dashboard → your app → Settings → paste it into Redirect URIs. Save, then retry Connect from IKANDY.
Also check: Client ID pasted with no leading/trailing spaces, Web API box is ticked.
Open http://localhost:8080 in a browser — you should see the VLC web UI password prompt. If you don't, the web interface isn't enabled.
Fix: VLC → Tools → Preferences → Show settings: All → Interface → Main interfaces → tick Web. Expand Lua below it and confirm a Lua HTTP password is set. Restart VLC.
In foobar2000 → File → Preferences → Tools → Beefweb Remote Control, confirm Enable HTTP server is ticked.
Test by visiting http://localhost:8880 in a browser. If you see the Beefweb player, the plugin is healthy. If you set a password, paste it exactly as configured in IKANDY's foobar2000 settings.
"Windows protected your PC" — IKANDY is in beta and the Certum code-signing certificate is still in verification.
Fix: click More info, then Run anyway. The app is open source on GitHub. Once the certificate is issued, future builds will be signed and SmartScreen stops warning.
By default IKANDY captures the entire system audio mix — game sound effects, Discord calls, notification pings, and Spotify all go in together. The visualiser reacts to whichever is loudest at any given moment, which is often the game.
Fix: use Per-Process Capture. Open Settings (⚙) → SOURCE tab → Per-Process Capture, click Scan, then click Capture next to Spotify. IKANDY will lock on to Spotify’s audio stream alone and ignore everything else. The game keeps running normally — IKANDY just doesn’t listen to it.
Confirm the source is connected — the console bar's Now Playing zone should show the track name and source.
Visuals react to system audio regardless of which source you’ve picked for track info. If the visualizer is static while music plays, audio isn’t reaching IKANDY. Click 🎤 Reconnect Audio in Settings (⚙) → SOURCE tab, and check Windows microphone permissions.
IKANDY captures a stereo loopback stream. With 5.1/7.1 configured, Windows mixes most music into rear/centre/sub channels, leaving the front L/R that IKANDY captures very quiet.
Fix: set your default output to Stereo (2 channel):
Lyrics come from LRCLIB, which is community-maintained. Very new or obscure tracks may not have an entry. Search lrclib.net directly to confirm.
Also check: if your local files have incorrect artist/title tags, lyrics will look up the wrong song.
IKANDY is GPU-bound. If your GPU is busy with another task, frame rate will suffer.
Try: open Viz Config (≡) → MILKDROP tab, lower Sensitivity, drop preset Opacity; pick a simpler scene (Spectrum or Aurora instead of Starfield); or open the IMAGE tab and disable FX shaders to remove a full-frame post-process pass.
On laptops, make sure IKANDY is using the discrete GPU: Settings → System → Display → Graphics.
Try a clean reinstall: uninstall via Settings → Apps, delete %APPDATA%\IKANDY, then reinstall the latest build.
If it still crashes, open an issue at github.com/IKANDYapp/IKANDY/issues with your Windows version, GPU, and any error message shown.
IKANDY stores all user data in the Electron userData folder:
%APPDATA%\IKANDY (paste into Explorer address bar)~/Library/Application Support/IKANDYFiles stored there include your Spotify tokens (encrypted via Windows DPAPI / macOS Keychain), source preferences, preset reactivity scores, favorites, hidden presets, and thumbnail cache.
Uninstall note: the standard NSIS uninstaller on Windows does not delete %APPDATA%\IKANDY. Your settings, favorites, and cached thumbnails survive an uninstall and are picked up automatically when you reinstall. To fully reset IKANDY, delete that folder manually after uninstalling.
Use the in-app bug reporter: Settings (⚙) → PRIVACY tab → Report a Bug. Type a quick description, optionally include an email, and submit. You’ll get a reference ID (e.g. BUG-A4F2) for follow-up.
The report automatically includes app version, current audio source, current scene, Smart Auto state, and the last crash log if one exists. Stack traces are sanitized — Windows usernames and file paths are stripped before anything leaves your computer.
Reports land in the Discord #submit-bug-report channel and Supabase database. If you provided an email, you may get a follow-up if more info is needed.
Telemetry is off by default. Nothing is sent unless you enable it in Settings (⚙) → PRIVACY tab.
When enabled, IKANDY can send:
IKANDY never transmits: your music, song titles, file names, audio content, account credentials, your real name, or your email address.
Beta validation always sends a random Beta ID + a one-way machine fingerprint hash — this is required to use the beta and is disclosed in the EULA. See the full privacy policy for details.
Open Settings (⚙) → PRIVACY tab → Delete my data from IKANDY servers. Confirm the prompt. This permanently:
If you delete your data and later want to rejoin the IKANDY beta, contact support@ikandy.app with your Beta ID, or visit ikandy.app/rejoin.
Smart Auto watches every audio-producing process on your PC and automatically routes IKANDY’s metadata source (Spotify / VLC / foobar2000 / Now Playing) to whichever app is currently producing music. No manual switching — you start playing music in any supported app and IKANDY follows.
Turn it on: Settings (⚙) → SOURCE tab → Smart Auto toggle. When enabled, the manual source picker is hidden — IKANDY handles the routing.
Smart Auto ignores Discord, Teams, Zoom, Slack, and OBS so notification chimes and call audio don’t hijack your visualizer. It waits ~1.5 seconds of sustained dominance before switching, so a brief notification won’t cause it to swap sources.
When you request data deletion, IKANDY locks the beta slot tied to your install to prevent slot recycling. You’ll see a "Welcome back" screen on next launch with your Beta ID and instructions.
To rejoin, visit ikandy.app/rejoin and enter your Beta ID. Your access will be reactivated immediately.
Alternative: email support@ikandy.app with your Beta ID for manual help.
11 — Get Help
Discord for chat, GitHub for bugs, BuyMeACoffee if it made your day.