MayaFlux 0.3.0
Digital-First Multimedia Processing Framework
Loading...
Searching...
No Matches
Analysis.cpp File Reference
#include "Analysis.hpp"
#include "MayaFlux/Transitive/Parallel/Execution.hpp"
#include <Eigen/Dense>
#include <unsupported/Eigen/FFT>
+ Include dependency graph for Analysis.cpp:

Go to the source code of this file.

Namespaces

namespace  MayaFlux
 Main namespace for the Maya Flux audio engine.
 
namespace  MayaFlux::Kinesis
 
namespace  MayaFlux::Kinesis::Discrete
 

Functions

std::vector< double > MayaFlux::Kinesis::Discrete::rms (std::span< const double > data, size_t n_windows, uint32_t hop_size, uint32_t window_size)
 RMS energy per window.
 
std::vector< double > MayaFlux::Kinesis::Discrete::peak (std::span< const double > data, size_t n_windows, uint32_t hop_size, uint32_t window_size)
 Peak amplitude per window.
 
std::vector< double > MayaFlux::Kinesis::Discrete::power (std::span< const double > data, size_t n_windows, uint32_t hop_size, uint32_t window_size)
 Power (sum of squares) per window.
 
std::vector< double > MayaFlux::Kinesis::Discrete::dynamic_range (std::span< const double > data, size_t n_windows, uint32_t hop_size, uint32_t window_size)
 Dynamic range in dB per window.
 
std::vector< double > MayaFlux::Kinesis::Discrete::zero_crossing_rate (std::span< const double > data, size_t n_windows, uint32_t hop_size, uint32_t window_size)
 Zero-crossing rate per window.
 
std::vector< double > MayaFlux::Kinesis::Discrete::spectral_energy (std::span< const double > data, size_t n_windows, uint32_t hop_size, uint32_t window_size)
 Spectral energy per window using Hann-windowed FFT.
 
std::vector< double > MayaFlux::Kinesis::Discrete::low_frequency_energy (std::span< const double > data, size_t n_windows, uint32_t hop_size, uint32_t window_size, double low_bin_fraction=0.125)
 Low-frequency spectral energy per window.
 
std::vector< double > MayaFlux::Kinesis::Discrete::mean (std::span< const double > data, size_t n_windows, uint32_t hop_size, uint32_t window_size)
 Arithmetic mean per window.
 
std::vector< double > MayaFlux::Kinesis::Discrete::variance (std::span< const double > data, size_t n_windows, uint32_t hop_size, uint32_t window_size, bool sample_variance=true)
 Variance per window.
 
std::vector< double > MayaFlux::Kinesis::Discrete::std_dev (std::span< const double > data, size_t n_windows, uint32_t hop_size, uint32_t window_size, bool sample_variance=true)
 Standard deviation per window.
 
std::vector< double > MayaFlux::Kinesis::Discrete::skewness (std::span< const double > data, size_t n_windows, uint32_t hop_size, uint32_t window_size)
 Skewness (standardised third central moment) per window.
 
std::vector< double > MayaFlux::Kinesis::Discrete::kurtosis (std::span< const double > data, size_t n_windows, uint32_t hop_size, uint32_t window_size)
 Excess kurtosis (fourth central moment - 3) per window.
 
std::vector< double > MayaFlux::Kinesis::Discrete::median (std::span< const double > data, size_t n_windows, uint32_t hop_size, uint32_t window_size)
 Median per window via nth_element partial sort.
 
std::vector< double > MayaFlux::Kinesis::Discrete::percentile (std::span< const double > data, size_t n_windows, uint32_t hop_size, uint32_t window_size, double percentile_value)
 Arbitrary percentile per window via linear interpolation.
 
std::vector< double > MayaFlux::Kinesis::Discrete::entropy (std::span< const double > data, size_t n_windows, uint32_t hop_size, uint32_t window_size, size_t num_bins=0)
 Shannon entropy per window using Sturges-rule histogram.
 
std::vector< double > MayaFlux::Kinesis::Discrete::min (std::span< const double > data, size_t n_windows, uint32_t hop_size, uint32_t window_size)
 Minimum value per window.
 
std::vector< double > MayaFlux::Kinesis::Discrete::max (std::span< const double > data, size_t n_windows, uint32_t hop_size, uint32_t window_size)
 Maximum value per window.
 
std::vector< double > MayaFlux::Kinesis::Discrete::range (std::span< const double > data, size_t n_windows, uint32_t hop_size, uint32_t window_size)
 Value range (max - min) per window.
 
std::vector< double > MayaFlux::Kinesis::Discrete::sum (std::span< const double > data, size_t n_windows, uint32_t hop_size, uint32_t window_size)
 Sum per window.
 
std::vector< double > MayaFlux::Kinesis::Discrete::count (std::span< const double > data, size_t n_windows, uint32_t hop_size, uint32_t window_size)
 Sample count per window (as double for pipeline uniformity)
 
std::vector< double > MayaFlux::Kinesis::Discrete::mad (std::span< const double > data, size_t n_windows, uint32_t hop_size, uint32_t window_size)
 Median absolute deviation per window.
 
std::vector< double > MayaFlux::Kinesis::Discrete::coefficient_of_variation (std::span< const double > data, size_t n_windows, uint32_t hop_size, uint32_t window_size, bool sample_variance=true)
 Coefficient of variation (std_dev / mean) per window.
 
std::vector< double > MayaFlux::Kinesis::Discrete::mode (std::span< const double > data, size_t n_windows, uint32_t hop_size, uint32_t window_size)
 Mode per window via tolerance-bucketed frequency count.
 
std::vector< double > MayaFlux::Kinesis::Discrete::mean_zscore (std::span< const double > data, size_t n_windows, uint32_t hop_size, uint32_t window_size, bool sample_variance=true)
 Mean z-score per window.
 
std::vector< size_t > MayaFlux::Kinesis::Discrete::zero_crossing_positions (std::span< const double > data, double threshold=0.0)
 Sample indices of zero crossings in the full span.
 
std::vector< size_t > MayaFlux::Kinesis::Discrete::peak_positions (std::span< const double > data, double threshold=0.0, size_t min_distance=1)
 Sample indices of local peak maxima in the full span.
 
std::vector< size_t > MayaFlux::Kinesis::Discrete::onset_positions (std::span< const double > data, uint32_t window_size, uint32_t hop_size, double threshold=0.1)
 Sample indices of onsets detected via spectral flux.