public float[] DetectOnsets(IFrameData waveData, int samplesPerSecond, int sampleWindowSize, float sensitivity = 1.5f) { _onsetDetection = new OnsetDetection(sampleWindowSize, samplesPerSecond); waveData.BeginChunkyRead(sampleWindowSize); IFrameDataSubset subset = null; while(waveData.ReadChunk(ref subset)) { var mono = ConvertStereoToMono(subset); _onsetDetection.AddFlux(mono); } var onsets = _onsetDetection.FindOnsets(sensitivity); _onsetDetection.NormalizeOnsets(onsets, 0); return onsets; }
public float[] DetectOnsets(IFrameData waveData, int samplesPerSecond, int sampleWindowSize, float sensitivity = 1.5f) { _onsetDetection = new OnsetDetection(sampleWindowSize, samplesPerSecond); waveData.BeginChunkyRead(sampleWindowSize); IFrameDataSubset subset = null; while (waveData.ReadChunk(ref subset)) { var mono = ConvertStereoToMono(subset); _onsetDetection.AddFlux(mono); } var onsets = _onsetDetection.FindOnsets(sensitivity); _onsetDetection.NormalizeOnsets(onsets, 0); return(onsets); }