Skip to content

OfficialIncubo/fische-windows

Repository files navigation

Build Status Latest Version Total Downloads Languages Count License

fische for Windows

A Windows port of fische — a real-time standalone music visualizer originally built for Linux. This port brings fische to Windows with native WASAPI loopback audio capture, Spout texture sharing for sending the visualization to other apps, OpenGL rendering via GLFW, adjustable audio sensitivity, VSync and FPS control, always-on-top, fullscreen, and a native Win32 settings dialog — all packed into a single portable executable.


Screenshots

fische for Windows — real-time audio visualization fische visualization

Visual paused — title bar shows "fische - PAUSED" fische paused

F1 help screen with keyboard/mouse shortcuts fische help screen

On-screen display for hotkey feedback fische OSD

Native Win32 settings dialog fische settings dialog

Spout output received in Spout Receiver at 60 FPS fische Spout output


Video demos

fische for Windows Demo

fischeWindowsDemo.mp4

Watch/Download for high-quality version

fische → NestDrop via Spout

fischeWindowstoNestDrop.mp4

Watch/Download for high-quality version


Features

  • 🎵 Real-time audio visualization — reacts to whatever is playing on your speakers, microphone or any virtual cable;
  • 🔊 WASAPI loopback capture — captures system audio output directly; supports 44.1 kHz, 48 kHz, 96 kHz, and 192 kHz sample rates
  • 🎛️ ASIO support — connect any ASIO-compatible audio interface, DJ controller (e.g., Pioneer DJ/AlphaTheta, Denon DJ, Numark etc.) or virtual ASIO driver (e.g. ASIO4ALL, FlexASIO) for low-latency instrument, microphone or direct output from DJ software (Serato DJ, rekordbox, VirtualDJ) and DAWs; selectable alongside WASAPI devices in the settings dialog
  • 🎚️ Adjustable audio sensitivity — boost or reduce the audio input level with Up/Down keys or the settings dialog; ranges from 0 to 15.
  • 📡 Spout output — share the visualization as a texture with any Spout-compatible app (OBS via Spout Plug-in, SpoutCam, Resolume, NestDrop, TouchDesigner etc.); sent as a DirectX 11 shared texture via Spout interop
  • ⚙️ Settings dialog — configure audio device, detail level, FPS limit, VSync, Spout and more; all saved to settings.ini
  • 🖼️ Fullscreen support — toggle at any time with F or with Double Left Click
  • 👁️ Window Visibility — hide visual window to taskbar tray by pressing S to keep it running smoothly in the background without taking up desktop space. Useful when sharing the visual with Spout with a clutter-free hidden window.
  • 🧠 Nervous mode — rapid-animation style toggle
  • ⏸️ Pause / unpause
  • 💾 Vector file persistence — optionally cache computed vector fields to vectors/ for faster startup
  • 🎒 100% Portable — A bootstrapped .exe with settings UI, settings and vector loading/saving and lots of functionalities

The story

4 years ago (almost the end of August 2022), I've stumbled across FishBMC while playing some tunes on Kodi using my phone (the old phone was Huawei P30 lite for me). A few days ago, I've decided to fully port this standalone visualization by the same name (fische) to Windows, first thing I've tried to port it by using ChatGPT Codex, but this one did a very great job on a first try. I've then refined and added some features using Claude and my own work, idea and inspiration. For me it looks like it's MilkDrop-ish inspired UI in-render + a very much excitement of new additional features, Spout visual sending, functional hotkeys, settings dialog and so on. That's a story.


System Requirements

Requirement Minimum
OS Windows 7 or later
Runtime Microsoft Visual C++ Redistributable 2015-2022 (Mirror) or an optional All-In-One package
GPU OpenGL 3.2 Core
CPU Any 32-bit or 64-bit compatible processor
Audio Any WASAPI-compatible output device or ASIO driver
RAM 128 MB
Spout Optional — Spout for sending visual renderer

Running

  1. Copy the executable for your PC to any folder you want: fische-x64.exe for 64-bit Windows, or fische-x86.exe for 32-bit Windows.
  2. Double-click it to run.

On the first run, settings.ini is created next to the executable with default settings. Audio capture starts automatically using the default output device.


Controls

Key Action
Esc Exit
F1 Show / hide help screen
U Open latest release page (when update is available)
F (or Double Left Click) Toggle fullscreen
T Toggle always on top
N Toggle nervous mode
S Hide visual window
O (or Right Click) Open settings dialog
P Pause / unpause
Z Toggle Spout output
X Toggle fixed Spout resolution
R Reset audio sensitivity
Up Increase audio sensitivity
Down Decrease audio sensitivity

Settings

settings.ini is created beside the executable on first run:

[fische]
Audio=
AudioSensitivity=1
Detail=High
Quality=2
FPSLimit=60
NervousMode=false
UseFilePersistence=false
SpoutSenderEnabled=false
FixedSpoutEnabled=false
FixedSpoutWidth=1080
FixedSpoutHeight=1920
VSync=Off
AlwaysOnTop=false
WindowWidth=1280
WindowHeight=720
HideWindow=false
Key Type Description
Audio string Friendly name of the audio device; [ASIO] prefix for ASIO drivers, empty/no name match = system default output
AudioSensitivity 0-15 Multiplier applied to audio input before visualization; 1 = no change
Detail Low / Normal / High / Extreme Visual detail level (also written as Quality 0-3)
FPSLimit 0-240 Target frame rate; 0 = unlimited
NervousMode true / false Rapid animation mode
UseFilePersistence true / false Cache vector fields to vectors/ folder
SpoutSenderEnabled true / false Enable Spout texture sharing
FixedSpoutEnabled true / false Render and send Spout output at a fixed resolution independent of the window size
FixedSpoutWidth / FixedSpoutHeight integer Fixed Spout output resolution; only used when FixedSpoutEnabled is true
VSync Off / On / Adaptive VSync mode; Adaptive mode uses glfwSwapInterval(-1), which reduces tearing without hard locking the frame rate
AlwaysOnTop true / false Keep the visual window above all other windows
WindowWidth / WindowHeight integer Last window size; restored on next launch
HideWindow true / false Shows/hides the visual render window at startup

Build

See Build Instructions.md.


License

GNU General Public License v2.0 or later.

  • Original fische engine: © 2013 Marcel Ebmer (@maysl), © 2005–2026 Team Kodi; The Kodi Foundation
  • Spout: © Lynn Jarvis (@leadedge) — BSD-style
  • ASIO: © 2026 Steinberg Media Technologies GmbH
  • Windows port and integration: see LICENSE.md

Credits

Project Author
fische Marcel Ebmer (maysl)
visualization.fishbmc (alternative (OLD)) Team Kodi; The Kodi Foundation
GLFW Camilla Löwy and contributors
Spout Lynn Jarvis (leadedge)
BeatDrop loopback capture Matthew van Eerde & Incubo_
ASIO SDK Steinberg
fische GLFW project inspiration/derived from proconsule
GLAD David Herberth
GLM G-Truc Creation

ASIO Logo


Related Links

Star History

Star History Chart

About

fische standalone music visualization, fully ported for Windows, including Spout visual sharing.

Topics

Resources

License

Stars

4 stars

Watchers

0 watching

Forks

Packages

 
 
 

Contributors

Languages