nk 1.0.0
C++ Numerical Computing Runtime
Loading...
Searching...
No Matches
freq_scales.hpp
Go to the documentation of this file.
1
3// toolboxes/audio/include/nk/audio/scale/freq_scales.hpp
4//
5// Frequency-scale conversions (Mel / Bark / ERB / phon-sone) used in
6// audio feature extraction. All elementwise, double in / out.
7
8#pragma once
9
10#include <memory_resource>
11#include <nk/value/value.hpp>
12
13namespace nk::audio {
14
17
18
28Value hz2mel(const Value &hz, std::pmr::memory_resource *mr = nullptr);
29
35Value mel2hz(const Value &mel, std::pmr::memory_resource *mr = nullptr);
36
44Value hz2bark(const Value &hz, std::pmr::memory_resource *mr = nullptr);
45
52Value bark2hz(const Value &bark, std::pmr::memory_resource *mr = nullptr);
53
63Value hz2erb(const Value &hz, std::pmr::memory_resource *mr = nullptr);
64
71Value erb2hz(const Value &erb, std::pmr::memory_resource *mr = nullptr);
72
85Value phon2sone(const Value &phon,
86 bool standardIs532_2 = false,
87 std::pmr::memory_resource *mr = nullptr);
88
98Value sone2phon(const Value &sone,
99 bool standardIs532_2 = false,
100 std::pmr::memory_resource *mr = nullptr);
101
102
104} // namespace nk::audio
Core MATLAB-compatible multidimensional array and scalar value type.
Definition value.hpp:61
Value phon2sone(const Value &phon, bool standardIs532_2=false, std::pmr::memory_resource *mr=nullptr)
Phon → Sone — loudness-level to loudness conversion.
Value hz2mel(const Value &hz, std::pmr::memory_resource *mr=nullptr)
Hertz → Mel (O'Shaughnessy 1987 default form).
Value sone2phon(const Value &sone, bool standardIs532_2=false, std::pmr::memory_resource *mr=nullptr)
Sone → Phon — loudness to loudness-level conversion.
Value mel2hz(const Value &mel, std::pmr::memory_resource *mr=nullptr)
Mel → Hertz (inverse of hz2mel).
Value erb2hz(const Value &erb, std::pmr::memory_resource *mr=nullptr)
ERB → Hertz (inverse of hz2erb).
Value hz2erb(const Value &hz, std::pmr::memory_resource *mr=nullptr)
Hertz → ERB (Glasberg & Moore 1990).
Value hz2bark(const Value &hz, std::pmr::memory_resource *mr=nullptr)
Hertz → Bark (Traunmüller 1990 with low/high-frequency corrections).
Value bark2hz(const Value &bark, std::pmr::memory_resource *mr=nullptr)
Bark → Hertz (inverse of hz2bark).