HexeFX Teensy Effect Library.
hexefx_audiolib_F32
DSP audio effect add ons for Teensy floating point audio library (OpenAudioArduinoLibrary).
Background:
I started to develop a new effects and components for the Teensy Audio Library a few years ago. In the meantime i decided to focus on the variation of the library working entirely on 32bit floating point data (OpenAudio_ArduinoLibrary by Chip Audette), thus all the new components are built ontop of it.
The components included in the library can be divided into a few groups:
- Drivers - used to configure and contol codecs, ADCs and DACs, usually using the I2C bus.
- Input/Output - I2S reveive and send handlers having a few more features than the stock ones.
- Time based effects - reverbs (plate, spring) and delays.
- Filters - EQs, tone controls, special filters like an IR convolver based speaker emulators.
- Modulation - phasers, infinite (Barberpole) phaser, wah emulation.
- Guitar - guitar related effects, like boost/octave, compressor.
- Diverse - small helper classes implementing basic DSP building blocks, like delay buffers, allpass filters etc.
The two main projects as of now (11.2024) utilizing the library are the TGX4 Guitar Amp Emulator and the T-CAB - stereo IR Cabinet Simulator.
Usage
Requirements and dependencies.
The only dependency used in the library is OpenAudio_ArduinoLibrary by Chip Audette.
hexefx_audiolib_F32
can be used within the Arduino by installing it locally from the linked below github repository.
Visit the Github repository page to download the files packed as ZIP or directly clone the repo using the command below:
git clone https://github.com/hexeguitar/hexefx_audiolib_F32.git
Using PlatformIO makes the whole process a lot more easier, it is also my recommended and used method. Both libraries can be specified in the platformio.ini
file in the lib_deps
section and will be downloaded automatically. Here is a snippet of the lib_deps
section:
lib_deps =
https://github.com/chipaudette/OpenAudio_ArduinoLibrary.git
https://github.com/hexeguitar/hexefx_audiolib_F32.git
For more detailed about using the library see the included example projects.
Graphical Design Tool
for the OpenAudio_ArduinoLibrary with the HexeFX extensions.
Most of the effects are placed in the HexeFX subcategory. The new modified I2S components (AudioInputI2S2_F32, AudioOutputI2S2_F32, AudioInputI2S2_F32, AudioOutputI2S2_F32
) are placed in their respective categories: input and output.
Stereo Plate Reverb
Versatile stereo plate reverb with lots of sound tweaking features, including:
- Treble/Bass cut filters affecting the reverb tail.
- Treble/Bass cut filters as output EQ
- Infinite Reverb/Freeze option
- Reverb pitch shift with dry/wet mixer
- Shimmer effect with configurable pitch
Stereo Spring Reverb
Stereo spring reverb emulation.
Stereo Reverb SC
Stereo delay line based reverb with more of SciFi character, including an infinite/freeze option.
This reverb algorithm requires a large chunk of RAM memory and is recommended for Teensy4.1 with PSRAM chip installed.
Stereo Ping-Pong Delay
including modulation and infinite/freeze mode.
For longer delay times it is recommended to use Teensy4.1 with PSRAM chip installed.
Stereo 12 stage Phaser
Versatile, up to 12 stages stereo phaser modulated fron an internal LFO or external modulation input.
Stereo Infinite/Barberpole Phaser
Mono to stereo spatial enhancer
Allpass filter based mono to stereo converter.
Stereo Guitar Tone Stack
Emulation of 9 classic guitar EQ circuits used in various guitar amplifiers.
Guitar Wah
Emulating one of the most iconic guitar effect: wah pedal.
Stereo IR Speaker Emulation
Impulse Response convolver including a stereo enhancing algorithm for dual track emulation.
- Version 1 - with 10 built in guitar/bass speaker responses.
- Version 2 - with IR files loaded from an SD card
Neural Network Amp modeler
This component is not included in the library, but an intergral part of the TGX4 Project (see the TGX4 firmware for ways to incporporate it).
Guitar Wah
Emulating one of the most iconic guitar effect: wah pedal.
Guitar Booster
Overdrive/Fuzz with octave up feature and tone controls. Useful as pre-distortion tone shaping tool, light overdrive or fuzz.
... and more useful components. See the github repository for all features.