diff --git a/src/AudioAnalysisTools/DSP/DSP_Filters.cs b/src/AudioAnalysisTools/DSP/DSP_Filters.cs index 130a22dc0..079c2dd8f 100644 --- a/src/AudioAnalysisTools/DSP/DSP_Filters.cs +++ b/src/AudioAnalysisTools/DSP/DSP_Filters.cs @@ -78,7 +78,7 @@ public static void TestMethod_GenerateSignal2() int sampleRate = 64000; double duration = 30; // signal duration in seconds int[] harmonics = { 500, 1000, 2000, 4000, 8000 }; - var freqScale = new FrequencyScale(FreqScaleType.Linear125Octaves7Tones28Nyquist32000); + var freqScale = new FrequencyScale(FreqScaleType.Linear125OctaveTones28Nyquist32000); string path = @"C:\SensorNetworks\Output\Sonograms\UnitTestSonograms\SineSignal2.png"; var recording = GenerateTestRecording(sampleRate, duration, harmonics, WaveType.Cosine); diff --git a/src/AudioAnalysisTools/DSP/FrequencyScale.cs b/src/AudioAnalysisTools/DSP/FrequencyScale.cs index 9b9927382..391d41103 100644 --- a/src/AudioAnalysisTools/DSP/FrequencyScale.cs +++ b/src/AudioAnalysisTools/DSP/FrequencyScale.cs @@ -26,14 +26,11 @@ public enum FreqScaleType Linear = 0, Mel = 1, LinearOctaveStandard = 2, - Linear62Octaves7Tones31Nyquist11025 = 3, - Linear125Octaves6Tones30Nyquist11025 = 4, - OctaveDataReduction = 5, + Linear62OctaveTones31Nyquist11025 = 3, + Linear125OctaveTones30Nyquist11025 = 4, + Linear125OctaveTones28Nyquist32000 = 5, Octaves24Nyquist32000 = 6, - Linear125Octaves7Tones28Nyquist32000 = 7, - - // alias Octave to predefined choice - Octave = Linear125Octaves7Tones28Nyquist32000, + OctaveDataReduction = 7, } public class FrequencyScale @@ -70,7 +67,7 @@ public FrequencyScale(FreqScaleType type, int nyquist, int frameSize, int finalB if (type == FreqScaleType.Mel) { this.BinBounds = this.GetMelBinBounds(); - this.GridLineLocations = GetMelGridLineLocations(this.HertzGridInterval, nyquist, this.FinalBinCount); + this.GridLineLocations = SpectrogramMelScale.GetMelGridLineLocations(this.HertzGridInterval, nyquist, this.FinalBinCount); this.LinearBound = 1000; } else @@ -103,13 +100,9 @@ public FrequencyScale(FreqScaleType fst) } else if (fst == FreqScaleType.Mel) { - LoggedConsole.WriteErrorLine("WARNING: Assigning DEFAULT parameters for MEL FREQUENCY SCALE."); - this.Nyquist = 11025; - this.WindowSize = 512; - this.FinalBinCount = 128; - this.HertzGridInterval = 1000; - this.LinearBound = this.Nyquist; - this.GridLineLocations = GetMelGridLineLocations(this.HertzGridInterval, this.Nyquist, this.FinalBinCount); + // TODO - This scale type is YET TO BE IMPLEMENTED. + // MEL SCALE spectrograms are available by direct call to SpectrogramGenerator.Core.GetMelScaleSpectrogram() + SpectrogramMelScale.GetStandardMelScale(this); } else { @@ -153,12 +146,6 @@ public FrequencyScale(FreqScaleType fst) /// public int LinearBound { get; set; } - /// - /// Gets or sets number of octave to appear above the linear part of scale. - /// Can have a fraction of an octave. - /// - public double OctaveCount { get; set; } - /// /// Gets or sets number of bands or tones per octave. /// @@ -308,33 +295,9 @@ public static int[] CreateLinearYaxis(int herzInterval, int nyquistFreq, int ima return vScale; } - /// - /// THIS METHOD NEEDS TO BE DEBUGGED. HAS NOT BEEN USED IN YEARS! - /// Use this method to generate grid lines for mel scale image - /// Currently this method is only called from BaseSonogram.GetImage() when bool doMelScale = true; - /// Frequencyscale.Draw1kHzLines(Image{Rgb24} bmp, bool doMelScale, int nyquist, double freqBinWidth). - /// - public static int[,] GetMelGridLineLocations(int gridIntervalInHertz, int nyquistFreq, int melBinCount) + public static void DrawFrequencyLinesOnImage(Image bmp, FrequencyScale freqScale, bool includeLabels) { - double maxMel = (int)MFCCStuff.Mel(nyquistFreq); - double melPerBin = maxMel / melBinCount; - int gridCount = nyquistFreq / gridIntervalInHertz; - - var gridLines = new int[gridCount, 2]; - - for (int f = 1; f <= gridCount; f++) - { - int herz = f * 1000; - int melValue = (int)MFCCStuff.Mel(herz); - int melBinId = (int)(melValue / melPerBin); - if (melBinId < melBinCount) - { - gridLines[f - 1, 0] = melBinId; - gridLines[f - 1, 1] = herz; - } - } - - return gridLines; + DrawFrequencyLinesOnImage(bmp, freqScale.GridLineLocations, includeLabels); } public static void DrawFrequencyLinesOnImage(Image bmp, int[,] gridLineLocations, bool includeLabels) @@ -412,289 +375,5 @@ public static void DrawFrequencyLinesOnImage(Image bmp, int[,] gridLineLo } }); } //end AddHzGridLines() - - public static void DrawFrequencyLinesOnImage(Image bmp, FrequencyScale freqScale, bool includeLabels) - { - DrawFrequencyLinesOnImage(bmp, freqScale.GridLineLocations, includeLabels); - } - - // **************************************************************************************************************************** - // ******** BELOW ARE SET OF TEST METHODS FOR THE VARIOUS FREQUENCY SCALES - // ******** They should probably be deleted as they have been replaced by proper VS Unit Testing methods in DSP.FrequencyScaletests.cs. - - /// - /// METHOD TO CHECK IF Default linear FREQ SCALE IS WORKING - /// Check it on standard one minute recording. - /// - public static void TESTMETHOD_LinearFrequencyScaleDefault() - { - var recordingPath = @"C:\SensorNetworks\SoftwareTests\TestRecordings\BAC2_20071008-085040.wav"; - var outputDir = @"C:\SensorNetworks\SoftwareTests\TestFrequencyScale".ToDirectoryInfo(); - var expectedResultsDir = Path.Combine(outputDir.FullName, TestTools.ExpectedResultsDir).ToDirectoryInfo(); - var outputImagePath = Path.Combine(outputDir.FullName, "linearScaleSonogram_default.png"); - var opFileStem = "BAC2_20071008"; - - var recording = new AudioRecording(recordingPath); - - // default linear scale - var fst = FreqScaleType.Linear; - var freqScale = new FrequencyScale(fst); - - var sonoConfig = new SonogramConfig - { - WindowSize = freqScale.FinalBinCount * 2, - WindowOverlap = 0.2, - SourceFName = recording.BaseName, - - //NoiseReductionType = NoiseReductionType.Standard, - NoiseReductionType = NoiseReductionType.None, - NoiseReductionParameter = 0.0, - }; - - var sonogram = new SpectrogramStandard(sonoConfig, recording.WavReader); - sonogram.Configuration.WindowSize = freqScale.WindowSize; - - // DO NOISE REDUCTION - var dataMatrix = SNR.NoiseReduce_Standard(sonogram.Data); - sonogram.Data = dataMatrix; - - var image = sonogram.GetImageFullyAnnotated(sonogram.GetImage(), "SPECTROGRAM: " + fst.ToString(), freqScale.GridLineLocations); - image.Save(outputImagePath); - - // DO FILE EQUALITY TEST - string testName = "testName"; - var expectedTestFile = new FileInfo(Path.Combine(expectedResultsDir.FullName, "FrequencyDefaultScaleTest.EXPECTED.json")); - var resultFile = new FileInfo(Path.Combine(outputDir.FullName, opFileStem + "FrequencyDefaultScaleTestResults.json")); - Acoustics.Shared.Csv.Csv.WriteMatrixToCsv(resultFile, freqScale.GridLineLocations); - TestTools.FileEqualityTest(testName, resultFile, expectedTestFile); - - LoggedConsole.WriteLine("Completed Default Linear Frequency Scale test"); - Console.WriteLine("\n\n"); - } - - /// - /// METHOD TO CHECK IF SPECIFIED linear FREQ SCALE IS WORKING - /// Check it on standard one minute recording. - /// - public static void TESTMETHOD_LinearFrequencyScale() - { - var recordingPath = @"C:\SensorNetworks\SoftwareTests\TestRecordings\BAC2_20071008-085040.wav"; - var outputDir = @"C:\SensorNetworks\SoftwareTests\TestFrequencyScale".ToDirectoryInfo(); - var expectedResultsDir = Path.Combine(outputDir.FullName, TestTools.ExpectedResultsDir).ToDirectoryInfo(); - var outputImagePath = Path.Combine(outputDir.FullName, "linearScaleSonogram.png"); - var opFileStem = "BAC2_20071008"; - - var recording = new AudioRecording(recordingPath); - - // specfied linear scale - int nyquist = 11025; - int frameSize = 1024; - int hertzInterval = 1000; - var freqScale = new FrequencyScale(nyquist, frameSize, hertzInterval); - var fst = freqScale.ScaleType; - - var sonoConfig = new SonogramConfig - { - WindowSize = freqScale.FinalBinCount * 2, - WindowOverlap = 0.2, - SourceFName = recording.BaseName, - - //NoiseReductionType = NoiseReductionType.Standard, - NoiseReductionType = NoiseReductionType.None, - NoiseReductionParameter = 0.0, - }; - - var sonogram = new SpectrogramStandard(sonoConfig, recording.WavReader); - - // DO NOISE REDUCTION - var dataMatrix = SNR.NoiseReduce_Standard(sonogram.Data); - sonogram.Data = dataMatrix; - sonogram.Configuration.WindowSize = freqScale.WindowSize; - - var image = sonogram.GetImageFullyAnnotated(sonogram.GetImage(), "SPECTROGRAM: " + fst.ToString(), freqScale.GridLineLocations); - image.Save(outputImagePath); - - // DO FILE EQUALITY TEST - string testName = "testName"; - var expectedTestFile = new FileInfo(Path.Combine(expectedResultsDir.FullName, "FrequencyLinearScaleTest.EXPECTED.json")); - var resultFile = new FileInfo(Path.Combine(outputDir.FullName, opFileStem + "FrequencyLinearScaleTestResults.json")); - Acoustics.Shared.Csv.Csv.WriteMatrixToCsv(resultFile, freqScale.GridLineLocations); - TestTools.FileEqualityTest(testName, resultFile, expectedTestFile); - - LoggedConsole.WriteLine("Completed Linear Frequency Scale test"); - Console.WriteLine("\n\n"); - } - - /// - /// METHOD TO CHECK IF SPECIFIED MEL FREQ SCALE IS WORKING - /// Check it on standard one minute recording. - /// - public static void TESTMETHOD_MelFrequencyScale() - { - var recordingPath = @"C:\SensorNetworks\SoftwareTests\TestRecordings\BAC2_20071008-085040.wav"; - var outputDir = @"C:\SensorNetworks\SoftwareTests\TestFrequencyScale".ToDirectoryInfo(); - var expectedResultsDir = Path.Combine(outputDir.FullName, TestTools.ExpectedResultsDir).ToDirectoryInfo(); - var outputImagePath = Path.Combine(outputDir.FullName, "melScaleSonogram.png"); - var opFileStem = "BAC2_20071008"; - - var recording = new AudioRecording(recordingPath); - - int nyquist = recording.Nyquist; - int frameSize = 1024; - int finalBinCount = 256; - int hertzInterval = 1000; - FreqScaleType scaleType = FreqScaleType.Mel; - var freqScale = new FrequencyScale(scaleType, nyquist, frameSize, finalBinCount, hertzInterval); - var fst = freqScale.ScaleType; - - var sonoConfig = new SonogramConfig - { - WindowSize = frameSize, - WindowOverlap = 0.2, - SourceFName = recording.BaseName, - DoMelScale = (scaleType == FreqScaleType.Mel) ? true : false, - MelBinCount = (scaleType == FreqScaleType.Mel) ? finalBinCount : frameSize / 2, - - //NoiseReductionType = NoiseReductionType.Standard, - NoiseReductionType = NoiseReductionType.None, - NoiseReductionParameter = 0.0, - }; - - var sonogram = new SpectrogramStandard(sonoConfig, recording.WavReader); - - // DRAW SPECTROGRAM - var image = sonogram.GetImageFullyAnnotated(sonogram.GetImage(), "SPECTROGRAM: " + fst.ToString(), freqScale.GridLineLocations); - image.Save(outputImagePath); - - // DO FILE EQUALITY TEST - string testName = "MelTest"; - var expectedTestFile = new FileInfo(Path.Combine(expectedResultsDir.FullName, "MelFrequencyScaleTest.EXPECTED.json")); - var resultFile = new FileInfo(Path.Combine(outputDir.FullName, opFileStem + "MelFrequencyLinearScaleTestResults.json")); - Acoustics.Shared.Csv.Csv.WriteMatrixToCsv(resultFile, freqScale.GridLineLocations); - TestTools.FileEqualityTest(testName, resultFile, expectedTestFile); - - LoggedConsole.WriteLine("Completed Mel Frequency Scale test"); - Console.WriteLine("\n\n"); - } - - /// - /// METHOD TO CHECK IF Octave FREQ SCALE IS WORKING - /// Check it on standard one minute recording, SR=22050. - /// - public static void TESTMETHOD_OctaveFrequencyScale1() - { - var recordingPath = @"G:\SensorNetworks\WavFiles\LewinsRail\FromLizZnidersic\Lewinsrail_TasmanIs_Tractor_SM304253_0151119_0640_1minMono.wav"; - var outputDir = @"C:\SensorNetworks\Output\LewinsRail\LewinsRail_ThreeCallTypes".ToDirectoryInfo(); - - //var recordingPath = @"C:\SensorNetworks\SoftwareTests\TestRecordings\BAC\BAC2_20071008-085040.wav"; - //var outputDir = @"C:\SensorNetworks\SoftwareTests\TestFrequencyScale".ToDirectoryInfo(); - //var expectedResultsDir = Path.Combine(outputDir.FullName, TestTools.ExpectedResultsDir).ToDirectoryInfo(); - var outputImagePath = Path.Combine(outputDir.FullName, "octaveFrequencyScale1NoNoiseReduciton.png"); - - //var opFileStem = "Lewinsrail_TasmanIs_Tractor"; - - var recording = new AudioRecording(recordingPath); - - // default octave scale - var fst = FreqScaleType.Linear125Octaves6Tones30Nyquist11025; - var freqScale = new FrequencyScale(fst); - - var sonoConfig = new SonogramConfig - { - WindowSize = freqScale.WindowSize, - WindowOverlap = 0.75, - SourceFName = recording.BaseName, - NoiseReductionType = NoiseReductionType.None, - NoiseReductionParameter = 0.0, - }; - - // Generate amplitude sonogram and then conver to octave scale - var sonogram = new AmplitudeSonogram(sonoConfig, recording.WavReader); - sonogram.Data = OctaveFreqScale.ConvertAmplitudeSpectrogramToDecibelOctaveScale(sonogram.Data, freqScale); - - // DO NOISE REDUCTION - //var dataMatrix = SNR.NoiseReduce_Standard(sonogram.Data); - //sonogram.Data = dataMatrix; - sonogram.Configuration.WindowSize = freqScale.WindowSize; - - var image = sonogram.GetImageFullyAnnotated(sonogram.GetImage(), "SPECTROGRAM: " + fst.ToString(), freqScale.GridLineLocations); - image.Save(outputImagePath); - - // DO FILE EQUALITY TEST - //string testName = "test1"; - //var expectedTestFile = new FileInfo(Path.Combine(expectedResultsDir.FullName, "FrequencyOctaveScaleTest1.EXPECTED.json")); - //var resultFile = new FileInfo(Path.Combine(outputDir.FullName, opFileStem + "FrequencyOctaveScaleTest1Results.json")); - //Acoustics.Shared.Csv.Csv.WriteMatrixToCsv(resultFile, freqScale.GridLineLocations); - //TestTools.FileEqualityTest(testName, resultFile, expectedTestFile); - - LoggedConsole.WriteLine("Completed Octave Frequency Scale test 1"); - Console.WriteLine("\n\n"); - } - - /// - /// METHOD TO CHECK IF Octave FREQ SCALE IS WORKING - /// Check it on MARINE RECORDING from JASCO, SR=64000. - /// 24 BIT JASCO RECORDINGS from GBR must be converted to 16 bit. - /// ffmpeg -i source_file.wav -sample_fmt s16 out_file.wav - /// e.g. ". C:\Work\Github\audio-analysis\Extra Assemblies\ffmpeg\ffmpeg.exe" -i "C:\SensorNetworks\WavFiles\MarineRecordings\JascoGBR\AMAR119-00000139.00000139.Chan_1-24bps.1375012796.2013-07-28-11-59-56.wav" -sample_fmt s16 "C:\SensorNetworks\Output\OctaveFreqScale\JascoeMarineGBR116bit.wav" - /// ffmpeg binaries are in C:\Work\Github\audio-analysis\Extra Assemblies\ffmpeg. - /// - public static void TESTMETHOD_OctaveFrequencyScale2() - { - var recordingPath = @"C:\SensorNetworks\SoftwareTests\TestRecordings\MarineJasco_AMAR119-00000139.00000139.Chan_1-24bps.1375012796.2013-07-28-11-59-56-16bit.wav"; - var outputDir = @"C:\SensorNetworks\SoftwareTests\TestFrequencyScale".ToDirectoryInfo(); - var expectedResultsDir = Path.Combine(outputDir.FullName, TestTools.ExpectedResultsDir).ToDirectoryInfo(); - var outputImagePath = Path.Combine(outputDir.FullName, "JascoMarineGBR1.png"); - var opFileStem = "JascoMarineGBR1"; - - var recording = new AudioRecording(recordingPath); - var fst = FreqScaleType.Linear125Octaves7Tones28Nyquist32000; - var freqScale = new FrequencyScale(fst); - - var sonoConfig = new SonogramConfig - { - WindowSize = freqScale.WindowSize, - WindowOverlap = 0.2, - SourceFName = recording.BaseName, - NoiseReductionType = NoiseReductionType.None, - NoiseReductionParameter = 0.0, - }; - - var sonogram = new AmplitudeSonogram(sonoConfig, recording.WavReader); - sonogram.Data = OctaveFreqScale.ConvertAmplitudeSpectrogramToDecibelOctaveScale(sonogram.Data, freqScale); - - // DO NOISE REDUCTION - var dataMatrix = SNR.NoiseReduce_Standard(sonogram.Data); - sonogram.Data = dataMatrix; - sonogram.Configuration.WindowSize = freqScale.WindowSize; - - var image = sonogram.GetImageFullyAnnotated(sonogram.GetImage(), "SPECTROGRAM: " + fst.ToString(), freqScale.GridLineLocations); - image.Save(outputImagePath); - - // DO FILE EQUALITY TEST - string testName = "test2"; - var expectedTestFile = new FileInfo(Path.Combine(expectedResultsDir.FullName, "FrequencyOctaveScaleTest2.EXPECTED.json")); - var resultFile = new FileInfo(Path.Combine(outputDir.FullName, opFileStem + "FrequencyOctaveScaleTest2Results.json")); - Acoustics.Shared.Csv.Csv.WriteMatrixToCsv(resultFile, freqScale.GridLineLocations); - TestTools.FileEqualityTest(testName, resultFile, expectedTestFile); - - LoggedConsole.WriteLine("Completed Octave Frequency Scale " + testName); - Console.WriteLine("\n\n"); - } - - public static void TESTMETHOD_DrawFrequencyLinesOnImage() - { - string filename = @"C:\SensorNetworks\SoftwareTests\TestFrequencyScale\Clusters50.bmp"; - string outputFile = @"C:\SensorNetworks\SoftwareTests\TestFrequencyScale\Clusters50WithGrid.bmp"; - var bmp = Image.Load(filename); - - int nyquist = 11025; - int frameSize = 1024; - int finalBinCount = 128; - int gridInterval = 1000; - var freqScale = new FrequencyScale(FreqScaleType.Mel, nyquist, frameSize, finalBinCount, gridInterval); - DrawFrequencyLinesOnImage((Image)bmp, freqScale, includeLabels: false); - bmp.Save(outputFile); - } } } \ No newline at end of file diff --git a/src/AudioAnalysisTools/Indices/IndexCalculate.cs b/src/AudioAnalysisTools/Indices/IndexCalculate.cs index 5e0fcdd88..95b34a68e 100644 --- a/src/AudioAnalysisTools/Indices/IndexCalculate.cs +++ b/src/AudioAnalysisTools/Indices/IndexCalculate.cs @@ -159,14 +159,14 @@ public static IndexCalculateResult Analysis( // Linear or Octave or Mel frequency scale? Set Linear as default. var freqScale = new FrequencyScale(nyquist: nyquist, frameSize: frameSize, hertzGridInterval: 1000); var freqScaleType = config.FrequencyScale; - bool octaveScale = freqScaleType == FreqScaleType.Linear125Octaves7Tones28Nyquist32000; + bool octaveScale = freqScaleType == FreqScaleType.Linear125OctaveTones28Nyquist32000; bool melScale = freqScaleType == FreqScaleType.Mel; if (octaveScale) { // only allow one octave scale at the moment - for Jasco marine recordings. // ASSUME fixed Occtave scale - USEFUL ONLY FOR JASCO 64000sr MARINE RECORDINGS // If you wish to use other octave scale types then need to put in the config file and and set up recovery here. - freqScale = new FrequencyScale(FreqScaleType.Linear125Octaves7Tones28Nyquist32000); + freqScale = new FrequencyScale(FreqScaleType.Linear125OctaveTones28Nyquist32000); // Recalculate the spectrogram according to octave scale. This option works only when have high SR recordings. dspOutput1.AmplitudeSpectrogram = OctaveFreqScale.AmplitudeSpectra( diff --git a/src/AudioAnalysisTools/Indices/IndexCalculateConfig.cs b/src/AudioAnalysisTools/Indices/IndexCalculateConfig.cs index 457893402..98dcf2349 100644 --- a/src/AudioAnalysisTools/Indices/IndexCalculateConfig.cs +++ b/src/AudioAnalysisTools/Indices/IndexCalculateConfig.cs @@ -150,7 +150,7 @@ public FreqScaleType FrequencyScale switch (value) { case FreqScaleType.Linear: - case FreqScaleType.Octave: + case FreqScaleType.LinearOctaveStandard: this.frequencyScale = value; break; default: diff --git a/src/AudioAnalysisTools/LongDurationSpectrograms/LDSpectrogramRGB.cs b/src/AudioAnalysisTools/LongDurationSpectrograms/LDSpectrogramRGB.cs index 29976e0fc..166000682 100644 --- a/src/AudioAnalysisTools/LongDurationSpectrograms/LDSpectrogramRGB.cs +++ b/src/AudioAnalysisTools/LongDurationSpectrograms/LDSpectrogramRGB.cs @@ -195,13 +195,13 @@ public LDSpectrogramRGB(LdSpectrogramConfig config, IndexGenerationData indexGen //break; case "Linear62Octaves7Tones31Nyquist11025": - fst = FreqScaleType.Linear62Octaves7Tones31Nyquist11025; + fst = FreqScaleType.Linear62OctaveTones31Nyquist11025; this.FreqScale = new FrequencyScale(fst); throw new ArgumentException("Linear62Octaves7Tones31Nyquist11025 Scale is not yet implemented"); //break; case "Linear125Octaves6Tones30Nyquist11025": - fst = FreqScaleType.Linear125Octaves6Tones30Nyquist11025; + fst = FreqScaleType.Linear125OctaveTones30Nyquist11025; this.FreqScale = new FrequencyScale(fst); break; case "Octaves24Nyquist32000": @@ -211,7 +211,7 @@ public LDSpectrogramRGB(LdSpectrogramConfig config, IndexGenerationData indexGen //break; case "Linear125Octaves7Tones28Nyquist32000": - fst = FreqScaleType.Linear125Octaves7Tones28Nyquist32000; + fst = FreqScaleType.Linear125OctaveTones28Nyquist32000; this.FreqScale = new FrequencyScale(fst); break; default: diff --git a/src/AudioAnalysisTools/SpectralPeakTracks.cs b/src/AudioAnalysisTools/SpectralPeakTracks.cs index 879ddf580..1f63d9ba6 100644 --- a/src/AudioAnalysisTools/SpectralPeakTracks.cs +++ b/src/AudioAnalysisTools/SpectralPeakTracks.cs @@ -388,7 +388,7 @@ public static SpectralPeakTracks CalculateSpectralPeakTracks(AudioRecording reco double[,] decibelSpectrogram; if (octaveScale) { - var freqScale = new FrequencyScale(FreqScaleType.Linear125Octaves7Tones28Nyquist32000); + var freqScale = new FrequencyScale(FreqScaleType.Linear125OctaveTones28Nyquist32000); decibelSpectrogram = OctaveFreqScale.DecibelSpectra(dspOutput.AmplitudeSpectrogram, dspOutput.WindowPower, sampleRate, epsilon, freqScale); } else diff --git a/tests/Acoustics.Test/AnalysisPrograms/AnalyzeLongRecordings/TestAnalyzeLongRecording.cs b/tests/Acoustics.Test/AnalysisPrograms/AnalyzeLongRecordings/TestAnalyzeLongRecording.cs index a2c347ba7..63fb18007 100644 --- a/tests/Acoustics.Test/AnalysisPrograms/AnalyzeLongRecordings/TestAnalyzeLongRecording.cs +++ b/tests/Acoustics.Test/AnalysisPrograms/AnalyzeLongRecordings/TestAnalyzeLongRecording.cs @@ -154,7 +154,7 @@ public void TestAnalyzeSr64000Recording() var recordingPath = this.outputDirectory.CombineFile(recordingName + ".wav"); WavWriter.WriteWavFileViaFfmpeg(recordingPath, recording.WavReader); - var fst = FreqScaleType.Linear125Octaves7Tones28Nyquist32000; + var fst = FreqScaleType.Linear125OctaveTones28Nyquist32000; var freqScale = new FrequencyScale(fst); /*