Skip to content

majockbim/terminal-equalizer

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

29 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

pet project written in C++17, using the MinGW compiler (GCC version 15.2.0)

high level analysis:

  • main.cpp: the entry point of the application. Initializes and calls audio engine and visualizer.
  • engine.cpp: the data pipline. Responsible for capturing the audio levels and samples for the visualizer.
  • signal_processor.cpp: the FIFO queue that is responsible for processing the audio samples for FFT.
  • visualizer.cpp: to display the audio levels in a graphical way (spectral visualizer).

prereqs

  • MSYS2 / MinGW-w64
  • CMake
  • FFTW3 library installed via MSYS2

build and setup

run these commands to compile the project:

# compile the project
cmake -S . -B output -G "MinGW Makefiles"
cmake --build output

# run (assuming path is terminal-equalizer)
.\output\terminal-equalizer.exe

References & Libraries

Documentation & Readings:
WASAPI: IAudioEndpointVolume
WASAPI: audioclient.h
WASAPI: IAudioClient::Initialize [4]
Fast Fourier Transform (Wiki)

Third-Party Libraries:
FFTW++ (SourceForge) FFTW++ (GitHub)

About

>_ C++17 spectral visualizer using WASAPI loopback capture and FFTW++

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors