added original plugin
This commit is contained in:
@@ -11,7 +11,7 @@ auto main() -> int
|
|||||||
// setup.m_domain = hr::DOMAIN_PLUGIN::FREQUENSY;
|
// setup.m_domain = hr::DOMAIN_PLUGIN::FREQUENSY;
|
||||||
setup.m_file = "./sin.wav";
|
setup.m_file = "./sin.wav";
|
||||||
|
|
||||||
auto r = hr::run<hr::plugins::magnitude>(setup);
|
auto r = hr::run<hr::plugins::original>(setup);
|
||||||
hack::log()("size:", r.m_data.size());
|
hack::log()("size:", r.m_data.size());
|
||||||
|
|
||||||
if (!r.empty())
|
if (!r.empty())
|
||||||
|
|||||||
@@ -9,6 +9,7 @@
|
|||||||
#include "utils/workers/result.hpp"
|
#include "utils/workers/result.hpp"
|
||||||
#include "adapter/adapter.hpp"
|
#include "adapter/adapter.hpp"
|
||||||
|
|
||||||
|
#include "plugins/original/original.hpp" // IWYU pragma: keep
|
||||||
#include "plugins/magnitude/magnitude.hpp" // IWYU pragma: keep
|
#include "plugins/magnitude/magnitude.hpp" // IWYU pragma: keep
|
||||||
|
|
||||||
namespace hr
|
namespace hr
|
||||||
|
|||||||
@@ -14,6 +14,7 @@ headers = [
|
|||||||
'utils/windows/hann/hann.hpp',
|
'utils/windows/hann/hann.hpp',
|
||||||
|
|
||||||
# plugins
|
# plugins
|
||||||
|
'plugins/original/original.hpp',
|
||||||
'plugins/magnitude/magnitude.hpp',
|
'plugins/magnitude/magnitude.hpp',
|
||||||
|
|
||||||
'harmonica.hpp'
|
'harmonica.hpp'
|
||||||
@@ -27,6 +28,7 @@ sources = [
|
|||||||
'utils/windows/hann/hann.cpp',
|
'utils/windows/hann/hann.cpp',
|
||||||
|
|
||||||
# plugins
|
# plugins
|
||||||
|
'plugins/original/original.cpp',
|
||||||
'plugins/magnitude/magnitude.cpp',
|
'plugins/magnitude/magnitude.cpp',
|
||||||
]
|
]
|
||||||
|
|
||||||
|
|||||||
39
src/plugins/original/original.cpp
Normal file
39
src/plugins/original/original.cpp
Normal file
@@ -0,0 +1,39 @@
|
|||||||
|
#include "original.hpp"
|
||||||
|
|
||||||
|
// Простой плагин, котоорый нужен для отрисовки базового сигнала
|
||||||
|
// в частотной области все усредняется и во временной тоже.
|
||||||
|
namespace hr::plugins
|
||||||
|
{
|
||||||
|
original::original(const setup& st) : plugin{ st }
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
void original::process(fvec_t& base, real_time timestamp)
|
||||||
|
{
|
||||||
|
std::size_t bins = base.size();
|
||||||
|
base_t s = 0.f;
|
||||||
|
for (std::size_t i = 0; i < bins; ++i) s += base[i];
|
||||||
|
s /= bins;
|
||||||
|
result::bit b;
|
||||||
|
b.m_value.push_back(s);
|
||||||
|
b.m_duration = timestamp;
|
||||||
|
m_result.set_bit(b);
|
||||||
|
}
|
||||||
|
|
||||||
|
void original::process(cvec_t& fft, fvec_t& base, real_time timestamp)
|
||||||
|
{
|
||||||
|
std::size_t frames = fft.size();
|
||||||
|
base_t m = 0.f;
|
||||||
|
for (std::size_t i = 0; i < frames; ++i) m += fft.m_norm[i];
|
||||||
|
m /= frames;
|
||||||
|
result::bit b;
|
||||||
|
b.m_value.push_back(m);
|
||||||
|
b.m_duration = timestamp;
|
||||||
|
m_result.set_bit(b);
|
||||||
|
}
|
||||||
|
|
||||||
|
result original::get_result()
|
||||||
|
{
|
||||||
|
return m_result;
|
||||||
|
}
|
||||||
|
}
|
||||||
21
src/plugins/original/original.hpp
Normal file
21
src/plugins/original/original.hpp
Normal file
@@ -0,0 +1,21 @@
|
|||||||
|
#pragma once
|
||||||
|
|
||||||
|
#include "utils/workers/plugin.hpp"
|
||||||
|
|
||||||
|
namespace hr::plugins
|
||||||
|
{
|
||||||
|
class original : public plugin
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
original(const setup& st);
|
||||||
|
virtual ~original() = default;
|
||||||
|
|
||||||
|
private:
|
||||||
|
result m_result;
|
||||||
|
|
||||||
|
public:
|
||||||
|
void process(fvec_t& base, real_time timestamp) override;
|
||||||
|
void process(cvec_t& fft, fvec_t& base, real_time timestamp) override;
|
||||||
|
result get_result() override;
|
||||||
|
};
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user