From 39b62d6ccb66042c6cc8c49db2ab1fcc1781dd6e Mon Sep 17 00:00:00 2001 From: chatlanin Date: Wed, 15 Apr 2026 13:51:50 +0300 Subject: [PATCH] fix fft size --- bin/main.fft.cpp | 5 +++-- bin/meson.build | 2 +- src/plugins/fft/fft.cpp | 2 +- src/utils/workers/result.hpp | 2 +- 4 files changed, 6 insertions(+), 5 deletions(-) diff --git a/bin/main.fft.cpp b/bin/main.fft.cpp index 63f8006..684bf45 100644 --- a/bin/main.fft.cpp +++ b/bin/main.fft.cpp @@ -9,15 +9,16 @@ auto main() -> int // Передается по ссылке и заполняется необходимыми данными hr::setup setup; setup.m_domain = hr::DOMAIN_PLUGIN::FREQUENSY; - setup.m_file = "./sin.wav"; + setup.m_file = "/mnt/raid/projects/dsp/songs/base/MakSim: Знаешь ли ты?.mp3"; auto r = hr::run(setup); hack::log()("grad:", r.m_grad); hack::log()("min:", r.m_min, "max:", r.m_max); + hack::log()("size:", r.m_size); if (!r.empty()) { for (auto& p : r.m_data) - hack::log()(p[0].m_values); + hack::log()(p[10].m_values); } } diff --git a/bin/meson.build b/bin/meson.build index 5cefe56..735f5bd 100644 --- a/bin/meson.build +++ b/bin/meson.build @@ -1,6 +1,6 @@ executable( meson.project_name(), - 'main.raw_data.cpp', + 'main.fft.cpp', dependencies : deps, cpp_args: args, include_directories : inc diff --git a/src/plugins/fft/fft.cpp b/src/plugins/fft/fft.cpp index 00eade1..240f32f 100644 --- a/src/plugins/fft/fft.cpp +++ b/src/plugins/fft/fft.cpp @@ -18,7 +18,6 @@ namespace hr::plugins // т.к. реализация FFT (rdft) уже возвращает только уникальную часть спектра, а не полный симметричный массив из 1024 элементов. m_frames = m_setup.m_step_size + 1; m_result.m_grad.reserve(m_frames); - m_result.m_size = m_frames; for (size_t i = 0; i < m_frames; ++i) m_result.m_grad.push_back(static_cast(i) * m_setup.m_sample_rate / m_setup.m_block_size); } @@ -43,6 +42,7 @@ namespace hr::plugins m_result.set_min_max(v); } m_result.set_bit(0, b); + ++m_result.m_size; } result fft::get_result() diff --git a/src/utils/workers/result.hpp b/src/utils/workers/result.hpp index 853be58..712a412 100644 --- a/src/utils/workers/result.hpp +++ b/src/utils/workers/result.hpp @@ -69,7 +69,7 @@ namespace hr // в данном случае вы сами решаете, что для вас значит размер // это может быть размер всего массива m_data или размер массива данных хранящихся в каждом бине - // или этот же массив но помноженный на размер m_data + // или этот же массив, но помноженный на размер m_data std::size_t m_size = 0; // иногда нужна градуировка одна и тажа для всех бинов