MayaFlux 0.3.0
Digital-First Multimedia Processing Framework
Loading...
Searching...
No Matches
ExtractionHelper.hpp
Go to the documentation of this file.
1#pragma once
2
3/**
4 * @file ExtractionHelper.hpp
5 * @brief Named multichannel extraction functions for FeatureExtractor
6 *
7 * One function per ExtractionMethod case. Each operates on a vector of
8 * const double spans (one per channel) and returns one output vector per
9 * channel. Single-channel callers use channels[0].
10 *
11 * No classes, no analyzer dependencies, no indirection.
12 * All math delegates directly to Kinesis::Discrete.
13 */
14
15namespace MayaFlux::Yantra {
16
17std::vector<std::vector<double>> extract_high_energy(
18 const std::vector<std::span<const double>>& channels,
19 double energy_threshold,
20 uint32_t window_size,
21 uint32_t hop_size);
22
23std::vector<std::vector<double>> extract_peaks(
24 const std::vector<std::span<const double>>& channels,
25 double threshold,
26 double min_distance,
27 uint32_t region_size);
28
29std::vector<std::vector<double>> extract_outliers(
30 const std::vector<std::span<const double>>& channels,
31 double std_dev_threshold,
32 uint32_t window_size,
33 uint32_t hop_size);
34
35std::vector<std::vector<double>> extract_high_spectral(
36 const std::vector<std::span<const double>>& channels,
37 double spectral_threshold,
38 uint32_t window_size,
39 uint32_t hop_size);
40
41std::vector<std::vector<double>> extract_above_mean(
42 const std::vector<std::span<const double>>& channels,
43 double mean_multiplier,
44 uint32_t window_size,
45 uint32_t hop_size);
46
47std::vector<std::vector<double>> extract_overlapping_windows(
48 const std::vector<std::span<const double>>& channels,
49 uint32_t window_size,
50 double overlap);
51
52std::vector<std::vector<double>> extract_zero_crossings(
53 const std::vector<std::span<const double>>& channels,
54 double threshold,
55 double min_distance,
56 uint32_t region_size);
57
58std::vector<std::vector<double>> extract_silence(
59 const std::vector<std::span<const double>>& channels,
60 double silence_threshold,
61 uint32_t min_duration,
62 uint32_t window_size,
63 uint32_t hop_size);
64
65std::vector<std::vector<double>> extract_onsets(
66 const std::vector<std::span<const double>>& channels,
67 double threshold,
68 uint32_t region_size,
69 uint32_t fft_window_size,
70 uint32_t hop_size);
71
72} // namespace MayaFlux::Yantra
Eigen::Index overlap
std::vector< std::vector< double > > extract_outliers(const std::vector< std::span< const double > > &channels, double std_dev_threshold, uint32_t window_size, uint32_t hop_size)
std::vector< std::vector< double > > extract_onsets(const std::vector< std::span< const double > > &channels, double threshold, uint32_t region_size, uint32_t fft_window_size, uint32_t hop_size)
std::vector< std::vector< double > > extract_above_mean(const std::vector< std::span< const double > > &channels, double mean_multiplier, uint32_t window_size, uint32_t hop_size)
std::vector< std::vector< double > > extract_high_energy(const std::vector< std::span< const double > > &channels, double energy_threshold, uint32_t window_size, uint32_t hop_size)
std::vector< std::vector< double > > extract_zero_crossings(const std::vector< std::span< const double > > &channels, double threshold, double min_distance, uint32_t region_size)
std::vector< std::vector< double > > extract_peaks(const std::vector< std::span< const double > > &channels, double threshold, double min_distance, uint32_t region_size)
std::vector< std::vector< double > > extract_silence(const std::vector< std::span< const double > > &channels, double silence_threshold, uint32_t min_duration, uint32_t window_size, uint32_t hop_size)
std::vector< std::vector< double > > extract_overlapping_windows(const std::vector< std::span< const double > > &channels, uint32_t window_size, double overlap)
std::vector< std::vector< double > > extract_high_spectral(const std::vector< std::span< const double > > &channels, double spectral_threshold, uint32_t window_size, uint32_t hop_size)