SpectrumNet is a high-performance audio visualizer for Windows that transforms any system audio into a captivating, real-time spectral display. Built with C#, WPF, and .NET 8, it combines advanced signal processing with a powerful rendering engine to create immersive visual experiences.
For users seeking maximum performance and a lighter footprint, a native C++ version of this project is now available! SpectrumCpp is built from the ground up with Win32 and Direct2D for raw speed and efficiency.
Check out SpectrumCpp if you:
- Need the absolute best performance, especially in overlay mode.
- Prefer a minimal, dependency-free executable.
- Are interested in native Windows development with C++.
- Real-time System Audio Capture: Captures desktop audio directly using WASAPI loopbackβno extra configuration needed.
- Multiple FFT Window Functions: Choose between Hann, Hamming, and Blackman windows to fine-tune the spectral analysis.
- Flexible Frequency Scaling: Visualize sound across Linear, Logarithmic, Mel, and Bark frequency scales.
- 20+ Unique Render Styles: A vast collection of visualizers, including:
- Bars: Vertical, Circular, LED Meter
- Waveforms: Gradient Line, Heartbeat, Waterfall
- Particles: Fire, Raindrop, Text Effects
- Advanced: Voronoi Diagrams, Spectrum Fractals
- Dynamic Color Palettes: Customize your visualizer with beautiful gradient effects and pre-built themes.
- Adjustable Quality Presets: Instantly switch between Low, Medium, and High quality settings, with options for manual override to balance performance and visuals.
- Flexible Display Modes: Use in a standard window or as an Always-on-Top overlay for seamless integration with your desktop.
- Configurable Hotkeys: Control the application without interrupting your workflow (
Start/Stop Capture,Toggle Overlay,Open Panel). - Real-time Adjustments: Fine-tune spectrum sensitivity, range, and other parameters on the fly with an interactive control panel.
| Main View | Overlay Mode |
|---|---|
| Menu & Performance Settings | Visual Settings Panel |
- Download the latest version from the Releases page.
- Unzip the archive and run
SpectrumNet.exe. - Click "Start Capture" to begin visualizing your system's audio.
- Use the controls and hotkeys to customize your experience:
Space: Start or stop the visualization.Ctrl + O: Toggle the always-on-top overlay mode.Ctrl + P: Show or hide the main control panel.
- Clone the repository:
git clone https://github.com/diqezit/SpectrumNet.git
- Open the solution file (
.sln) in Visual Studio. - Restore NuGet packages (this should happen automatically).
- Build and run the project in
DebugorReleasemode.
- Framework: .NET 8.0
- UI: WPF (Windows Presentation Foundation)
- Rendering: SkiaSharp for high-performance 2D graphics.
- Audio Capture: WASAPI Loopback (via a .NET wrapper like CSCore or NAudio).
Some users with older or integrated Intel GPUs may experience rendering artifacts in overlay mode.
Symptoms:
- Partial or complete loss of window transparency.
- Flickering or visual glitches when interacting with the interface.
- Poor performance in overlay mode.
Affected Hardware:
- Primarily observed on Intel HD/UHD Graphics (pre-2021 models).
- Laptops with hybrid graphics systems (NVIDIA Optimus).
- Systems with outdated graphics drivers.
Workaround:
- Force Dedicated GPU: In your NVIDIA or AMD control panel, set
SpectrumNet.exeto always use the high-performance dedicated GPU. - (For Developers) Force Software Rendering: As a last resort, you can disable hardware acceleration by replacing
SKGLElementwithSKElementin the relevant XAML files. This will use CPU-based rendering, which is slower but more compatible.<!-- In the visualizer's XAML, replace the hardware-accelerated element: --> <skia:SKElement /> <!-- Instead of: --> <!-- <skia:SKGLElement /> -->
Contributions are welcome! If you have an idea for a new feature, a bug fix, or a new visualizer style, feel free to fork the repository, make your changes, and submit a pull request.
- Fork the Project
- Create your Feature Branch (
git checkout -b feature/AmazingFeature) - Commit your Changes (
git commit -m 'Add some AmazingFeature') - Push to the Branch (
git push origin feature/AmazingFeature) - Open a Pull Request
This project is licensed under the MIT License. See the LICENSE file for details.