01 First Launch 02 The Layout 03 Audio Sources 03b Per-Process Capture 04 Visualizer & Presets 05 Custom Scenes 06 FX Shaders 07 Lyrics 08 Controls & Themes 09 Tips & Workflow 10 Troubleshooting 11 Get Help

01 — First Launch

Install &
First Run

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.

Install

  1. Download IKANDY.Setup.exe from the home page or the GitHub releases page.
  2. Run the installer. It places IKANDY in your AppData folder and creates a Start Menu and desktop shortcut.
  3. On first launch IKANDY indexes the preset library and runs a background reactivity scan — this takes a few seconds and happens silently while you use the app.
SmartScreen on first run Windows will show "Windows protected your PC" on the very first launch. This is because IKANDY is in beta and the Certum code-signing certificate is still in verification. Click More info → Run anyway. Once the certificate is issued, the warning disappears for everyone. The full source code is public at github.com/IKANDYapp/IKANDY.
Fastest path to visuals Start playing music in any app on your computer, then in IKANDY pick Now Playing as the source. No setup, no auth — IKANDY listens to whatever Windows is currently playing and starts reacting immediately.

02 — The Layout

One Screen,
One Control Bar

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.

lyrics overlay
Visualizer Stage The Show Full-screen preset · scenes · FX image · lyrics float here
Now Playing Art · title · artist
Playback Transport · seek bar
Visualiser Browse ⊞ · count · shuffle
Utility Scene ✦ · Viz Config ≡ · multi-mon
Settings ⚙ Source · theme · about

Console bar zones

Two modals

Almost all visual controls live in two modals:

Multi-monitor

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

Connect
Your Music

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.

🎵 Spotify ● Full features · Premium recommended

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.

One-time setup

  1. In IKANDY, open the source selector and choose Spotify. The settings panel shows the exact Redirect URI to register.
  2. Go to developer.spotify.com/dashboard, log in, and click Create app.
  3. Give it any name and description. Under Redirect URIs, paste the URI shown in IKANDY. Check the Web API box. Save.
  4. Open the new app → Settings → copy the Client ID.
  5. Paste the Client ID into IKANDY's Spotify settings and click Connect. Spotify opens in your browser to authorise. Done.
Spotify BYOK setup — Client ID field in IKANDY settings

IKANDY's Spotify settings panel showing the Client ID field and Redirect URI

Why BYOK Most apps embed a shared Client ID, so Spotify rate-limits everyone using that app together. With BYOK, your IKANDY uses your own quota — no sharing, no throttling.
Premium required for transport Spotify's Web API only allows playback control for Premium subscribers. Free accounts get track info, album art, and lyrics, but playback buttons are greyed out. Works with Spotify desktop, the web player, or any Spotify Connect device.
🎧 foobar2000 ● Full features · Beefweb plugin

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.

One-time setup

  1. Download and install foo_beefweb from github.com/hyperblast/beefweb/releases.
  2. In foobar2000: File → Preferences → Tools → Beefweb Remote Control.
  3. Tick Enable HTTP server (default port 8880). Optionally set a password. Click Apply.
  4. In IKANDY, choose foobar2000, leave port at 8880, enter the password if set, and click Connect.
foo_beefweb preferences in foobar2000

foobar2000 → Preferences → Tools → Beefweb Remote Control

📺 VLC ● Standard · Local HTTP

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.

One-time setup

  1. Open VLC → Tools → Preferences. Switch Show settings to All.
  2. Navigate to Interface → Main interfaces and tick Web.
  3. Expand Main interfaces → Lua, set a Lua HTTP password, and save.
  4. Restart VLC. In IKANDY, choose VLC, paste the password, and click Connect.
VLC Preferences showing Web interface enabled

VLC → Preferences → All → Interface → Main interfaces → Web (ticked)

Custom port If port 8080 is taken, change it in the same VLC preferences pane. Match it in IKANDY's VLC settings.
🎙️ Now Playing ● Basic · Windows Media Controls · Zero setup

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.

