Close
0%
0%

Eurorack audio synthesis platform

An ESP32-based open source audio synthesis platform suitable for eurorack modular synthesizers, <1ms latency, 44.1kHz samping rate.

Similar projects worth following
An ESP32-based open source audio synthesis platform suitable for eurorack modular synthesizers. Two digital trigger inputs to trigger sounds. SD-card interface. 2.2" TFT display. Example application "CTAG Strämpler", which is a 2-voice sampling synthesis module including an internet connection to freesound.org.PCB is 4 layers, passive components 0603 and larger, includes TTSOPs and one QFN for the serial interface to the ESP32. Employing an ESP32 WROVER with PSRAM (used e.g. for audio delay).We are looking for folks who are interested in implementing more features and applications. We will provide a skeleton app, which allows to get started with audio DSP programming easily, accessing sample I/O raw data from the WM8731 codec at audio rate (44.1kHz, 24-bit) + control data. 1kHz CV sampling rate at 12 bits.

This platform is to explore the Espressif ESP32 architecture for real-time audio processing in the application auf sound synthesis. The hardware design allows for implementation of real-time low-latency audio DSP algorithms on the ESP32. We created this project to benchmark if the ESP32 is a suitable platform for this application and are surprised after all, what the ESP32 is capable of.

Check out our nice sample streaming application firmware "CTAG Strämpler", which allows to play back and modify sounds from SD-card in real-time, just one would do with an sampling synthesizer. 

We also include the aspect of internet of things in that Strämpler allows to access the freesound.org sound data base through a rest-api. One can download sounds from freesound, play and tweak them.

The ESP32 is maxed out, employing one core for UI, networking and buffer reload tasks from the SD card, the other core runs the real-time audio thread using the 32-bit FPU, and the ultra-low-power co-processor is responsible for configuring the external CODEC (WM8731) and sampling control and modulation data from the external 12-bit ADC (MCP3208). We use the ESP32 WROVER module with 16MB flash and 4/8MB PSRAM (e.g. for an audio delay effect with 1.5ms stereo and ping-pong delay).

We are surprised what one can press out of the architecture.

The idea is to implement more application and use the hardware as a generic platform for implementing audio synthesis / audio effects algorithms. Form factor, analog IO conditioning and power supply architecture is meant to be used for eurorack modular synthesizers.

PCB is a 4-layer design using KiCad, smallest components are 0603, TSSOPs and a QFN (the USB/serial interface for the ESP32). There separate power supply for the digital and analog audio components to reduce noise in the audio signal.

  • 1 × ESP32 Microcontroller
  • 1 × WM8731 Audio ICs / Audio CODECs
  • 1 × MCP3208 Data Converters / Analog to Digital Converter ICs (ADCs)
  • 1 × R-783.3-1.0 Electronic Components / Misc. Electronic Components

View all 3 project logs

  • 1
    Step 1

    Will be created in near future.

View all instructions

Enjoy this project?

Share

Discussions

Matias N. wrote 05/25/2019 at 01:28 point

The front panel looks very good. How is it made?

  Are you sure? yes | no

Robert Manzke wrote 05/25/2019 at 20:46 point

The panel on the picture was designed by instruments of things http://kck.st/2V6PKXm then transferred into Kicad format by bitmap export.

The new rev-d frontpanel was done entirely in inkscape and then exportet into kicad using this great inkscape plugin 

https://github.com/badgeek/svg2shenzhen

  Are you sure? yes | no

Matias N. wrote 05/25/2019 at 22:53 point

Oh, so the front panel is a PCB and the graphics are printed on the silkscreen?

  Are you sure? yes | no

Robert Manzke wrote 05/26/2019 at 07:03 point

Yup, front panel is standard PCB material with silkscreen, that's used very often for simple panel designs. Look e.g. at Make Noise Wogglebug, same thing but with gold coating on the copper. Other modules use aluminum panels with sub eloxal multi-color print which is more expensive... 

  Are you sure? yes | no

chris owens wrote 05/24/2019 at 19:41 point

This looks awesome. Is the latency where you want it? I have tried Raspberry Pi as a synth engine and the delay was annoying.

Have you considered support for SoundFont or some other type of MIDI sample set file? The problem might be that most of those files are EXTREMELY BIG. Anyway, great looking unit!

  Are you sure? yes | no

Robert Manzke wrote 05/24/2019 at 20:03 point

The latency is basically one audio buffer, which is slightly less than 1ms. We hope that more users & developers will help build more features...

  Are you sure? yes | no

Hasan Murod wrote 05/24/2019 at 05:36 point

Wow that's great.. I'm interested in ESP32 as well, I have been successfully developed multi-effect stompbox platform using STM32F1XX (ARM Cortex M3), and after looking at ESP32 then I've change my plan of using ARM Cortex M4 to ESP32 for the next advanced multi-effect pedal project. I hope I can make a guitar synth that convert polyphonic signal from single coil guitar pickup to synthesize other instruments sounds in my multi-effect platform, do you think it is possible with dual core ESP32?

  Are you sure? yes | no

Robert Manzke wrote 05/26/2019 at 07:08 point

Hi Hasan, M4 series is very powerful and used a lot in audio, e.g. the STM32F7 which is a beast in terms of computational power, mostly the instruction cache boosts the performance, thought the ESP32 is cached too... 

We decided for the ESP32 because we wanted to benchmark it for the purpose and it has Wifi already on board, which is a big +++ 

We were able to run about 80 instances of biquad filters in our audio loop, that's quite stunning for $5. Also there is an assembler optimized DSP library for the ESP32 now, that should boost performance even further. It somewhat tries to mimic the CMSIS library for ARM. Check it out here https://github.com/espressif/esp-dsp

It includes FFT, so a guitar analyzer may be feasible... You could test it using the Strämpler HW platform and designing your own code.

  Are you sure? yes | no

Robert Manzke wrote 05/26/2019 at 07:56 point

Actually STM32F7 is M7, STM32F4 is M4 ;) sorry.

  Are you sure? yes | no

Hasan Murod wrote 05/27/2019 at 02:41 point

I think your Strämpler  platform is a great tool for rapid prototyping, do you sell it online somewhere?

  Are you sure? yes | no

Robert Manzke wrote 05/27/2019 at 20:34 point

At this point we are not selling. We look for partners to license to, or maybe do a crowdfunding campaign at some point...

  Are you sure? yes | no

Mynasru wrote 05/06/2019 at 19:48 point

Great work, it looks and sounds amazing! Looking forward for new software modules.

  Are you sure? yes | no

Robert Manzke wrote 05/07/2019 at 06:13 point

Thanks much, let us know if you build one, we're happy to help :)

  Are you sure? yes | no

Similar Projects

Does this project spark your interest?

Become a member to follow this project and never miss any updates