本文整理汇总了C#中Filter.Cleanup方法的典型用法代码示例。如果您正苦于以下问题:C# Filter.Cleanup方法的具体用法?C# Filter.Cleanup怎么用?C# Filter.Cleanup使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Filter
的用法示例。
在下文中一共展示了Filter.Cleanup方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: GetOnsets
private void GetOnsets(Wav w, MemoryAllocator allocator)
{
//construct the spectrogram
var s = new Spectrogram(w, allocator, _options.WindowSize, _options.FPS, _options.Online, NeedPhaseInformation(_options.DetectionFunction));
//perform adaptive whitening
if (_options.AdaptiveWhitening) s.AW(_options.AWFloor, _options.AWRelax);
//construct the filterbank
var filt = new Filter(_options.WindowSize / 2, w.Samplerate, allocator);
//filter the spectrogram
s.Filter(filt.Filterbank);
//take the log of the spectrogram
if (_options.Log) s.Log(_options.LogMultiplier, _options.LogAdd);
//calculate the activations
var sodf = new SpectralODF(s, allocator);
var act = GetActivations(sodf, _options.DetectionFunction);
//detect the onsets
var o = new Onsets(act, _options.FPS);
o.Detect(_options.ActivationThreshold, _options.MinimumTimeDelta, delay: w.Delay * 1000);
var count = o.Detections.Count(f => f < (w.Delay + w.Padding));
//add the onsets to the collection
lock (_lock)
{
_onsets.AddRange(o.Detections.Skip(count));
_amplitudes.AddRange(o.Amplitudes.Skip(count));
}
_completed++;
ProgressReporter.Report(String.Format("{0}%", Math.Round((((float)_completed / _sliceCount))*100f)));
//cleanup
s.Cleanup();
filt.Cleanup();
}