How to use it

  1. Start playing music in any app on your computer.
  2. In IKANDY, open the source selector and pick Now Playing.
  3. Track info and transport light up within a second. IKANDY shows or greys out individual buttons based on what the active source app actually supports.
Firefox needs a flag Chrome and Edge bridge HTML5 Media Session to Windows Media Controls automatically. Firefox doesn’t by default — open about:config, search media.hardwaremediakeys.enabled, set it to true, and restart Firefox.
🎯 Per-Process Capture ● Audio isolation · Settings → SOURCE

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.

How to use it

  1. Start the app you want to capture (e.g. Spotify) and play something.
  2. In IKANDY, open Settings (⚙) → SOURCE tab → Per-Process Capture.
  3. Click Scan. IKANDY lists every app currently producing audio, with its icon.
  4. Click Capture next to the app you want. The banner at the top of the section confirms which app is active.
  5. To stop, click Stop in the banner. IKANDY returns to system audio automatically.
Switching apps Click Capture on a different app while one is already active — IKANDY switches cleanly with no confirmation dialog. The banner updates immediately.
Use cases
  • React to Spotify only, ignoring game audio and Discord
  • Capture a DAW or audio editor output for a live mix visualisation
  • Isolate browser tab audio when YouTube is playing alongside other apps
  • Test a specific app’s audio routing without affecting the rest of the system
Requires a connected source first Per-Process Capture shares the same audio graph as system audio. Connect any source (Spotify, VLC, etc.) or click 🎤 Reconnect Audio once before using it — this initialises the audio context. After that, per-process capture works independently.

04 — Visualizer & Presets

745 MilkDrop
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.

Cycling presets

IKANDY auto-cycles through presets at a fixed interval with a smooth blend between each one. Controls in Viz Config (≡) → MILKDROP tab:

Shuffle bag Auto-cycle uses a shuffle bag — every preset in the active pool plays once before any can repeat. No more seeing the same preset twice in a row.

Reactivity scan

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.

The preset browser

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.

Custom preset folder

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.

File format: .json, not .milk IKANDY uses Butterchurn's .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.
Broken preset handling Some presets produce invalid values on modern hardware. IKANDY automatically skips broken or near-black presets after the first frame and remembers them — warnings appear once, then the cycle keeps moving.

05 — Custom Scenes

Audio-Reactive,
Built In-House

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.

Turning scenes on

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.

Fire EQ
Frequency-reactive flames that climb with the spectrum. Low frequencies thicken the base, highs flick up sparks.
Spectrum
Classic ripple bars driven by live frequency analysis. Clean, readable, hypnotic.
Waveray
Radial beams that pulse and sweep with the waveform. Best with strong rhythmic music.
Aurora
Drifting curtains of light, mid-range driven. Soft, cinematic, hypnotic with vocal-led tracks.
Starfield
Beat-reactive cosmos. Stars sweep past while a central planet bounces with every kick — the harder the beat, the bigger the bloom.
Singularity
A gravitational lens at the centre pulls light inward, collapsing on every beat drop.
Voyager
Cosmic depth-of-field flythrough — star clusters and nebulae drift past in sync with tempo.
Layering Scenes layer over Butterchurn presets — and over FX images. Drop the visualizer opacity in Viz Config (≡) → MILKDROP tab to let the scene take centre stage, or keep it high to blend the two. Scenes and FX shaders can run simultaneously.

06 — FX Shaders

12 Real-Time
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.

Loading an image

  1. Open Viz Config (≡) → IMAGE tab.
  2. Click Load Image and pick any JPG or PNG.
  3. The image fills the background. The visualizer and scenes (if any) layer on top.
  4. Pick an FX shader from the grid. Use the Strength slider to dial it in.

The shaders

Rain
Animated raindrops rippling across the image
Ink Bleed
Bleeding ink absorption effect
VHS Warp
Warped tape glitch and chromatic shift
Fog
Drifting atmospheric haze
Watercolor
Wet watercolour bleeding and texture
Dust Film
Dust, scratches and film grain overlay
Liquid Metal
Liquid chrome surface distortion
Shatter
Voronoi glass fracture pattern
Data Corrupt
Digital glitch and data corruption
Plasma Arc
Electric arc discharge overlay
Hologram
Iridescent holographic shimmer
Heat Wave
Desert heat wave distortion
Bass-reactive vignette & grain The IMAGE tab also has a global vignette and film grain that pulse softly with the bass. They work with or without an image loaded.

