Want to make digital guitar effect pedals. Where do I start?

Started by KlausMikalson, August 19, 2020, 03:43:01 PM

Previous topic - Next topic

KlausMikalson

Hello everyone,,

I study EE embedded systems and thought making guitar effect pedals would be a fun learning experience to improve both programming and signal processing.

I think I've got most of the maths covered (linear algebra, differential equations, la place, z, Fourier), so what I'm after is books or online resources where I could learn how to apply that to digital audio signals. I've been looking at DAFX by Udo Zölzer which seems quite good since I like the idea of practicing the sound processing in Matlab, then implementing it on a uc once I understand it better. But since it's at a fairly steep price point I want to make sure it's a good choice?

I'm fairly comfortable working with stm32 and that's therefore my preferred hardware to do this on, although any recommendations are welcome!

vigilante397

Welcome to the forum :)

If you're specifically looking to work with the STM32, a quick google search can get you some nice references to start with https://digitalcommons.calpoly.edu/cgi/viewcontent.cgi?article=1451&context=eesp

If you're looking to branch out, the Spin FV-1 is a nice simple platform that is pretty popular around here. It uses a low-level assembly language, so you can't program it in C or anything (or there is an excellent GUI-powered programming option from our very own Larry), but it's a great platform with integrated ADC and DAC so you can create great sounding effects with minimal external components.
  • SUPPORTER
"Some people love music the way other people love chocolate. Some of us love music the way other people love oxygen."

www.sushiboxfx.com

Sooner Boomer

Dan of  ̶9̶  only 5 Toes
I'm not getting older, I'm getting "vintage"

Firesledge

The Daisy Seed from Electro-Smith is based on a STM32H750IBK (cortex M7) and includes an AK4556, SDRAM, etc. I think it's a good platform to start with.

I would not recommend to go straight from Matlab to MCU programming, unless you are already confident of your algorithms. You can implement them in plug-ins (VST, AU) with the help of the Juce framework, for example. It will be easier to check and debug them in a DAW.

The DAFX book covers a lot of topics, but yes it is quite expensive. If you already have the basic knowledge, there are better resources available for free, like the JOS papers or the DAFX paper archive (it's a shame that the latter cannot be browsed by topics).
Pédale Vite, multi-FX pedalboard

ElectricDruid

I think I'd recommend the Axoloti platform. Powerful, cheap, you can stay away from the hardware if you want to, but I think it's STM32 based if you don't. Have a look, anyway:

http://www.axoloti.com

Blackaddr

I'm the maker of the TGA Pro. It's a Teensy based guitar audio shield. If you haven't already, take a look at the Teensy 4.0. Very powerful and fairly inexpensive. It uses the Arduino ecosystem so it's very easy to program and the Teensy has an audio library that makes audio processing very easy.

The TGA Pro shield adds the necessary electronics for high impedance guitar circuits.
https://www.tindie.com/products/blackaddr/arduino-teensy-guitar-audio-shield/
Blackaddr Audio
Digital Modelling Enthusiast
www.blackaddr.com

Digital Larry

I started off having a lot of DSP theory without a lot of practical experience.  Then I got an FV-1 development board.  It was a little shocking to uncover its inner workings because its instruction set is super optimized for audio/musical effects.  You can't call a subroutine, and the resulting code is not in the least bit portable to any other platform.

I worked with the FV-1 for a number of years but I suffered from a couple things:
a) You can only go so far before hitting a limitation... mostly combining a delay with reverb - you're likely to run out of RAM before anything else.  A fair amount of the consulting work I did dealt with how to get the most out of 128 instructions because every single one of them was used.

b) 3 knobs for control, no switch inputs - it's easy to make a patch that COULD use more than 3 knobs, but no easy way to control it.  If you give up one input channel you can get to 4.  Yes you can double up knob controls - hate it.

On the plus side, the FV-1 is really ready to go for an easy to build, single function pedal.  I say it a lot, and I'll say it again, for a chip to still be relevant 10+ YEARS after its debut, with NO design changes... that's pretty unbelievable.

I wanted to do away with limitations, so initially I took an old Macbook Pro and put Ubuntu Studio on it.  From there I installed Faust, which is a rather strange DSP language that readily compiles to a number of different possible targets.  I hooked up a USB audio/MIDI interface and I could never remove all the glitchiness from that.

Now, I'm trying out the "Elk" board which uses a Raspberry Pi 3 or 4 and the audio on their "hat" board doesn't use USB - it's I2S - and glitchiness appears absent (haven't used it a lot yet).  It includes a network interface so you can control things from your DAW, for example, using OSC.  Patches for this platform are conceived of as plugins, e.g. LV2 or VST, and then recompiled for the ARM CPU.  So again, you could probably take code from a plugin you developed and whittle it down until it works properly on the Elk.  Yet, there's something somewhat "missing" here, psychologically, or romantically, or something.

You can buy books on how to write VSTs (I got one by Will Pirkle) from Amazon.  There are online classes devoted to this as well (see kadenze.com).  People who can write FV-1 programs live in a rarefied atmosphere of confusing and incomplete documentation and tell jokes that nobody else understands.

I tell this long and boring story because part of the answer to "what should I do"? depends on what you plan to get out of it.  If you just want to learn about algorithms coming directly from a theoretical place, and want to be able to use your knowledge possibly in the future on something else, then I'd plan on getting something that compiles C or C++ code.  If you have a bunch of creative ideas and want to crank out algorithms as fast as possible, get something that supports a graphical interface.  If you wish to go commercial into "pedals" and can manage the idea of having just a few control knobs, the FV-1 solidly occupies that (low) end of the offerings.  It is more powerful than you might give it credit for just looking at it MIPS rating (which is 6 IIRC).
Digital Larry
Want to quickly design your own effects patches for the Spin FV-1 DSP chip?
https://github.com/HolyCityAudio/SpinCAD-Designer