Krotos Modules 3
Loading...
Searching...
No Matches
krotos::KrotosAudioBufferDSP Class Reference

#include <KrotosAudioBufferDSP.h>

Inheritance diagram for krotos::KrotosAudioBufferDSP:
krotos::KrotosAudioBuffer krotos::SampleEngine

Public Types

enum class  SegmentationMethod {
  SegmentationNone = 0 , STFT = 32 , EnvOnset = 64 , OverlapWindow = 96 ,
  SuperFlux = 128 , NUM_SEGMENTATIONS = 129
}
 
enum class  FeatureExtrMethod {
  FeatureExtrMethodNone = 0 , Harmonic_PitchEstimation = 1 , MFCC_PCA = 32 , Centroid_Level = 64 ,
  SpCentroid_RMS = 96 , SpFlatness_RMS = 128 , ERBSpCentroid_RMS = 160 , ERBSpCentroid_ERBSpFlatness = 192 ,
  NUM_FEATUREMETHODS = 193
}
 
enum class  AnalysisScheme { SchemeNone = 0 , Vehicle , GeneralScheme , NUM_SCHEMES }
 
- Public Types inherited from krotos::KrotosAudioBuffer
enum  BufferType { Samples = 0 , Spectral }
 
enum  InterpolationType {
  Linear = 0 , Cubic , Cosine , Cubic3d ,
  NUM_TYPES
}
 

Public Member Functions

 KrotosAudioBufferDSP ()
 
 ~KrotosAudioBufferDSP ()
 
void exitSignalSent () override
 
void generalScheme ()
 
void writeSpectrogramToFile (const std::vector< std::vector< float > > &spectrogram, const juce::String filename)
 
void writeFeatureToFile (const std::vector< float > &feature, const std::string &filename)
 
float crossCorrelate (const float *referencePointer, const float *candidatePointer, const int testSize)
 crossCorrelate - Perform a cross-correlation function
 
float autoCorrelateCentred (int centerIndex, int testSize)
 autoCorrelateCentred - Autocorrelate both sides of supplied index
 
int calcFreeGrain (int centerIndex, int previousGrainSize, GrainRange range)
 calcFreeGrain - find the next grain size
 
void setPhaseAnalysisCoefficients (AnalysisCoefficientsPhase coeff)
 
int size ()
 
float * data ()
 
AnalysisCoefficientsgetAnalysisCoefficients ()
 
void analyse ()
 analyse Analyses the audio waveform stored in the buffer according to the selected scheme This method needs to be non-blocking so it doesn't hold up the message thread. If there is already an analysis in progress, this method will ask the thread to exit then restart it
 
void analysePhase ()
 
void setDefaultPhaseAnalysisCoefficients ()
 
void invalidate ()
 
void validate ()
 
bool analysisResultsAreValid ()
 
void triggerDisplayCacheRegeneration ()
 
bool shouldRegenerateDisplayCache ()
 
bool scanForGrainsFreeMarker (std::vector< int > &returnGrains, const int audioIndexStart, const int useableIndexEnd, const int startGrainSize)
 
bool scanBackwardsForGrainsFreeMarker (std::vector< int > &returnGrains, const int audioIndexStart, const int useableIndexEnd, const int startGrainSize)
 
void buildDescriptors (std::vector< AudioDescriptor > &descriptors, const std::vector< int > &grainsList, const int startGrainAudioIndex, bool goingBackwards)
 
void setAnalysisWavRange (float start, float end)
 setAnalysisWavRange - define a subset of the audio range for analysis
 
void setAnalysisGrainSizeRange ()
 Set the frequency range we want to analyse for.
 
std::vector< AudioDescriptor > & getGrainDescriptionByTime ()
 
std::vector< AudioDescriptor > & getGrainDescriptionByZ ()
 
std::size_t getNearestNeighbour2D (float x, float y)
 
std::vector< std::size_t > getNearestNeighbour2D (float x, float y, std::size_t k)
 
std::vector< std::size_t > getNearestNeighbour2D (float x, float y, float search_radius)
 
std::size_t getNearestNeighbour3D (float x, float y, float z)
 
std::vector< std::size_t > getNearestNeighbour3D (float x, float y, float z, std::size_t k)
 
std::vector< std::size_t > getNearestNeighbour3D (float x, float y, float z, float search_radius)
 
void setTrackingValue (float newValue)
 
void setTrackingCycles (float newValue)
 
AudioDescriptoraudioIndexToDescriptor (int audioIndex)
 
AudioDescriptoraudioPercentToDescriptor (float audioPercent)
 
AudioDescriptoraudioFrequencyToDescriptor (float frequency)
 
void clampGrainDescriptionByTimeIndex (size_t &index)
 
StereoSample getSampleFromGrainPhase (double grainPhase)
 
double getFrequencyFromGrainPhase (double grainPhase)
 
ProgressTrackergetProgressTracker ()
 Get a reference to this buffer's ProgressTracker.
 
SegmentationMethod getSegmentationMethod () const
 
FeatureExtrMethod getFeatureExtractionMethod ()
 
AnalysisScheme getAnalysisScheme ()
 
void setSegmentationMethod (SegmentationMethod segmentation)
 
void setFeatureExtrMethod (FeatureExtrMethod featureExtraction)
 
void setAnalysisScheme (AnalysisScheme scheme)
 
- Public Member Functions inherited from krotos::KrotosAudioBuffer
 KrotosAudioBuffer ()
 
 KrotosAudioBuffer (int channels, int size)
 
 KrotosAudioBuffer (const AudioBuffer< float > &buffer)
 Creates a krotos buffer from a juce buffer.
 
 KrotosAudioBuffer (const AudioBuffer< float > &buffer, int numOfChannels)
 Creates a krotos buffer from a juce buffer but with a new number of channels, this constructor tries to be as efficient as possible by not reallocating or clearing the extra space.
 
 ~KrotosAudioBuffer ()
 
float getPeak (int channel) const
 
float getRMS (int channel) const
 
void setSize (int newNumChannels, int numSamples, bool keepExistingContent=true, bool clearExtraSpace=true, bool avoidReallocating=true)
 
void setSize (KrotosAudioBuffer &prototypeBuffer)
 
void copyFrom (int destChannel, const float *source, int numSamples)
 
void copyFrom (KrotosAudioBuffer &sourceBuffer)
 
void addFrom (int destChannel, const float *source, int numSamples)
 
void addFrom (KrotosAudioBuffer &srcBuffer)
 
void processWetDry (KrotosAudioBuffer &wetBuffer, SmoothedFloat &wetDryValue)
 
void processGain (SmoothedFloat &gainFactor)
 
void processGain (float gainFactor)
 
void processPan (SmoothedFloat &panValue)
 
bool processClamp (float clampValue)
 
void fillWithNoise ()
 
void processMute (MuteStateMachine &state)
 
void setDataValid (bool state)
 
bool isDataValid () const
 
void setSampleRate (float sampleRate)
 
float getSampleRate (void)
 
void setSourceSampleRate (float sampleRate)
 
float getSourceSampleRate (void)
 
float getNativeNoteFrequency (void)
 
void setInterpolationType (InterpolationType newInterpolationType)
 
StereoSample makeRamp (StereoSample startValue, int samples)
 Create a ramp in the buffer.
 
StereoSample getLastSample ()
 Get the last stereo sample from the audio buffer.
 
StereoSample getInterpolatedSample (double index)
 Get a stereo sample from the audio buffer.
 
float getInterpolatedSampleMono (float playHead)
 
KrotosAudioBuffer getMonoBuffer ()
 
void reverse (int channel, int startSample, int numSamples)
 
void reverse (int startSample, int numSamples)
 
juce::AudioBuffer< float > & getJuceAudioBuffer ()
 
void equalPowerCrossFadeFrom (const KrotosAudioBuffer &previousBuffer)
 
float findAbsMax ()
 
void normaliseTo (float scale)
 

Private Member Functions

void timerCallback () override
 
void run () override
 
void cleanupAnalysis ()
 
std::vector< float > averageBufferToMono ()
 
std::vector< std::vector< float > > segmentOnsetSlices (std::vector< int > onsetPositions, std::vector< float > signalBufferMono)
 
std::vector< std::vector< float > > segmentChunks (std::vector< int > onsetPositions, std::vector< float > signalBufferMono, std::size_t window_length)
 
std::vector< int > chunk (const std::vector< float > &bufferVector, std::size_t window_length, std::size_t hop_length)
 