07 — Lyrics

Two Modes,
One Source

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.

Classic mode

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.

Physics mode

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.

Switching modes Click the album art in the console's Now Playing zone to show the lyrics overlay. The mode toggle is at the top. You can flip between Classic and Physics mid-song. For fine-grained control — position, font size, opacity, text colour — open Viz Config (≡) → LYRICS tab.
No lyrics available LRCLIB is community-maintained — very new releases or obscure tracks may not have synced lyrics yet. If there's no LRC entry, IKANDY shows nothing instead of guessing.

08 — Controls & Themes

Tune the
Whole Thing

Preset cycling controls live in Viz Config (≡) → MILKDROP tab. The progress bar and themes are in the console bar.

Sensitivity

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.

Progress bar

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.

Themes

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.

Set it once, forget it All settings persist across sessions. Sensitivity, theme, source preferences, custom preset folder, last-used scene — all saved automatically.

09 — Tips & Workflow

Get the Most
Out of It

10 — Troubleshooting

When Things
Get Weird

The most common issues people run into, and how to fix them. Click any item to expand.

Now Playing says "Nothing is playing"

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:

  • Firefox — open about:config, set media.hardwaremediakeys.enabled to true, restart Firefox.
  • Chrome / Edge — check chrome://flags for Hardware Media Key Handling and set it to Enabled.
  • Apple Music for Windows — can be inconsistent. Try pausing/resuming, or use a dedicated source instead.
Now Playing controls grey out / Next or Previous don't work

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.

"Could not start audio source" / no audio reactivity

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 playback controls are greyed out

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.

Spotify won't connect / authentication fails

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.

VLC won't connect

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 → PreferencesShow settings: AllInterface → Main interfaces → tick Web. Expand Lua below it and confirm a Lua HTTP password is set. Restart VLC.

foobar2000 won't connect

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.

SmartScreen blocks the installer

"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.

Why doesn't IKANDY react to Spotify when I'm playing a game?

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.

Visuals don't react to my music

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.

I have 5.1 or 7.1 surround sound and the visuals barely move

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):

  1. Right-click speaker icon → Sounds → Playback tab.
  2. Right-click your active output → Configure Speakers → choose Stereo.
  3. Right-click again → Properties → Advanced → pick a 2-channel format from Default Format.
  4. Apply, then in IKANDY hit 🎤 Reconnect Audio in Settings (⚙) → SOURCE tab.
Lyrics aren't showing up

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.

Performance is choppy or stuttering

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.

The app won't launch / crashes on startup

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.

Where are my settings stored?

IKANDY stores all user data in the Electron userData folder:

  • Windows: %APPDATA%\IKANDY (paste into Explorer address bar)
  • macOS: ~/Library/Application Support/IKANDY

Files 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.

How do I report a bug?

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.

What data does IKANDY collect about me?

Telemetry is off by default. Nothing is sent unless you enable it in Settings (⚙) → PRIVACY tab.

When enabled, IKANDY can send:

  • Anonymous usage data — launch timestamps, app version, platform, session duration, and an anonymous installation ID.
  • Crash reports — error type and sanitized stack trace (Windows usernames and file paths removed before transmission).

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.

How do I delete my data from IKANDY servers?

Open Settings (⚙) → PRIVACY tab → Delete my data from IKANDY servers. Confirm the prompt. This permanently:

  • Deletes all usage and crash report records tied to your installation
  • Anonymizes your beta installation record (removes personal identifiers)
  • Generates a new anonymous ID locally so future sessions start fresh

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.

What is Smart Auto and how do I turn it on?

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.

I deleted my data and can't reopen IKANDY — how do I get back in?

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.

Stuck? Reach Out.

Discord for chat, GitHub for bugs, BuyMeACoffee if it made your day.