swharden/Spectrogram
.NET library for creating spectrograms (visual representations of frequency spectrum over time)
17 Releases
Latest: 1y ago
Spectrogram 2.0.0-alpha2.0.0-alphaLatestPre-release
📋 Changes
- @vadd98 made their first contribution in https://github.com/swharden/Spectrogram/pull/61
- @Haukanes made their first contribution in https://github.com/swharden/Spectrogram/pull/60
Spectrogram 1.6.11.6.1
📋 Changes
- Added `rotate` argument to `GetBitmap()` for creating vertical spectrograms (#47, #27) _Thanks @wiiNinja and @padesso_
Spectrogram 1.5.01.5.0
📋 Changes
- Improved accuracy of FFT frequency by one pixel ([FftSharp #49](https://github.com/swharden/FftSharp/issues/49))
- Deprecated Spectrogram File Format (#44, #45)
Spectrogram 1.4.41.4.4
📋 Changes
- Fixed divide-by-zero error that occurred when attempting to generate a Bitmap with too little data (#42)
Spectrogram 1.4.31.4.3
📋 Changes
- Upgraded to FftSharp 1.1.2 and ScottPlot 4.1.27
Spectrogram 1.4.21.4.2
📋 Changes
- NuGet package build is now deterministic and uses SourceLink
Spectrogram 1.4.01.4.0
📦 Release Notes
- `Add()` now accepts `IEnumerable` instead of just `double[]` (#33, #35) _Thanks @shirok1_
- SpectrogramGenerator can be initialized with a pre-existing array to improve performance (#33, #36) _Thanks @shirok1_
- `Colormap` is now a public field that can be accessed directly
- Improved XML documentation for spectrogram generator fields, properties, and methods
Spectrogram 1.3.01.3.0
📦 Release Notes
- `Spectrogram.Spectrogram` has been renamed to `Spectrogram.SpectrogramGenerator` to avoid conflicts with the `Spectrogram` namespace when `using Spectrogram` (#30)
- `GetBitmap()`, `GetBitmapMel()`, and `SaveImage()` have a new optional `dBScale` argument which is a value (defaults to 1) each intensity gets multiplied by prior to taking its log when `dB` is `true`. This change pushes the optional `roll` argument back in the list.
- See [SpectrogramGenerator.cs#L142-L143](https://github.com/swharden/Spectrogram/blob/9ac30822679ac405b9b31fbe70e97cf3c1044edd/src/Spectrogram/SpectrogramGenerator.cs#L142-L143) for the new function signature.
- See [Image.cs#L49-L50](https://github.com/swharden/Spectrogram/blob/9ac30822679ac405b9b31fbe70e97cf3c1044edd/src/Spectrogram/Image.cs#L49-L50) for the new log transform step
- `Spectrogram.WavFile` has been deprecated. This static class previously held methods to read WAV files but many files were not supported because WAV file headers are highly variable (and not all WAV files adhere to a standard format, #21, #12). Users are encouraged to implement their own audio file readers. The quickstart examples have been updated to use a WAV file reader provided by NAudio.
- Example WAV file reader: [AudioFile.cs#L10-L22](https://github.com/swharden/Spectrogram/blob/9ac30822679ac405b9b31fbe70e97cf3c1044edd/src/Spectrogram.Tests/AudioFile.cs#L10-L22)
- Example MP3 file reader: [AudioFile.cs#L24-L38](https://github.com/swharden/Spectrogram/blob/9ac30822679ac405b9b31fbe70e97cf3c1044edd/src/Spectrogram.Tests/AudioFile.cs#L24-L38)
- WavFile original source code: [WavFile.cs](https://github.com/swharden/Spectrogram/blob/9ac30822679ac405b9b31fbe70e97cf3c1044edd/src/Spectrogram/WavFile.cs#L7-L120)
Spectrogram 1.2.61.2.6
📋 Changes
- Upgraded to [FftSharp 1.0.8](https://github.com/swharden/FftSharp/releases) which uses an improved FFT calculation ([FftSharp#24](https://github.com/swharden/FftSharp/pull/24)) so spectrograms will be 1 pixel higher than they were before
- Fixed reverse grayscale colormap (#29) _Thanks Erika_
Spectrogram 1.2.51.2.5
📋 Changes
- Add SFF ImageHeight and ImageWidth properties (#23)
- Improve SFF.ToString() output (#22)
- SFF module now pre-calculates frequencies and times (#24)
- Tools.GetMidiNote() now accepts a double (#25)
Spectrogram 1.2.41.2.4
📋 Changes
- simplified support for Mel scaling (#14) by using [FftSharp](https://github.com/swharden/FftSharp)'s latest Mel scaling methods
- suppress console output when loading SFF files (#15)
- created a tools module (#4) with methods for collapsing 2D spectrogram data into 1D (for frequency analysis of amplitude analysis), peak frequency detection, frequency/note conversion, etc.
- added FilePath property to SFF module (#16)
- improved methods for listing/selecting colormaps by string name (#18) to simplify use in GUIs (e.g., listing all colormaps in a combobox)
- improved error messages related to generating SFF files with complex data (#19)
Spectrogram 1.2.31.2.3
📋 Changes
- improved support for saving and loading SFF files
- added features for generating Mel spectrograms
- exposed additional FFT settings properties
Spectrogram 1.2.21.2.2
📋 Changes
- Added new colormaps
- NuGet package now includes [debug symbols](https://docs.microsoft.com/en-us/nuget/create-packages/symbol-packages-snupkg)
Spectrogram 1.2.11.2.1
📋 Changes
- Improved WavFile reader #12
- Added common methods from Spectrogram 1.0 marked as obsolete
Spectrogram 1.2.01.2.0
📋 Major Changes
- The [FftSharp](https://github.com/swharden/FftSharp) library is used for FFT math and window function generation
- Greatly improved colormap support and make it easy for users to create custom colormaps
- Parallel processing support is used for FFT calculations resulting in faster analysis of large files
- Now includes WavFile module for simple reading of audio data from WAV files
- Spectrograms can now be saved as SFF (spectrogram file format) files which is are superior to bitmaps (in that they store floating-point FFT magnitudes instead of images which typically only store one byte per pixel)
- Added support for generation of vertical axis bitmap with tick marks and labels
- Supports "scrolling" and "rolling" modes for continuously-updated data displayed in fixed-with spectrograms
Spectrogram 1.0.01.0.0
_Published on [NuGet](https://www.nuget.org/packages/Spectrogram/) on 2019-08-25_ This is the first release of a functional Spectrogram library on NuGet
Spectrogram 0.0.10.0.1Pre-release
This is an alpha release mostly for testing. The `Spectrogram` class library is .NET Core 3.0 and compiles a NuGet package for net45 and core: https://www.nuget.org/packages/Spectrogram/