std::vector< int > envelopeOnsetDetection (const std::vector< float > &bufferVector, float samplerate)
 
std::vector< int > superFluxOnsetDetection (float samplerate)
 
std::vector< AudioDescriptorgetDescriptorsTime (const std::vector< std::vector< float > > &timeDomainSlices, const std::vector< int > &onsetPositions)
 
std::vector< std::vector< float > > mfccFeatureExtraction (std::vector< std::vector< float > > &timeDomainSlices, const std::vector< int > &onsetPositions)
 
std::vector< std::vector< float > > temporalFeatureExtraction (std::vector< std::vector< float > > &timeDomainSlices)
 
std::vector< std::vector< float > > specCntrRMS_FeatureExtraction (std::vector< std::vector< float > > &timeDomainSlices)
 
std::vector< std::vector< float > > specFlatnessRMS_FeatureExtraction (std::vector< std::vector< float > > &timeDomainSlices)
 
std::vector< std::vector< float > > erbSpecCentroidRMS_FeatureExtraction (std::vector< std::vector< float > > &timeDomainSlices)
 
std::vector< std::vector< float > > erbSpecCentroidFlatness_FeatureExtraction (std::vector< std::vector< float > > &timeDomainSlices)
 
std::vector< std::vector< float > > harmonicPitchEstimation (std::vector< std::vector< float > > &timeDomainSlices)
 
std::vector< std::vector< float > > pitchPeakRMSFeatureExtraction (std::vector< std::vector< float > > &timeDomainSlices)
 
void applyPCA (std::vector< std::vector< float > > &features, const std::size_t &n_components)
 
void setFeaturesAndNormalise (const std::vector< std::vector< float > > &features, std::vector< AudioDescriptor > &descriptorsTime)
 
void buildKNNIndex (const std::vector< AudioDescriptor > &descriptorsTime)
 
void buildKNNIndexWithZ (const std::vector< AudioDescriptor > &descriptorsTime)
 
void sortByZ (const std::vector< AudioDescriptor > &descriptorsTime)
 

Private Attributes

const int ANALYSIS_TIMER_PERIOD {250}
 
SegmentationMethod m_segmentationMethod {SegmentationMethod::SegmentationNone}
 
FeatureExtrMethod m_featureMethod {FeatureExtrMethod::FeatureExtrMethodNone}
 
AnalysisScheme m_analysisScheme {AnalysisScheme::SchemeNone}
 
AnalysisCoefficients m_AnalysisCoefficients
 
ProgressTracker m_progressTracker
 
float m_trackingValue {0.5f}
 
float m_trackingCycles {1.0f}
 
GrainRange m_analysisGrainSizeRange
 
volatile std::atomic< bool > m_trackingDataIsValid {false}
 
volatile std::atomic< bool > m_requestDisplayCacheRegeneration {false}
 
std::vector< AudioDescriptorm_grainDescriptionByFrequency
 
std::vector< AudioDescriptorm_grainDescriptionByTime
 
std::vector< AudioDescriptorm_grainDescriptionByZ
 
std::unique_ptr< KDTreem_nnSearch
 
std::unique_ptr< KDTreem_grainMapper
 
std::unique_ptr< PCA > m_principalComponentAnalysis
 
float m_startPos {0.0f}
 
float m_endPos {1.0f}
 
AnalysisCoefficientsPhase m_phaseAnalysisCoefficients
 
std::vector< std::vector< float > > m_timeDomainSlices
 
std::vector< int > m_onsetPositions
 
std::vector< AudioDescriptorm_descriptorsTime
 

Additional Inherited Members

- Static Public Member Functions inherited from krotos::KrotosAudioBuffer
static KrotosAudioBuffer mixToMono (KrotosAudioBuffer &multiChannelBuffer)
 

Member Enumeration Documentation

◆ AnalysisScheme

Enumerator
SchemeNone 
Vehicle 
GeneralScheme 
NUM_SCHEMES 

◆ FeatureExtrMethod

Enumerator
FeatureExtrMethodNone 
Harmonic_PitchEstimation 
MFCC_PCA 
Centroid_Level 
SpCentroid_RMS 
SpFlatness_RMS 
ERBSpCentroid_RMS 
ERBSpCentroid_ERBSpFlatness 
NUM_FEATUREMETHODS 

◆ SegmentationMethod

Enumerator
SegmentationNone 
STFT 
EnvOnset 
OverlapWindow 
SuperFlux 
NUM_SEGMENTATIONS 

Constructor & Destructor Documentation

◆ KrotosAudioBufferDSP()

krotos::KrotosAudioBufferDSP::KrotosAudioBufferDSP ( )

◆ ~KrotosAudioBufferDSP()

krotos::KrotosAudioBufferDSP::~KrotosAudioBufferDSP ( )
inline

Member Function Documentation

◆ analyse()

void krotos::KrotosAudioBufferDSP::analyse ( )

analyse Analyses the audio waveform stored in the buffer according to the selected scheme This method needs to be non-blocking so it doesn't hold up the message thread. If there is already an analysis in progress, this method will ask the thread to exit then restart it

◆ analysePhase()

void krotos::KrotosAudioBufferDSP::analysePhase ( )

◆ analysisResultsAreValid()

bool krotos::KrotosAudioBufferDSP::analysisResultsAreValid ( )
inline

◆ applyPCA()

void krotos::KrotosAudioBufferDSP::applyPCA ( std::vector< std::vector< float > > & features,
const std::size_t & n_components )
private

◆ audioFrequencyToDescriptor()

AudioDescriptor & krotos::KrotosAudioBufferDSP::audioFrequencyToDescriptor ( float frequency)

◆ audioIndexToDescriptor()

AudioDescriptor & krotos::KrotosAudioBufferDSP::audioIndexToDescriptor ( int audioIndex)

◆ audioPercentToDescriptor()

AudioDescriptor & krotos::KrotosAudioBufferDSP::audioPercentToDescriptor ( float audioPercent)

◆ autoCorrelateCentred()

float krotos::KrotosAudioBufferDSP::autoCorrelateCentred ( int centerIndex,
int testSize )

autoCorrelateCentred - Autocorrelate both sides of supplied index

Parameters
centerIndex
testSize
Returns
result

◆ averageBufferToMono()

std::vector< float > krotos::KrotosAudioBufferDSP::averageBufferToMono ( )
private

Average Signal to Mono.

◆ buildDescriptors()

void krotos::KrotosAudioBufferDSP::buildDescriptors ( std::vector< AudioDescriptor > & descriptors,
const std::vector< int > & grainsList,
const int startGrainAudioIndex,
bool goingBackwards = false )

◆ buildKNNIndex()

void krotos::KrotosAudioBufferDSP::buildKNNIndex ( const std::vector< AudioDescriptor > & descriptorsTime)
private

◆ buildKNNIndexWithZ()

void krotos::KrotosAudioBufferDSP::buildKNNIndexWithZ ( const std::vector< AudioDescriptor > & descriptorsTime)
private

◆ calcFreeGrain()

int krotos::KrotosAudioBufferDSP::calcFreeGrain ( int centerIndex,
int previousGrainSize,
GrainRange range )

calcFreeGrain - find the next grain size

Parameters
centerIndex
previousGrainSize
range
Returns
result in samples

◆ chunk()

std::vector< int > krotos::KrotosAudioBufferDSP::chunk ( const std::vector< float > & bufferVector,
std::size_t window_length,
std::size_t hop_length )
private

◆ clampGrainDescriptionByTimeIndex()

void krotos::KrotosAudioBufferDSP::clampGrainDescriptionByTimeIndex ( size_t & index)
inline

◆ cleanupAnalysis()

void krotos::KrotosAudioBufferDSP::cleanupAnalysis ( )
private

Cleanup after analysis, called on thread exit

◆ crossCorrelate()

float krotos::KrotosAudioBufferDSP::crossCorrelate ( const float * referencePointer,
const float * candidatePointer,
const int testSize )

crossCorrelate - Perform a cross-correlation function

Parameters
referencePointer- pointer to data
candidatePointer- pointer to data
testSize- size of data
Returns
returns result

◆ data()

float * krotos::KrotosAudioBufferDSP::data ( )
inline

◆ envelopeOnsetDetection()

std::vector< int > krotos::KrotosAudioBufferDSP::envelopeOnsetDetection ( const std::vector< float > & bufferVector,
float samplerate )
private

◆ erbSpecCentroidFlatness_FeatureExtraction()

std::vector< std::vector< float > > krotos::KrotosAudioBufferDSP::erbSpecCentroidFlatness_FeatureExtraction ( std::vector< std::vector< float > > & timeDomainSlices)
private

◆ erbSpecCentroidRMS_FeatureExtraction()

std::vector< std::vector< float > > krotos::KrotosAudioBufferDSP::erbSpecCentroidRMS_FeatureExtraction ( std::vector< std::vector< float > > & timeDomainSlices)
private

◆ exitSignalSent()

void krotos::KrotosAudioBufferDSP::exitSignalSent ( )
inlineoverride

◆ generalScheme()

void krotos::KrotosAudioBufferDSP::generalScheme ( )

◆ getAnalysisCoefficients()

AnalysisCoefficients & krotos::KrotosAudioBufferDSP::getAnalysisCoefficients ( )

◆ getAnalysisScheme()

AnalysisScheme krotos::KrotosAudioBufferDSP::getAnalysisScheme ( )
inline

◆ getDescriptorsTime()

std::vector< AudioDescriptor > krotos::KrotosAudioBufferDSP::getDescriptorsTime ( const std::vector< std::vector< float > > & timeDomainSlices,
const std::vector< int > & onsetPositions )
private

◆ getFeatureExtractionMethod()

FeatureExtrMethod krotos::KrotosAudioBufferDSP::getFeatureExtractionMethod ( )
inline

◆ getFrequencyFromGrainPhase()

double krotos::KrotosAudioBufferDSP::getFrequencyFromGrainPhase ( double grainPhase)
inline

◆ getGrainDescriptionByTime()

std::vector< AudioDescriptor > & krotos::KrotosAudioBufferDSP::getGrainDescriptionByTime ( )
inline

◆ getGrainDescriptionByZ()

std::vector< AudioDescriptor > & krotos::KrotosAudioBufferDSP::getGrainDescriptionByZ ( )
inline

◆ getNearestNeighbour2D() [1/3]

std::size_t krotos::KrotosAudioBufferDSP::getNearestNeighbour2D ( float x,
float y )
inline

◆ getNearestNeighbour2D() [2/3]

std::vector< std::size_t > krotos::KrotosAudioBufferDSP::getNearestNeighbour2D ( float x,
float y,
float search_radius )
inline

◆ getNearestNeighbour2D() [3/3]

std::vector< std::size_t > krotos::KrotosAudioBufferDSP::getNearestNeighbour2D ( float x,
float y,
std::size_t k )
inline

◆ getNearestNeighbour3D() [1/3]

std::size_t krotos::KrotosAudioBufferDSP::getNearestNeighbour3D ( float x,
float y,
float z )
inline

◆ getNearestNeighbour3D() [2/3]

std::vector< std::size_t > krotos::KrotosAudioBufferDSP::getNearestNeighbour3D ( float x,
float y,
float z,
float search_radius )
inline

◆ getNearestNeighbour3D() [3/3]

std::vector< std::size_t > krotos::KrotosAudioBufferDSP::getNearestNeighbour3D ( float x,
float y,
float z,
std::size_t k )
inline

◆ getProgressTracker()

ProgressTracker & krotos::krotos::KrotosAudioBufferDSP::getProgressTracker ( )

Get a reference to this buffer's ProgressTracker.

Returns
Reference to ProgressTracker

◆ getSampleFromGrainPhase()

StereoSample krotos::KrotosAudioBufferDSP::getSampleFromGrainPhase ( double grainPhase)
inline

◆ getSegmentationMethod()

SegmentationMethod krotos::KrotosAudioBufferDSP::getSegmentationMethod ( ) const
inline

◆ harmonicPitchEstimation()

std::vector< std::vector< float > > krotos::KrotosAudioBufferDSP::harmonicPitchEstimation ( std::vector< std::vector< float > > & timeDomainSlices)
private

◆ invalidate()

void krotos::KrotosAudioBufferDSP::invalidate ( )
inline

◆ mfccFeatureExtraction()

std::vector< std::vector< float > > krotos::KrotosAudioBufferDSP::mfccFeatureExtraction ( std::vector< std::vector< float > > & timeDomainSlices,
const std::vector< int > & onsetPositions )
private

◆ pitchPeakRMSFeatureExtraction()

std::vector< std::vector< float > > krotos::KrotosAudioBufferDSP::pitchPeakRMSFeatureExtraction ( std::vector< std::vector< float > > & timeDomainSlices)
private

◆ run()

void krotos::KrotosAudioBufferDSP::run ( )
overrideprivate

◆ scanBackwardsForGrainsFreeMarker()

bool krotos::KrotosAudioBufferDSP::scanBackwardsForGrainsFreeMarker ( std::vector< int > & returnGrains,
const int audioIndexStart,
const int useableIndexEnd,
const int startGrainSize )

◆ scanForGrainsFreeMarker()

bool krotos::KrotosAudioBufferDSP::scanForGrainsFreeMarker ( std::vector< int > & returnGrains,
const int audioIndexStart,
const int useableIndexEnd,
const int startGrainSize )

◆ segmentChunks()

std::vector< std::vector< float > > krotos::KrotosAudioBufferDSP::segmentChunks ( std::vector< int > onsetPositions,
std::vector< float > signalBufferMono,
std::size_t window_length )
private

◆ segmentOnsetSlices()

std::vector< std::vector< float > > krotos::KrotosAudioBufferDSP::segmentOnsetSlices ( std::vector< int > onsetPositions,
std::vector< float > signalBufferMono )
private

Create sub Buffers from the onsetPositions.

◆ setAnalysisGrainSizeRange()

void krotos::KrotosAudioBufferDSP::setAnalysisGrainSizeRange ( )

Set the frequency range we want to analyse for.

◆ setAnalysisScheme()

void krotos::KrotosAudioBufferDSP::setAnalysisScheme ( AnalysisScheme scheme)
inline

◆ setAnalysisWavRange()

void krotos::KrotosAudioBufferDSP::setAnalysisWavRange ( float start,
float end )
inline

setAnalysisWavRange - define a subset of the audio range for analysis

Parameters
start
end

◆ setDefaultPhaseAnalysisCoefficients()

void krotos::KrotosAudioBufferDSP::setDefaultPhaseAnalysisCoefficients ( )

◆ setFeatureExtrMethod()

void krotos::KrotosAudioBufferDSP::setFeatureExtrMethod ( FeatureExtrMethod featureExtraction)
inline

◆ setFeaturesAndNormalise()

void krotos::KrotosAudioBufferDSP::setFeaturesAndNormalise ( const std::vector< std::vector< float > > & features,
std::vector< AudioDescriptor > & descriptorsTime )
private

◆ setPhaseAnalysisCoefficients()

void krotos::KrotosAudioBufferDSP::setPhaseAnalysisCoefficients ( AnalysisCoefficientsPhase coeff)
inline

◆ setSegmentationMethod()

void krotos::KrotosAudioBufferDSP::setSegmentationMethod ( SegmentationMethod segmentation)
inline

◆ setTrackingCycles()

void krotos::KrotosAudioBufferDSP::setTrackingCycles ( float newValue)
inline

◆ setTrackingValue()

void krotos::KrotosAudioBufferDSP::setTrackingValue ( float newValue)
inline

◆ shouldRegenerateDisplayCache()

bool krotos::KrotosAudioBufferDSP::shouldRegenerateDisplayCache ( )

◆ size()

int krotos::KrotosAudioBufferDSP::size ( )
inline

◆ sortByZ()

void krotos::KrotosAudioBufferDSP::sortByZ ( const std::vector< AudioDescriptor > & descriptorsTime)
private

◆ specCntrRMS_FeatureExtraction()

std::vector< std::vector< float > > krotos::KrotosAudioBufferDSP::specCntrRMS_FeatureExtraction ( std::vector< std::vector< float > > & timeDomainSlices)
private

◆ specFlatnessRMS_FeatureExtraction()

std::vector< std::vector< float > > krotos::KrotosAudioBufferDSP::specFlatnessRMS_FeatureExtraction ( std::vector< std::vector< float > > & timeDomainSlices)
private

◆ superFluxOnsetDetection()

std::vector< int > krotos::KrotosAudioBufferDSP::superFluxOnsetDetection ( float samplerate)
private

◆ temporalFeatureExtraction()

