speclet icon indicating copy to clipboard operation
speclet copied to clipboard

Audio Spectrum Analyzer using Fourier- and Wavelet-Transformation

trafficstars

Speclet

VST Audio Spectrum Analyzer Plugin using Fourier- and Wavelet-Transformation.

🖥 User Interface

📖 User Guide

Have a look at the User Guide for further screenshots and to get started using the analyzer.

🏗 Build the Project

Prerequisites

Clone

Download the project as zip or clone it using GIT:

git clone https://github.com/JohT/speclet.git

Command Line

See COMMANDS.md if you prefer to use the command line.

Visual Studio Code (MacOS)

  • Using Clang in Visual Studio Code
  • Install recommended extensions specified in speclet.code-workspace
  • Select the kit that fits to your machine (STRG+SHIFT+P, Type "CMAKE kit")

Visual Studio Code (Windows)

  • Install Visual Studio Build Tools with Visual Studio Installer, select Desktop Development for C++ and add all optional Clang Features
  • Install recommended extensions specified in speclet.code-workspace
  • Select the kit that fits your machine (e.g. amd64) (STRG+SHIFT+P, Type "CMAKE kit"). Successfully tested with "Visual Studio Build Tools 2022 Release - amd64".

🩺 Testing

Run Unit Tests within your command line interface (CLI):

ctest --test-dir build/test

Run Unit Tests in Visual Studio Code

Build the project and use extension "matepek.vscode-catch2-test-adapter" to show all the Catch2 CTest cases under "Testing" (left "activity bar", below extensions button).

Build AudioPluginHost for exploratory testing

cmake.exe --build build --config Debug --target AudioPluginHost

🛠 Used Tools

Modernized 2022 using the following tools:

This version is not ready yet. It contains the code from back then, that doesn't compile any more.
It also contains the plugin made with the tutorial Learn Modern C++ by Building an Audio Plugin (w/ JUCE Framework) - Full Course YouTube as a template to start the modernization.

📚 Used Libraries

This plugin was made in 2011 (modernized 2022) using the following frameworks and libraries:

  • VST SDK 2.4 rev2 (2011) by Steinberg
    http://www.steinberg.net/en/company/developer.html
    visit the link above for licensing

  • VST 3 Audio Plug-Ins SDK (2022) by Steinberg
    http://www.steinberg.net/en/company/developer.html
    visit the link above for licensing

  • JUCE
    by Raw Material Software (2011) http://www.rawmaterialsoftware.com/juce (2011) License: https://github.com/juce-framework/JUCE/blob/master/LICENSE.md (2022)

  • FFTW
    by MIT (Matteo Frigo and Steven G. Johnson) http://www.fftw.org
    GNU General Public License

  • WAVE++
    by Ryerson Computrational Signal Analysis Group
    (c) 1999 by S. E. Ferrando, L. A. Kolasa and N. Kovacevic
    https://math.ryerson.ca/~lkolasa/CppWavelet.html
    " Permission is granted for anyone to copy, use, or modify these programs and documents for purposes of research or education, provided this copyright notice is retained, and note is made of any changes that have been made. Use for commercial applications is only allowed by permission of the copyright holders. "

  • Implementation of C++20's std::span for older compilers (c) 2019 by Tristan Brindle https://github.com/tcbrindle/span Boost Software License 1.0

Trademarks

  • Steinberg is a registered trademarks of Steinberg Media Technologies GmbH.

🔎 References

Digital Signal Processing

Templates and Examples

Performance Tracing/Logging (Profiling, Instrumentation)

Testing

Windows Build

Installation

Other