https://github.com/diqezit/spectrumnet
Spectrum Visualiser. This is a real-time audio visualization application that captures audio from the system's loopback device and displays it visual as a spectrum analyzer. More colors and renderers.
https://github.com/diqezit/spectrumnet
audio-visualizer charp charp-code custom-visualization fft-algorithm naudio net overlay overlay-window sdk skia skia-canvas skiasharp spectrum spectrum-analyzer theme theme-support visualization
Last synced: 18 days ago
JSON representation
Spectrum Visualiser. This is a real-time audio visualization application that captures audio from the system's loopback device and displays it visual as a spectrum analyzer. More colors and renderers.
- Host: GitHub
- URL: https://github.com/diqezit/spectrumnet
- Owner: diqezit
- Created: 2024-11-19T12:10:40.000Z (11 months ago)
- Default Branch: master
- Last Pushed: 2025-08-30T18:29:55.000Z (about 2 months ago)
- Last Synced: 2025-08-30T20:28:05.596Z (about 2 months ago)
- Topics: audio-visualizer, charp, charp-code, custom-visualization, fft-algorithm, naudio, net, overlay, overlay-window, sdk, skia, skia-canvas, skiasharp, spectrum, spectrum-analyzer, theme, theme-support, visualization
- Language: C#
- Homepage:
- Size: 3.01 MB
- Stars: 14
- Watchers: 1
- Forks: 0
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# SpectrumNet - Real-Time Audio Spectrum Visualizer
[](LICENSE)
[](https://dotnet.microsoft.com)
**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.

> ### 🚀 Now Available in C++!
>
> For users seeking maximum performance and a lighter footprint, a native C++ version of this project is now available! **[SpectrumCpp](https://github.com/diqezit/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++.
## ✨ Key Features
### 🎧 Advanced Audio Processing
- **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.
### 🎨 Powerful Visualization Engine
- **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.
### ⚙️ Customization and Control
- **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.
## 📸 Visual Showcase
| Main View | Overlay Mode |
| :---: | :---: |
|  |  |
| **Menu & Performance Settings** | **Visual Settings Panel** |
|  |  |

## 🚀 Getting Started (For Users)
1. **Download the latest version** from the [**Releases**](https://github.com/diqezit/SpectrumNet/releases) page.
2. Unzip the archive and run `SpectrumNet.exe`.
3. Click **"Start Capture"** to begin visualizing your system's audio.
4. 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.
## 🛠️ Building from Source (For Developers)
### Prerequisites
- [Visual Studio 2022](https://visualstudio.microsoft.com/)
- [.NET 8.0 SDK](https://dotnet.microsoft.com/download/dotnet/8.0)
### Steps
1. **Clone the repository:**
```bash
git clone https://github.com/diqezit/SpectrumNet.git
```
2. **Open the solution file** (`.sln`) in Visual Studio.
3. **Restore NuGet packages** (this should happen automatically).
4. **Build and run** the project in `Debug` or `Release` mode.
## 💻 Technology Stack
- **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).
## ⚠️ Known Issues
### Transparency Rendering Issues on Intel GPUs
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**:
1. **Force Dedicated GPU**: In your NVIDIA or AMD control panel, set `SpectrumNet.exe` to always use the high-performance dedicated GPU.
2. **(For Developers) Force Software Rendering**: As a last resort, you can disable hardware acceleration by replacing `SKGLElement` with `SKElement` in the relevant XAML files. This will use CPU-based rendering, which is slower but more compatible.
```xaml
```
## 🤝 Contributing
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.
1. Fork the Project
2. Create your Feature Branch (`git checkout -b feature/AmazingFeature`)
3. Commit your Changes (`git commit -m 'Add some AmazingFeature'`)
4. Push to the Branch (`git push origin feature/AmazingFeature`)
5. Open a Pull Request
## 📄 License
This project is licensed under the **MIT License**. See the [LICENSE](LICENSE) file for details.