Skip to content

pschatzmann/arduino-stk

Repository files navigation

The Synthesis ToolKit in C++ (STK) Library for Arduino

Overview

The Synthesis ToolKit in C++ (STK) is a set of open source audio signal processing and algorithmic synthesis classes written in the C++ programming language. You can find further informarmation in the original Readme of the STK Project

Like many other sound libraries it originates from an University (Princeton) and can look back at a very long history: it was created in 1995. In the 90s the computers had limited processor power and memory available. In todays world we can get some cheap Microcontrollers, which provide almost the same capabilities.

This project has been implemented as Arduino Library and runs on ESP32 processors.

Getting Help

Here is the link to the generated class documentation.

Further information can be found in the Wiki and in my Blogs

Namespaces

The library uses the namespace stk: This is autamatically defined if you start your sketch with #import "StkAll.h". If you use individual imports instead, you need to set the namespace with using namespace stk;

Installation

Download the project as zip and install the file in the Arduino IDE via -> Sketch -> Include Library -> Add ZIP Library or execute the following command in the Arduino Library Folder

git clone https://github.com/pschatzmann/arduino-stk.git

Additional Libraries

If you want to use the Midi integration please install the related arduino-midi library. You find additional examples in this project.

To output the sound in a consistent way I recommend to use my Arduino Audio Tools.

If you want to use the Audio Output to Bluetooth, you need to install the ESP32-A2DP library and activate the functionality in ArdConfig.h!

Supported Processors

  • ESP32 - The deveopment and testing has been done with the ESP32 so this will be the most stable and complete platform.
  • I managed to have the code to compile with the following processors the as well:
    • ESP8266
    • RP2040

You can consult the ArdConig.h file for the available functionality for your processor!

If you to use the library on an other Arduino platform please check out my related Blog