#include <MusicScaleFilterBank.h>
|
| void | musicScaleFilterUnrolled (std::vector< std::vector< float > > &filteredLogSpec, std::vector< std::vector< float > > &spectrum, int frame) |
| | A sparse unrolled version of the nested matrix multiply loops used in the filterSpectrum() method.
|
| |
| void | musicScaleFilterUnrolled96000 (std::vector< std::vector< float > > &filteredLogSpec, const std::vector< std::vector< float > > &spectrum, int frame) |
| |
| void | musicScaleFilterUnrolled48000 (std::vector< std::vector< float > > &filteredLogSpec, const std::vector< std::vector< float > > &spectrum, int frame) |
| |
| void | musicScaleFilterUnrolled44100 (std::vector< std::vector< float > > &filteredLogSpec, const std::vector< std::vector< float > > &spectrum, int frame) |
| |
| void | musicScaleFilterUnrolled22050 (std::vector< std::vector< float > > &filteredLogSpec, const std::vector< std::vector< float > > &spectrum, int frame) |
| |
| void | buildLogFreqAxis () |
| |
| std::vector< float > | mapNotesToFFTBins () |
| |
| std::vector< std::vector< float > > | buildFilterBank () |
| |
| std::vector< float > | triangularFilterCoeff (float start, float mid, float stop) |
| |
◆ MusicScaleFilterBank()
| krotos::MusicScaleFilterBank::MusicScaleFilterBank |
( |
float | sampleRate | ) |
|
Constructor
Copyright Krotos LTD 2023
All rights reserved.
◆ buildFilterBank()
| std::vector< std::vector< float > > krotos::MusicScaleFilterBank::buildFilterBank |
( |
| ) |
|
|
private |
◆ buildLogFreqAxis()
| void krotos::MusicScaleFilterBank::buildLogFreqAxis |
( |
| ) |
|
|
private |
Get the list of frequencies aligned on the logarithmic scale.
◆ filterSpectrum()
| std::vector< std::vector< float > > krotos::MusicScaleFilterBank::filterSpectrum |
( |
const std::vector< std::vector< float > > & | spectrum | ) |
|
Apply filterbank to the incoming spectrogram
- Parameters
-
| spectrum | incoming STFT matrix |
- Returns
- filtered spectrogram
◆ mapNotesToFFTBins()
| std::vector< float > krotos::MusicScaleFilterBank::mapNotesToFFTBins |
( |
| ) |
|
|
private |
Map logarithmic frequencies to FFT bins.
◆ musicScaleFilterUnrolled()
| void krotos::MusicScaleFilterBank::musicScaleFilterUnrolled |
( |
std::vector< std::vector< float > > & | filteredLogSpec, |
|
|
std::vector< std::vector< float > > & | spectrum, |
|
|
int | frame ) |
|
private |
A sparse unrolled version of the nested matrix multiply loops used in the filterSpectrum() method.
- Parameters
-
| filteredLogSpec | |
| spectrum | |
| frame | |
Copyright Krotos LTD 2023
All rights reserved.
◆ musicScaleFilterUnrolled22050()
| void krotos::MusicScaleFilterBank::musicScaleFilterUnrolled22050 |
( |
std::vector< std::vector< float > > & | filteredLogSpec, |
|
|
const std::vector< std::vector< float > > & | spectrum, |
|
|
int | frame ) |
|
private |
◆ musicScaleFilterUnrolled44100()
| void krotos::MusicScaleFilterBank::musicScaleFilterUnrolled44100 |
( |
std::vector< std::vector< float > > & | filteredLogSpec, |
|
|
const std::vector< std::vector< float > > & | spectrum, |
|
|
int | frame ) |
|
private |
◆ musicScaleFilterUnrolled48000()
| void krotos::MusicScaleFilterBank::musicScaleFilterUnrolled48000 |
( |
std::vector< std::vector< float > > & | filteredLogSpec, |
|
|
const std::vector< std::vector< float > > & | spectrum, |
|
|
int | frame ) |
|
private |
◆ musicScaleFilterUnrolled96000()
| void krotos::MusicScaleFilterBank::musicScaleFilterUnrolled96000 |
( |
std::vector< std::vector< float > > & | filteredLogSpec, |
|
|
const std::vector< std::vector< float > > & | spectrum, |
|
|
int | frame ) |
|
private |
◆ setParameters()
| void krotos::MusicScaleFilterBank::setParameters |
( |
float | fMin, |
|
|
float | fMax, |
|
|
int | numBandsPerOctave, |
|
|
int | numFFTBins ) |
Sets the frequency logarithmic scale conversion parameters
- Parameters
-
| fMin | minimum frequency we want represented [Hz] |
| fMax | the maximum frequency [Hz] |
| numBandsPerOctave | number of filter bands |
| numFFTBins | number of FFT coefficients |
◆ setSamplingRate()
| void krotos::MusicScaleFilterBank::setSamplingRate |
( |
float | fs | ) |
|
Sets the sampling Rate
- Parameters
-
◆ triangularFilterCoeff()
| std::vector< float > krotos::MusicScaleFilterBank::triangularFilterCoeff |
( |
float | start, |
|
|
float | mid, |
|
|
float | stop ) |
|
private |
Calculates a triangular filter of the given size.
◆ m_A4
| const float krotos::MusicScaleFilterBank::m_A4 = 440.0f |
|
private |
◆ m_bandsPerOct
| int krotos::MusicScaleFilterBank::m_bandsPerOct |
|
private |
◆ m_filterBank
| std::vector<std::vector<float> > krotos::MusicScaleFilterBank::m_filterBank |
|
private |
◆ m_freqLogAxis
| std::vector<float> krotos::MusicScaleFilterBank::m_freqLogAxis |
|
private |
◆ m_maxFreq
| float krotos::MusicScaleFilterBank::m_maxFreq |
|
private |
◆ m_minFreq
| float krotos::MusicScaleFilterBank::m_minFreq |
|
private |
◆ m_numBands
| int krotos::MusicScaleFilterBank::m_numBands {0} |
|
private |
◆ m_numFFTBins
| int krotos::MusicScaleFilterBank::m_numFFTBins {-1} |
|
private |
◆ m_samplingRate
| float krotos::MusicScaleFilterBank::m_samplingRate {-1.0f} |
|
private |
◆ sr_225k
| const float krotos::MusicScaleFilterBank::sr_225k = 22050.0f |
|
private |
◆ sr_441k
| const float krotos::MusicScaleFilterBank::sr_441k = 44100.0f |
|
private |
◆ sr_48k
| const float krotos::MusicScaleFilterBank::sr_48k = 48000.0f |
|
private |
◆ sr_96k
| const float krotos::MusicScaleFilterBank::sr_96k = 96000.0f |
|
private |
The documentation for this class was generated from the following files: