Bringing Guitar Synthesis To The Microcontroller

If you’re working with audio in an embedded environment, the best option for years now has been the Teensy 3 microcontroller board. This choice has mostly been due to its incredible power and audio libraries, but until now we really haven’t seen a stompbox-style interface that used the Teensy to its fullest extent. Now we have, in [Wolkstein]’s GitSynth, everything you could want in a synthesizer that processes the signals from an electric guitar.

The core of this build is a Teensy 3, and all the audio goodies that come with that. Also included is a USB MIDI and audio interface, smartly both attached to a panel-mount USB-B connector on the back of the stompbox. Other controls include a single mono in jack for guitars and synths, two mono out jacks for stereo-ish output, a bunch of footswitches for bypass, tap tempo, preset selection, a jack for an expression pedal, and some buttons to move around the LCD user interface.

While putting a powerful microcontroller in a stomp box for is a project we’ve seen many times, this project really shines with the MIDI GUI that’s built for a device with a real display and a mouse. [Wolkstein] built a PyQt-based app for this synth, and it’s a plethora of buttons and sliders that looks similar enough to a real synthesizer. There’s enough configurability here for anyone.

You can check out the demo video (in German, but auto-translate subtitles exist) below.

Thanks [Mynaru] for the tip!

12 thoughts on “Bringing Guitar Synthesis To The Microcontroller

    1. It’s got oomph. A couple of days ago I just instrumented a Teensy 3 for a fast PID controller, wondering whether I need to implement it in integer arithmetic. Ha. Double Ha. Running floats throughout in the PID calculation, it takes just 12 microseconds per loop, every 5 milliseconds. I was shocked at how fast it is. Even while processing 12,000 encoder interrupts per second and grabbing 100 analog samples per second it still just occupies a measly 2% of the CPU cycles.

      Yeah, it’s got oomph. Not remotely like the pain of trying to do this on a 6502, like the bad old days.

    2. I think that ARM Cortex-M4F cores have hardware instructions to support both floating point operations and DSP functions. Combined with a ~72MHz clock speed on the cheap-and-cheerful ones, you can do simple signal processing like FFTs. Plus, they tend to have lots of peripherals for things like timers and PWM.

  1. Great design and features but the sound is exactly why i gave up on this after years of trying.
    At first i tried it with lots of guitar pedals. Then i went the monophonic route extracting a square wave and a gate signal from my guitar signal and routing that through synth filters and stuff. (kinda like this project but i used analog synth filters (Minimoog, MS20 etc.) and stuff) Then i tried guitar signal to midi controlling synth VSTs,
    Whatever i tried the sound wasn’t synthy enough so i gave up and built a modular synth and got a keyboard to control it.

    1. I think the OP is trying to make his own unique hybrid instrument. It doesn’t sound like guitar or “synth” (where you mean keyboard).

      This sounds trivial, buy you pretty much want to use whatever instrument already makes the sound that you want. There is no one ring. (Says the guy who tries to make “analog” timbres on an FM synth…)

      Playing like a keyboard on a guitar is super hard. But if you think that’s bad, listen to “guitar” patches on synths. No matter how well the sound design is done, it’s nearly impossible to replicate a strum with all those funny little hitty sticks.

      OTOH, Jan Hammer’s Miami Vice theme…

  2. hey,
    i make the Gitsynth127.
    It is an simple four OSC based monophonic synth. it do subtractive synthesis using an filter section. there are two parallel filters. one of them is configured as lowpass, the other can work as bandpass, high- or low- pass filter. also it have two static filters to set lowcut and highcut. also there are three LFOs. also it come with one envelope adsr and one filter d-adsr. you can also configure an delay effect.
    This little box has an nice midi implementation. you can play it(monophonic) via normal midi keyboard. each control is controllable via Midi CC message. it also receive midi beat clock.

    at least it is an simple subtractive monophonic synth. you can create tons of different sounds. there are no limits. you can create massive bass sounds beside overtone containing resonant feedback sounds.

    why Gitsynth(127)?
    it comes with an instrument input and output. also it have an analog wet dry mixer beside an true bypass switch.
    see the audio signal flow diagram.
    https://raw.githubusercontent.com/wolkstein/GitSynth127/master/img/Gitsynth127AudioSignalFlow.jpg

    what happens with analog audio signals inside.
    1. it compute the audio signal pitch(monophonic).
    2. i track the signal envelope.
    pitch information tune the four OSCs and envelope information trigger the envelope adsr and filter d-adsr.
    this mean each analog signal input acts as an monophonic keyboard. you can use a microphone an guitar or what ever you want to control the synthesizer. ~80Hz is the lowest frequency which will tracked from the system.

    teensy3 is also an full two input and two output usb audio interface. that mean you also can record the analog input into an computer and also you can playback from computer. ore both, for example if you use an software guitar FX like Guitarix.

    127?
    there are 127 fully configurable user presets.

    /g
    wolke

Leave a Reply to trevorCancel reply

Please be kind and respectful to help make the comments section excellent. (Comment Policy)

This site uses Akismet to reduce spam. Learn how your comment data is processed.