nk 1.0.0
C++ Numerical Computing Runtime
Loading...
Searching...
No Matches
shape_descriptors.hpp
Go to the documentation of this file.
1// toolboxes/audio/include/nk/audio/spectral/shape_descriptors.hpp
2//
3// Audio spectral shape descriptors.
4
5#pragma once
6
7#include <memory_resource>
8#include <nk/value/value.hpp>
9
10namespace nk::audio {
11
14
15
32
42Value spectralCentroid(const Value &x, const Value &f,
43 std::pmr::memory_resource *mr = nullptr);
44
52Value spectralSpread(const Value &x, const Value &f,
53 std::pmr::memory_resource *mr = nullptr);
54
66 double percentile = 0.95,
67 std::pmr::memory_resource *mr = nullptr);
68
77Value spectralDecrease(const Value &x, const Value &f,
78 std::pmr::memory_resource *mr = nullptr);
79
86Value spectralSlope(const Value &x, const Value &f,
87 std::pmr::memory_resource *mr = nullptr);
88
96Value spectralFlux(const Value &x, const Value &f, double p = 2.0,
97 std::pmr::memory_resource *mr = nullptr);
98
99// ─────────────────────────────────────────────────────────────────────
100// Shape statistics. Frequency moments (kurtosis / skewness) use the
101// standard X-weighted central-moment definition.
102// ─────────────────────────────────────────────────────────────────────
103
111Value spectralCrest(const Value &x, const Value &f,
112 std::pmr::memory_resource *mr = nullptr);
113
121Value spectralEntropy(const Value &x, const Value &f,
122 std::pmr::memory_resource *mr = nullptr);
123
134 std::pmr::memory_resource *mr = nullptr);
135
144 std::pmr::memory_resource *mr = nullptr);
145
154 std::pmr::memory_resource *mr = nullptr);
155
156
158} // namespace nk::audio
Core MATLAB-compatible multidimensional array and scalar value type.
Definition value.hpp:61
Value spectralSpread(const Value &x, const Value &f, std::pmr::memory_resource *mr=nullptr)
Spectral spread — power-weighted std around the centroid.
Value spectralSlope(const Value &x, const Value &f, std::pmr::memory_resource *mr=nullptr)
Spectral slope — least-squares slope of (f, X).
Value spectralKurtosis(const Value &x, const Value &f, std::pmr::memory_resource *mr=nullptr)
Spectral kurtosis — X-weighted 4th central moment.
Value spectralSkewness(const Value &x, const Value &f, std::pmr::memory_resource *mr=nullptr)
Spectral skewness — X-weighted 3rd central moment.
Value spectralDecrease(const Value &x, const Value &f, std::pmr::memory_resource *mr=nullptr)
Spectral decrease — slope-like measure relative to first bin.
Value spectralRolloffPoint(const Value &x, const Value &f, double percentile=0.95, std::pmr::memory_resource *mr=nullptr)
Spectral rolloff frequency.
Value spectralEntropy(const Value &x, const Value &f, std::pmr::memory_resource *mr=nullptr)
Spectral entropy — Shannon entropy of normalised spectrum.
Value spectralFlatness(const Value &x, const Value &f, std::pmr::memory_resource *mr=nullptr)
Spectral flatness — geomean(X) / mean(X).
Value spectralCrest(const Value &x, const Value &f, std::pmr::memory_resource *mr=nullptr)
Spectral crest — max(X) / mean(X) per frame.
Value spectralCentroid(const Value &x, const Value &f, std::pmr::memory_resource *mr=nullptr)
Spectral centroid — power-weighted mean frequency.
Value spectralFlux(const Value &x, const Value &f, double p=2.0, std::pmr::memory_resource *mr=nullptr)
Spectral flux — p-norm of frame-to-frame spectrum differences.