Skip to content

A lightweight, transparent desktop audio visualizer for Windows built with C++, SFML, and WASAPI Loopback.

Notifications You must be signed in to change notification settings

Adityarya11/Sound-Wave-Visualizer

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

12 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Sound Visualiser

Made my first project in c++.

Overview

Inspired by the NCS style circular music Visualiser, I have tried making a simpler version of the same. This is the desktop native audio visualisation utility designed for Windows. The visualiser utilizes WASAPI Loopback feature to intercept and visualize global system audio in real-time.

Integrated and works flawlessly with the Realtime audio input (Sytem audio, not the microphone). Tested with Youtube, spotify and games, the Soundwave renders a responsive frequency based visualisation overlay.

Image 1

Core Functionality

  • System-Wide Audio Capture: Utilizes low-latency WASAPI loopback to capture audio from any running application without requiring virtual audio cables.
  • Real-Time FFT Analysis: Implements Fast Fourier Transform algorithms to convert time-domain audio signals into frequency-domain data for accurate spectrum visualization.
  • High-Performance Rendering: Built on SFML 3.0 for hardware-accelerated 2D graphics, ensuring 60 FPS performance with minimal CPU overhead.

System Data Flow

[Windows OS Audio Mixer]
       |
       v
[MiniAudio Backend (WASAPI Loopback)] --> Capture Thread
       |
       v
[Raw PCM Data Buffer]
       |
       v
[KissFFT Processor] --> Converts Time Domain to Frequency Domain
       |
       v
[Normalization & Smoothing Engine] --> Applies Linear Interpolation (Lerp)
       |
       v
[SFML Render Engine] --> Draws Geometry to Window

Installation and Running

  1. Clone the Repository

    git clone https://github.com/Adityarya11/Sound-Wave-Visualizer.git
    cd Sound-Wave-Visualizer
  2. Create Build Directory

    mkdir build
    cd build
  3. Configure Project Run CMake to generate the Visual Studio solution files. Ensure you target the x64 architecture.

    cmake ..
  4. Compile Build the project in Debug or Release mode.

    cmake --build . --config Release
  5. Run Navigate to the Release folder and execute the binary.

    ./Release/SoundWaveVisualizer.exe

WIP

Since the core idea was to implement a circular visualiser that thing is under development. I have taken reference and was motivated by the video of

Tsoding (UI in C++)

I wont be releasing this as an app any soon but definitely try to atleast make the circular visualiser.


If You find this fun and cool then Thanks !!

You can watch the video as well.

Visualiser.mp4

Issues or work needed:

  1. I know the color scheme is boring but i dont know what color to pick
  2. most of the bars(sound waves) are left sided, need to make them middle.

About

A lightweight, transparent desktop audio visualizer for Windows built with C++, SFML, and WASAPI Loopback.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published