std::vector< std::vector< float > > krotos::KrotosAudioBufferDSP::temporalFeatureExtraction ( std::vector< std::vector< float > > & timeDomainSlices)
private

◆ timerCallback()

void krotos::KrotosAudioBufferDSP::timerCallback ( )
overrideprivate

◆ triggerDisplayCacheRegeneration()

void krotos::KrotosAudioBufferDSP::triggerDisplayCacheRegeneration ( )
inline

◆ validate()

void krotos::KrotosAudioBufferDSP::validate ( )
inline

◆ writeFeatureToFile()

void krotos::KrotosAudioBufferDSP::writeFeatureToFile ( const std::vector< float > & feature,
const std::string & filename )
inline

◆ writeSpectrogramToFile()

void krotos::KrotosAudioBufferDSP::writeSpectrogramToFile ( const std::vector< std::vector< float > > & spectrogram,
const juce::String filename )
inline

Member Data Documentation

◆ ANALYSIS_TIMER_PERIOD

const int krotos::KrotosAudioBufferDSP::ANALYSIS_TIMER_PERIOD {250}
private

◆ m_AnalysisCoefficients

AnalysisCoefficients krotos::KrotosAudioBufferDSP::m_AnalysisCoefficients
private

◆ m_analysisGrainSizeRange

GrainRange krotos::KrotosAudioBufferDSP::m_analysisGrainSizeRange
private

◆ m_analysisScheme

AnalysisScheme krotos::KrotosAudioBufferDSP::m_analysisScheme {AnalysisScheme::SchemeNone}
private

◆ m_descriptorsTime

std::vector<AudioDescriptor> krotos::KrotosAudioBufferDSP::m_descriptorsTime
private

◆ m_endPos

float krotos::KrotosAudioBufferDSP::m_endPos {1.0f}
private

◆ m_featureMethod

FeatureExtrMethod krotos::KrotosAudioBufferDSP::m_featureMethod {FeatureExtrMethod::FeatureExtrMethodNone}
private

◆ m_grainDescriptionByFrequency

std::vector<AudioDescriptor> krotos::KrotosAudioBufferDSP::m_grainDescriptionByFrequency
private

◆ m_grainDescriptionByTime

std::vector<AudioDescriptor> krotos::KrotosAudioBufferDSP::m_grainDescriptionByTime
private

◆ m_grainDescriptionByZ

std::vector<AudioDescriptor> krotos::KrotosAudioBufferDSP::m_grainDescriptionByZ
private

◆ m_grainMapper

std::unique_ptr<KDTree> krotos::KrotosAudioBufferDSP::m_grainMapper
private

◆ m_nnSearch

std::unique_ptr<KDTree> krotos::KrotosAudioBufferDSP::m_nnSearch
private

◆ m_onsetPositions

std::vector<int> krotos::KrotosAudioBufferDSP::m_onsetPositions
private

◆ m_phaseAnalysisCoefficients

AnalysisCoefficientsPhase krotos::KrotosAudioBufferDSP::m_phaseAnalysisCoefficients
private

◆ m_principalComponentAnalysis

std::unique_ptr<PCA> krotos::KrotosAudioBufferDSP::m_principalComponentAnalysis
private

◆ m_progressTracker

ProgressTracker krotos::KrotosAudioBufferDSP::m_progressTracker
private

◆ m_requestDisplayCacheRegeneration

volatile std::atomic<bool> krotos::KrotosAudioBufferDSP::m_requestDisplayCacheRegeneration {false}
private

◆ m_segmentationMethod

SegmentationMethod krotos::KrotosAudioBufferDSP::m_segmentationMethod {SegmentationMethod::SegmentationNone}
private

◆ m_startPos

float krotos::KrotosAudioBufferDSP::m_startPos {0.0f}
private

◆ m_timeDomainSlices

std::vector<std::vector<float> > krotos::KrotosAudioBufferDSP::m_timeDomainSlices
private

◆ m_trackingCycles

float krotos::KrotosAudioBufferDSP::m_trackingCycles {1.0f}
private

◆ m_trackingDataIsValid

volatile std::atomic<bool> krotos::KrotosAudioBufferDSP::m_trackingDataIsValid {false}
private

◆ m_trackingValue

float krotos::KrotosAudioBufferDSP::m_trackingValue {0.5f}
private

The documentation for this class was generated from the following files: