This project uses a the Cooley-Tukey Fourier Transform (FFT) with multithreading to identify musical notes in real-time and prerecorded audio samples by analyzing frequency components.
-
Install Dependencies:
brew install fftw libomp
-
Set Environment Variables:
export LDFLAGS="-L/opt/homebrew/opt/libomp/lib" export CPPFLAGS="-I/opt/homebrew/opt/libomp/include" export LDFLAGS="-L/opt/homebrew/Cellar/fftw/3.3.10_1/lib" export CPPFLAGS="-I/opt/homebrew/Cellar/fftw/3.3.10_1/include"
-
Compile the Project:
g++ -I/usr/local/include -L/usr/local/lib -lfftw3 -o main <main.cpp path>
-
Build with CMake:
cmake -S . -B build \ -DCMAKE_C_COMPILER=/opt/homebrew/opt/llvm/bin/clang \ -DCMAKE_CXX_COMPILER=/opt/homebrew/opt/llvm/bin/clang++ cmake --build build