Blackaddr
Well-known member
New audio effect: AudioEffectAnalogDelay
I've updated the BAGuitar library with a brand new effect. It is designed to model the essentials of a BBD based delay pedal such as the Boss DM-3. What gives an analog delay (as opposed to a digital delay) its character is the echos are not perfect copies of the original. Extreme anti-alias filtering remove much of the frequencies above 1500 Hz. If feedback is used, repeated echoes continues to lose frequencies after each echo, just like echoes in a real environment.
Here's a short video showing off some different delay configurations. I'm running a new AudioDelayDemo example that's been added to the BAGuitar library.
Here are the key features of the new effect
- the same class is configurable to use internal RAM or external SPI RAM
- external SPI RAM uses DMA to avoid loading the processor.
- Provides parameter control for bypass, delay, feedback, wet/dry mix and volume.
- effect parameters can be controlled via MIDI (USB or DIN)
- implements an 8th order IIR filter to match the characteristics of the DM-3 (uses ARM DSP instructions)
- COMING SOON: user programmable filters and some more pre-defined ones.
The filtering is based on the following paper. Personally I did not find modelling the harmonic distortion worth while. Adding noise and and THD might be of academic interest but I don't want to waste Teensy processing power on it. Modelling the compander is more difficult. The method used in the paper is very expensive, so I left it out for now.
Practical Modeling of Bucket-Brigate Device Circuits
**The "internal RAM" mode will work on any Teensy Audio project. The external RAM requires you have the Teensy Guitar Audio shield, or something with the same SPI pinout as that board.
**BAGuitar now requires a fork of the DmaSpi library. Both can be found on Github.
https://github.com/Blackaddr
The DmaSpi library had to be modified in order to support easier transfers with the LC1024 SPI memory in particular.
BAGuitar Library Changes:
I've been working on big enhancements to the library over the past 3 months. The library now contains some very useful general purpose primitives than can be used to build audio effects. An example of this is the 'AudioDelay' class. It provides general audio buffering using either internal or external memory, but is NOT an AudioEffect itself. This allows it to be used in other AudioEffects as a building block. I've also added a general purpose External SRAM Manager that allows a SPI memory to have 'slots' treating the external memory as managed pool. This will allow external memory to be more easily split between different effects. Currently working on adding an LFO primitive. Many of these ideas come from great work done by other contributors to the Teensyduino libraries.
I'm planing to use these primitives to make a new digital delay shortly with the same effect controls, as well as some new effects such as SoundOnSound and AutomaticDoubleTracking.
SALE: to celebrate this first milestone in the BAGuitar library development the Teensy Guitar Audio Shield will be on sale for $10 off starting tomorrow (Friday) for a limited time or while my current batch of inventory lasts.
If you have any questions about the effect, the libraries or the board I'll do my best to answer them.
I've updated the BAGuitar library with a brand new effect. It is designed to model the essentials of a BBD based delay pedal such as the Boss DM-3. What gives an analog delay (as opposed to a digital delay) its character is the echos are not perfect copies of the original. Extreme anti-alias filtering remove much of the frequencies above 1500 Hz. If feedback is used, repeated echoes continues to lose frequencies after each echo, just like echoes in a real environment.
Here's a short video showing off some different delay configurations. I'm running a new AudioDelayDemo example that's been added to the BAGuitar library.
Here are the key features of the new effect
- the same class is configurable to use internal RAM or external SPI RAM
- external SPI RAM uses DMA to avoid loading the processor.
- Provides parameter control for bypass, delay, feedback, wet/dry mix and volume.
- effect parameters can be controlled via MIDI (USB or DIN)
- implements an 8th order IIR filter to match the characteristics of the DM-3 (uses ARM DSP instructions)
- COMING SOON: user programmable filters and some more pre-defined ones.
The filtering is based on the following paper. Personally I did not find modelling the harmonic distortion worth while. Adding noise and and THD might be of academic interest but I don't want to waste Teensy processing power on it. Modelling the compander is more difficult. The method used in the paper is very expensive, so I left it out for now.
Practical Modeling of Bucket-Brigate Device Circuits
**The "internal RAM" mode will work on any Teensy Audio project. The external RAM requires you have the Teensy Guitar Audio shield, or something with the same SPI pinout as that board.
**BAGuitar now requires a fork of the DmaSpi library. Both can be found on Github.
https://github.com/Blackaddr
The DmaSpi library had to be modified in order to support easier transfers with the LC1024 SPI memory in particular.
BAGuitar Library Changes:
I've been working on big enhancements to the library over the past 3 months. The library now contains some very useful general purpose primitives than can be used to build audio effects. An example of this is the 'AudioDelay' class. It provides general audio buffering using either internal or external memory, but is NOT an AudioEffect itself. This allows it to be used in other AudioEffects as a building block. I've also added a general purpose External SRAM Manager that allows a SPI memory to have 'slots' treating the external memory as managed pool. This will allow external memory to be more easily split between different effects. Currently working on adding an LFO primitive. Many of these ideas come from great work done by other contributors to the Teensyduino libraries.
I'm planing to use these primitives to make a new digital delay shortly with the same effect controls, as well as some new effects such as SoundOnSound and AutomaticDoubleTracking.
SALE: to celebrate this first milestone in the BAGuitar library development the Teensy Guitar Audio Shield will be on sale for $10 off starting tomorrow (Friday) for a limited time or while my current batch of inventory lasts.
If you have any questions about the effect, the libraries or the board I'll do my best to answer them.
Last edited: