Olaf
Overly Lightweight Acoustic Fingerprinting
Loading...
Searching...
No Matches
Olaf_Config Struct Reference

Configuration parameters defining the behaviour of Olaf. More...

#include <olaf_config.h>

Data Fields

char * dbFolder
int audioBlockSize
int audioSampleRate
int audioStepSize
int bytesPerAudioSample
bool verbose
int maxEventPointsPerBlock
int filterSizeTime
int halfFilterSizeTime
int filterSizeFrequency
int halfFilterSizeFrequency
float minEventPointMagnitude
int minFrequencyBin
int maxEventPointUsages
int maxEventPoints
int eventPointThreshold
bool sqrtMagnitude
bool useMagnitudeInfo
int numberOfEPsPerFP
int minTimeDistance
int maxTimeDistance
int minFreqDistance
int maxFreqDistance
size_t maxFingerprints
size_t maxResults
int searchRange
int minMatchCount
float minMatchTimeDiff
float keepMatchesFor
float printResultEvery
size_t maxDBCollisions

Detailed Description

Configuration parameters defining the behaviour of Olaf.

Olaf_Config configuration parameters define the behaviour of Olaf. The configuration determines how Olaf behaves. The configuration settings are set at compile time and should not change in between runs: if they do it is possible that e.g. indexed fingerprints do not match extracted prints any more.

Field Documentation

◆ audioBlockSize

int Olaf_Config::audioBlockSize

The size of a single audio block: e.g. 1024 samples

◆ audioSampleRate

int Olaf_Config::audioSampleRate

The sample rate of the incoming audio: e.g. 16000Hz.

◆ audioStepSize

int Olaf_Config::audioStepSize

The size of a step from one block of samples to the next: e.g. 128 samples.

◆ bytesPerAudioSample

int Olaf_Config::bytesPerAudioSample

The size of a single audio sample. For example a 32 bit float sample consists of 4 bytes

◆ eventPointThreshold

int Olaf_Config::eventPointThreshold

Once this number of event points is listed, start combining them into fingerprints: should be less than maxEventPoints

◆ filterSizeFrequency

int Olaf_Config::filterSizeFrequency

The filter size of the max filter in frequency (vertical direction), either expressed in fft bins or in MIDI notes (12 midi notes is an octave).

◆ filterSizeTime

int Olaf_Config::filterSizeTime

The filter size of the max filter in time (horizontal direction), expressed in blocks

◆ halfFilterSizeTime

int Olaf_Config::halfFilterSizeTime

Half of the filter size in time

◆ keepMatchesFor

float Olaf_Config::keepMatchesFor

After this time, in seconds, a match is forgotten. This especially relevant for streams. Set to 0 to keep all matches.

◆ maxDBCollisions

size_t Olaf_Config::maxDBCollisions

maximum number of results returned from the database It can be considered as the number of times a fingerprint hash is allowed to collide

◆ maxEventPoints

int Olaf_Config::maxEventPoints

Max number of event points before they are combined into fingerprints (parameter should not have any effect,except for memory use)

◆ maxEventPointsPerBlock

int Olaf_Config::maxEventPointsPerBlock

Max number of event points per audio block

◆ maxEventPointUsages

int Olaf_Config::maxEventPointUsages

the amount each event point is reused

◆ maxFingerprints

size_t Olaf_Config::maxFingerprints

The maximum number of fingerprints to keep in memory during fingerprint extraction.

◆ maxFreqDistance

int Olaf_Config::maxFreqDistance

The maximum frequency bin distance in fft bins.

◆ maxResults

size_t Olaf_Config::maxResults

The maximum number of result in the matching step.

◆ maxTimeDistance

int Olaf_Config::maxTimeDistance

The maximum time distance of event points in time steps.

◆ minEventPointMagnitude

float Olaf_Config::minEventPointMagnitude

To avoid extracting event points of silence, the ep magnitude should be at least this value

◆ minFreqDistance

int Olaf_Config::minFreqDistance

The minimum frequency bin distance in fft bins.

◆ minFrequencyBin

int Olaf_Config::minFrequencyBin

Frequency bins below this value are not used in ep extraction.

◆ minMatchCount

int Olaf_Config::minMatchCount

The minimum number of aligned matches before reporting match

◆ minMatchTimeDiff

float Olaf_Config::minMatchTimeDiff

The minimum duration of a match before it is reported: 5 matches over 2 seconds indicates a more reliable match than 5 matches in 0.1s. It is expressed in seconds. Zero means that all matches are reported.

◆ minTimeDistance

int Olaf_Config::minTimeDistance

The minimum time distance of event points in time steps.

◆ numberOfEPsPerFP

int Olaf_Config::numberOfEPsPerFP

Number of event points per fingerprint. Should be either three (for clean queries) or two for noisy queries.

◆ printResultEvery

float Olaf_Config::printResultEvery

Print result every x seconds

◆ searchRange

int Olaf_Config::searchRange

The search range which allows small deviations from the fingerprint hashes.

◆ sqrtMagnitude

bool Olaf_Config::sqrtMagnitude

Calculating the square root of the magnitude is not strictly needed for event point extraction, but for debug and visualization it can be practical, default is false.

◆ useMagnitudeInfo

bool Olaf_Config::useMagnitudeInfo

Include magnitude info in fingerprints or not. For over the air queries it is best to not include magnitude info in fingerprint

◆ verbose

bool Olaf_Config::verbose

Print debug info. If true a lot of messages are printed to the console.


The documentation for this struct was generated from the following file: