dsp/: C++ skeleton with working FFT/WOLA STFT
- Cooley-Tukey radix-2 FFT (forward + inverse with /N normalization) - WOLA STFT/ISTFT with Hann window (nfft=2048, hop=512) - WAV16 read + WAV24 write (fixed aliasing bug in read) - Fixed in-place processing bug (separate input/output buffers) - Biquad filter (peak/shelf/reject) - Peak detector skeleton - MS encode/decode (M8 stereo) - Harness: WAV16 → STFT → WAV24 passthrough verified non-zero output Verified: burst500.wav passthrough produces output RMS=0.0678
This commit is contained in:
@@ -0,0 +1,32 @@
|
||||
cmake_minimum_required(VERSION 3.10)
|
||||
project(soothe2_dsp)
|
||||
|
||||
set(CMAKE_CXX_STANDARD 17)
|
||||
set(CMAKE_CXX_STANDARD_REQUIRED ON)
|
||||
|
||||
find_package(Threads REQUIRED)
|
||||
|
||||
add_library(soothe2_dsp SHARED
|
||||
dsp/fft_plan.cpp
|
||||
dsp/fft_stage.cpp
|
||||
dsp/cody_waite.cpp
|
||||
dsp/twiddle_builder.cpp
|
||||
dsp/fft.cpp
|
||||
dsp/spectral.cpp
|
||||
dsp/filter.cpp
|
||||
dsp/detect.cpp
|
||||
dsp/ms.cpp
|
||||
dsp/harness.cpp
|
||||
)
|
||||
|
||||
target_include_directories(soothe2_dsp PUBLIC ${CMAKE_CURRENT_SOURCE_DIR})
|
||||
|
||||
target_link_libraries(soothe2_dsp Threads::Threads)
|
||||
|
||||
set_target_properties(soothe2_dsp PROPERTIES
|
||||
POSITION_INDEPENDENT_CODE ON
|
||||
)
|
||||
|
||||
if(CMAKE_CXX_COMPILER_ID STREQUAL "GNU" OR CMAKE_CXX_COMPILER_ID STREQUAL "Clang")
|
||||
target_compile_options(soothe2_dsp PRIVATE -O3 -march=native)
|
||||
endif()
|
||||
Reference in New Issue
Block a user