MATRIXSYNTH: Search results for ESP32

Showing posts sorted by date for query ESP32. Sort by relevance Show all posts
Showing posts sorted by date for query ESP32. Sort by relevance Show all posts

Wednesday, April 17, 2024


video upload by zcarlos zc

"ESP32 drum synth Lofi machine.
Sound demo of my DIY drum (or noise) machine.

- Lolin S2 Mini (ESP32 S2)
- PCM5102A I2s dac
- 24 push buttons (8x3)
- Rotary encoder
- OLED display I2c
- 32 LED WS2812B

Synth engine:
- Wavetable synthesizer based on DZL Arduino library "The Synth" (
- 16 sound polyphony
- Sound parameters: Table, Length, Envelope, Pitch, Modulation, + Volume, Pan and Filter.
* Filter (LowPassFilter) comes from Mozzy library (

16 step/pattern editor and random generators (pattern, sound parameters and notes)

Soon schematics and code."



video upload by zcarlos zc 5 years ago in 2019

2 MPR121 modules (24 keys)
4 potentiometer (i2c ADC ADS1115)
RGB neopixel style leds

More info:"


video upload by zcarlos zc also 5 years ago in 2019

2X MPR121 modules
1 MAX7219 module
24 Green/Red LEDS

More info:

Monday, April 01, 2024

Arduino VGM player on ESP32 (SN76489 chiptune) with a moving panorama stereo effect

video upload by Marcel Licence

"In this video you see the VGM player running on the ESP32.
All you hear comes directly from the PCB.
I made the 4 channels of the SN76489 emulation visible on the OLED screen.
In addition to that I tried to create a kind of moving panorama,
to generate a moving stereo separation.
The channels are floating around by changing the left/right volume
and the delay time changes too to simulate the changing distance.

The other features are the same as on the RP2040.

At the end of the video you will find a lot of music examples.

Used VGM files:
- Global Gladiators - 03 - Duelin-Dance.vgm
- Global Gladiators - 02 - Techno Tune.vgm
- Sonic The Hedgehog 2 - 03 - Act Start.vgm
- Sonic The Hedgehog 2 - 04 - Underground Zone.vgm
- Sonic The Hedgehog - 02 - Act Start.vgm
- Sonic The Hedgehog - 03 - Green Hill Zone.vgm
- Lemmings - 21 - Let's Go!.vgm
- Sonic The Hedgehog - 05 - Bridge Zone.vgm
- Sonic The Hedgehog - 06 - Chaos Emerald.vgm
- Sonic The Hedgehog - 08 - Bonus Zone.vgm
- Sonic The Hedgehog - 09 - Labyrinth Zone.vgm
- Sonic The Hedgehog - 10 - Act Complete.vgm
- Sonic The Hedgehog - 11 - Scrap Brain Zone.vgm
- Sonic The Hedgehog - 12 - Sky Base Zone.vgm
- Sonic The Hedgehog - 13 - Boss Theme.vgm
- Sonic The Hedgehog - 16 - Marble Zone (unused).vgm

Files were originally in .vgz format and I renamed them to .vgz, decompress them.
Finally, rename the uncompressed files back to .vgm before I could play them.


Projects can be found on GitHub:"

Sunday, March 17, 2024

Arduino VGM player with rough SN76489 emulation - sneak peak of a video game music chiptune project

video upload by Marcel Licence

"Similar to the previous project I wanted to implement the playback of a new file format.
In this project VGM files are played on different platforms (decompressed VGZ files).
To get any audio I've implemented a very rough emulation of the SN76489 sound chip.
It has three square wave outputs and a noise channel.
The noise channel does not completely work as intended yet.
You might hear some deviations to the expected audio of the video game music.
This project is implemented in Arduino.
After adding some more features I will make this project available soon.

Used VGM files:
- Sonic the Hedgehog 2 - 07 - Sky High Zone.vgm
- Global Gladiators - 02 - Techno Tune.vgz
- Global Gladiators - 03 - Duelin-Dance.vgz
- Global Gladiators - 04 - Dance Tune.vgz
- Lemmings - 01 - Title screen.vgm
- Lemmings - 02 - Can-Can.vgm
- Lemmings - 03 - Levels 2 & 19.vgm
- Lemmings - 04 - Levels 3 & 20.vgm
- Lemmings - 05 - Levels 4 & 21.vgm

Files were originally in .vgz format and I renamed them to .vgz, decompressed them
and finally renamed the uncompressed files back to .vgm before I could play them.


Projects can be found on GitHub:
Discord: (if the link doesn't work please check the description of the latest video)

Intro, Raspberry Pi Pico via PWM: (0:00)
ESP32 playback via audio codec: (2:37)
ESP8266 test output via PWM: (3:27)
ESP32-S2 using I2S DOUT alone: (4:17)"

Sunday, February 18, 2024

Arduino tracker on ESP32 developed from scratch - little sneak peak of a tracker/synthesizer project

video upload by Marcel Licence

"I have started to develop a tracker from scratch.
It runs on the ESP32 and also contains features from my previous projects.
The file format is quite simple.
All samples are integrated in the .mod file.
There are also patterns that are put together as a song.
I copied post effects from my old projects and added a feature to play the embedded sounds/samples.
Feel free to leave comments with ideas and suggestions to move the project forward.

Used tracker files:
- Patrick Phelan - Lotus3_Cd6-Shamrip.mod
- Patrick Phelan - Lotus3_Cd3-Lotus3.mod
- bodyblow.mod
- 2unlimitedmagic.mod


Projects can be found on GitHub:"

Sunday, December 17, 2023

Arduino sample synthesizer is now full of samples - loading SF2 and WAV samples on ESP32 & RP2040

video upload by Marcel Licence

"I've been working on improving the sampler project, especially how it loads sound samples.
Now, you can load samples from SF2 soundfonts, wav files, and a chosen directory.
This project works on ESP32 and RP2040, and more support is in the works.
I've also included the effects section from the last project.

Soundfonts do contain one big chunk of 16bit/24bit sample data, a list of data sets.
They have details about the range, tuning, and loop points of the samples.
There's also a list of instruments that can use different samples for various key and speed levels.
Lastly, there's a list of presets with additional settings.
I tried to make it easy to load specific parts of the soundfont, leaving out some options on purpose for flexibility.

You can also load wav files. These files might have extra information about the samples, like loop regions and tuning.
They are stored in an additional tag: "smpl".

In the future, I'm thinking of supporting different data formats (like 8-bit and stereo) and adding more file formats for loading samples.
I'm considering vgm and spc (Sega Mega Drive and Super Nintendo samples) and aif files containing sample info.

Sample sources:
SM64SF V2.sf2 -
Emu EMAX II Soundfonts -
Linn LM-1 -
Enigma Flute Sound – Emulator II Shakuhachi sample -
SC55 Piano_V2.sf2 -
Yoshi's Island (WK 1.05).sf2 -"

Monday, November 21, 2022


video upload by GlakGlikGluk

"Sebelumnya saya sudah berbagi skema dan program data tetapi hasil keluaran suara stereo masih terlalu banyak kebisingan dari tampilan oled dan catu daya, sekarang saya mengubahnya ke tampilan Hi-fi dengan keluaran mono itu terdengar lebih baik. Jika kalian ingin membuatnya saya sudah menyiapkan data dan skema baru di google drive saya .
Link data dan skema :
Modul ini di buat dengan micro controller ESP32 dengan keluaran suara PWM mode Hi-fi tanpa penguat operasional saya rasa sudah cukup
Gunakan catu daya 5V / 1Amper di pin Vin jika inging menggunakan adaptor jika port micro usb cukup charger smartphone saja"


"Earlier I shared the schematic and data program but the stereo sound output is still too much noise from the OLED display and the power supply, now I changed it to a Hi-fi display with mono output it sounds better. If you want to make it I have prepared the data and new schematic in my google drive .
Data link and schematic : .
This module is made with an ESP32 micro controller with a Hi-fi mode PWM sound output without an operational amplifier, I think it's enough
Use a 5V / 1Amper power supply on the Vin pin if you want to use an adapter, if the micro USB port is enough for a smartphone charger.

Wednesday, May 18, 2022

Chaotic Pressure Array Synthesizer

video upload by Peter Corbett

"This was my team's submission to our 4th year EE Capstone project. The synth features chaotically phase-modulated oscillators (Lorenz Attractor), and a dynamic and expressive 2 dimensional pressure input device:

X-axis = pitch
Y-axis = filter cutoff + chaotic mod index
Z-axis (pressure) = amplitude + filter cutoff

The pressure pad is comprised of a sheet of Velostat sandwiched between vertical and horizontal strips of conductive tape. Shift registers apply voltage to each column sequentially, and analog multiplexers scan each row to build an array of pressure readings for all the cells. This is driven by an ESP32, which in turn transmits UART data to a Raspberry Pi 4B.

A python script receives pressure data and parses it into note events. Higher order interpolation methods are employed to capture inter-cell peaks and improve positional resolution. The DSP synth engine is built in PureData with a TouchOSC front end."

Monday, April 04, 2022

Music with plants. Plant plays a Synthesizer. (Microfreak)

video upload by Mutlu Karaköse

"Hello. for a change, a slightly different video. Let your plants play synthesizer. I present you 2 small gadgets to experiment (Playtron/Playtronica) (MIDI Biodata Device V3/Leetronics). The devices were here for testing. if you are interested in the devices. below I have linked the products. if you like the video feel free to leave a like and comment. the days there is another techno jam. take care of yourselves.

PLAYTRON: [additional posts here]
MIDI BIODATA: https://electricityforprogress.square..."

MIDI BIODATA is new to the site. Pic of the DIY kit and some info for the archives:

"Build your own Biodata Sonification system and connect to synthesizers using MIDI, Bluetooth, or Wifi! This kit contains all of the parts required for assembly including the Biodata circuit board, 555 Timer, Adafruit ESP32 Feather, LiPo battery, and 3D printed Enclosure. You will need soldering equipment, a small phillips screwdriver, and a well ventilated space for assembly. This kit can be 'modified' to exclude the Enclosure (if you want to print your own!), the Adafruit ESP32 Board (the brains of the operation, you might already have one!), different sized batteries, or just a bare circuit board."

Also see MIDI Sprout for an alternative, non DIY plant based controller.

Wednesday, February 23, 2022

FDSI-8 Digital Synthesizer

video upload by rasool

"This is FDSI-8:

I developed it with ESP32 and some other codecs and components and programmed it with MicroPython."

Untitled video

video upload by rasool

Saturday, November 20, 2021

ESP32 polyphonic synthesizer add-on - simple arpeggiator and virtual split (for Arduino)

video upload by Marcel Licence

"In this video you will find a short demonstration of the arpeggiator module and a virtual split point.
Both modules are still work in progress but also usable.
I would like to integrate them into existing projects to make them more accessible.

All you hear comes directly from a single ESP32 (with PCM5102A DAC).
The project is a modified basic synthesizer with the alpha juno oriented sound generation.

Key features:
- virtual split point listens to all midi channels
- an upper and lower area can be defined
- notes are forwarded to different MIDI channels
- 16 bit arpeggiator
- sequences can be predefined and part of the code
- sequences can be overwritten by playing the notes
- variable tempo - variable gate time

This may be also interesting for you: Mono stepper synth with arpeggio
The first try with the alpha juno like sound

Both and moreposted here]

Projects can be found on GitHub:"

Saturday, November 06, 2021

DIY synthesizer soundengine (using ESP32 Arduino) - Little demo of the Roland Alpha Juno like sound

video upload by Marcel Licence

"This video is only a short sound demo of a little sound engine I tried to implement.
I recommend using a stereo output (phones or speaker) for the best listening experience.
It is based on the Roland Alpha Juno synthesis but slightly modified.
The sound is some kind of pulse width modulated saw wave without chorus.
A LFO drives the pulse width for both channels independently creating the stereo effect."

Projects can be found on GitHub:

Additional demos:

Sunday, October 03, 2021

The toy keyboard mod - stand along synthesizer

video upload by Michael Nolan

"Recently - as a response to the pandemic I followed my dreams to skill back up in electronics, software development. I went through a lot of projects - a huge number and started to talk but today I'm sharing a really big step up in my work. Many firsts had to be worked through to design, make and then develop the software and hardware user interface for this full working keyboard and digital synth (that simulates analogue sounds to a great extent).

This is a fork of the original code from Marcel License
I wrote a lot of the parts for physical controls, the display, the arpeggio functionality and more. Without the code from Marcel though I wouldn't be anywhere as far making music. Initially it was a steep learning curve but this is about the 3rd object for making music I've made and i'm starting more projects. Eventually I hope to have a suite of different keyboards that do different things or work in different ways."

Additional details via github:


This is for someone who wants to wire up from a toy keyboard and pots, buttons to play the synth in a self contained unit. That is why I forked from Marcel Licence who has developed a number of modular synth projects and shared.

I made a thread where I started to list new features.

This project is moving along as a fork of basic synth. I've made my own knobs, banks of parameters physical interface in this self contained unit. I am milking this code for all I can to develop something I have a good deal of control.

Ran into a lot of little electronics building issues with physically making it stable and wiring it. My projects are kind of semi-wired and semi-wires into temporary pin-connectors like you have on a test arduino where I soldered some connectors to the ESP32 dev module. Getting it to be stable and using the right wire and lengths so I can keep opening it up and improving it without breaking some connection takes experience.

Issues I am starting to look more at the modules I was just using at how the work and learn from that. Had some weird DAC issues when i had a floating local SCLK instead of earthing it. Sometimes I get a bit of clipping with the sinewave or the current use causes it to lose it's stability until I had the wiring done right. Started to use my on AWG22 solid core breadboard style wires cut from a spool so I could make things stable.

Feature upgrades I like my display setup - i have 8 sectors and a routing for showing the set levels. I need a button I think to put it into edit or not edit so that I can change sets of parameters without overwriting things.

New Features to be started I need to make a patch write/read or at least read out a list of numbers to save as presets. I need to make a physical 5 pin DIN midi in/out so I can slave or master out the keys."

Sunday, June 06, 2021

Polyphonic synthesizer, first steps with DaisySeed (DIY MIDI module based on STM32, no arduino yet)

video by Marcel Licence

Timeline (description and resource links below) Intro: (0:00) Overview: (0:50) Hardware: (1:36) (Basic)Oscillator: (1:52) VariableSawOscillator: (4:02) VariableShapeOscillator: (5:17) Delay: (6:41) ReverbSc: (7:48) Unisono: (8:32) Chorus: (9:12) Overdrive: (9:48) Tremolo: (12:31) Outro: (13:06) "I've started trying out the Daisy™ Seed from electro-smith. It's an embedded platform using the STM32 as a microcontroller including DAC, external RAM etc. To get a first impression I've created a little polyphonic synthesizer project using the Open Source DSP Library (DaisySP). In addition to that some voice processing etc. was required to get the synth working. At the moment I do not have a direct comparison to the ESP32. It is compatible with arduino but you can also just program with your C++ editor. The STM32 board library has been updated in arduino recently and caused compiling issues. Now I just worked with a makefile based project to get it running. I think soon an arduino implementation would be also possible. Finally the sources are basically the same (arduino does just the multi file compilation magic) References:"

Electrosmith Daisy posts

Sunday, February 28, 2021

DIY Synthesizer with ESP32 (super/hyper saw, aliasing free oscillators)

video by Marcel Licence

"This video shows some impressions of using the ESP32 for a little synthesizer project.
All processing is done on one core with sampling rate of 48kHz.
I've connected a master keyboard via MIDI to a serial input.
The synth actually can play 6 voices together (also with 6 oscillators per voice in unison/detuned mode).
The oscillators are aliasing free (wave forms had been generated in advance to avoid fold back of frequencies above nyquist).
Rough ADSR for velocity and filter is implemented.
I am preparing a little arduino project for sharing. It will be available soon..."

You can find additional posts featuring the ESP32 here.

Tuesday, December 29, 2020

WVR : modern, open source, embedded audio for $25

Currently on Kickstarter here.

Quick details via WVR:

"WVR is an ESP32 with a nice DAC and 8GB of fast eMMC memory. 18 stereo voices of simultaneous playback (at CD quality), which I think is something really needed in this space, in an open source project, at this price point.

The project also includes
a USB MIDI HOST add-on board,
a neat JavaScript library called RC.JS designed to help Arduino folks build GUI's, using React Native and Expo
the ability to store multiple firmware binaries in the eMMC, with the ability to boot from any of them
some tools to make building multi-sampled instruments a snap
2 dev boards
a stompbox version
etc, etc."

via the Kickstarter campaign:

"WVR is an open-source embedded solution for audio, with surprising capabilities. It includes everything you need to get started with embedded audio, with no soldering, and no coding necessary. WVR arrives ready to operate.

WVR is also a highly versatile device, capable of powering a new generation of embedded audio design, thanks in part to its wifi and bluetooth radio, providing all the power of a versatile and extensible Graphical User Interface ( GUI ), without the need for a screen or other interface. Users can upload samples, manage firmware, set configurations, build sequences, or control any other data imaginable, both wirelessly, and intuitively, using their laptop, or mobile device, inside a web browser, or even on a native mobile app on Android or iOS.


Playback up to 18 stereo wav files simultaneously, with ~1ms latency

Accepts virtually every audio file format, at any resolution, and any size, including wav, mp3, ogg, acc, flac, pcm, aiff, and many more

Upload audio, map samples to MIDI notes, configure pin functionality, apply FX, manage files, etc, all over WIFI, with the default firmware that WVR ships with, and without writing any code

Holds over 12 hours (8 GB) of stereo audio, at 16bit 44.1kHz resolution

Can buffer over 1.5 minutes (16 MB) of stereo audio in RAM alone, at 16bit 44.1kHz resolution
Optically isolated MIDI input, provides to-spec MIDI input implementation without any additional circuitry

14 GPIO pins, 8 of which can be analog inputs, and 4 of which can be capacitive touch inputs, plus the many peripherals available on the ESP32 .

WVR's Wifi can function either as a Station or Access Point (it can login to an existing wifi network, or can create its own network and accept connections directly from devices in range, without a router or local network of any kind)

write firmware in Arduino, and upload over wifi. Stores multiple firmwares onboard, selectable via the UI. Fully compatible with the extensive, and battle-tested ESP Arduino library, and the exceptionally powerful ESP-IDF framework.

use RC.js JavaScript framework to modify, or custom build, the User Interface that WVR serves to users, without prior knowledge of CSS, HTML, Babel, Node, etc. Even build and deploy native mobile apps for iOS or Android from the same code base. You can play with RC.js in this REPL, try modifying the existing code, to see how it's intuitive, and highly portable, component-based syntax works, and check out the file to learn more.

onboard Ultra Low Power (ULP) co-processor means WVR consumes only ~10uA in sleep mode

Thursday, May 28, 2020

QUN synthesizer: PWM for SAW wave and Triangle

Published on May 28, 2020 Nunomo LLC

Follow-up to this post.

"The synth has a kind of unique PWM for SAW and TRIANGLE.
The product will be available soon."

Additional details via Nunomo:

"Based on ESP32 Lyrat development board, QUN synthesizer is one of the most powerful / versatile full-featured pocket sized synthesizer, with amazing pricing.

Connectivity: Standard MIDI(TRS A type), BLE MIDI, UART MIDI(Supports MAC OS X and Windows through my SerialMIDI.

ESP32 Lyrat

Originally designed for smart speaker.

Analog Modeling engine

The analog modeling engine is made from scratch.

Tuesday, December 31, 2019

open e-drums - Open Source Drum Synthesizer with Teensy 3.2

Published on Dec 31, 2019 Ryo Kosaka


Single piezo pad, Dual Piezo pad, 2 zone cymbal, 3 zone cymbal
Compatible with YAMAHA's 3 zone cymbal(PCY135/PCY155)
Compatible with SoftPot, FSR and Optical(TCRT5000) type hi-hat controllers
Sensing with MUX(4051 and 4067)
Setting mode with LCD or OLED
Sensitivity, Threshold, Scan Time, Mask Time, Note Number can be set with each pad
Works with ESP32 and Teensy and AVR boards such as UNO and MEGA.

"open e-drums" is a completely open source electronic drum. Pads that can be produced with 3D printers, and midi converters are all open source hardware. Arduino code for sensing is also available. You can create your own e-drum from scratch, or add pads to the Roland and YAMAHA kits.

This project started by accident. At the time, I was a product design student who had used Arduino just a little. When I found a drum mania controller at a used store at a bargain price, I was somehow attracted to it and bought it. This is the beginning of everything. I took it apart and played with Arduino. I used a piezo for the first time at that time. I learned the delicate sensing ability of piezo. I realized the greatness of electronic drums such as Roland, Yamaha, and Alesis, which process the signals beautifully. I want to try it myself.

I didn't have any knowledge of programming or electronics. In other words, I have acquired a lot of knowledge through this project. For some people, this project is just a reinvention of the wheel. But it's a very meaningful project for me. As I proceeded with this project, I drew on the knowledge of many predecessors. Many of them keep information open. That's great. So I decided to publish this project as an open source hardware project. I would be happy if this project helps someone create something."

Monday, April 01, 2019

Gecho v2 Prototype and Korg Volca FM

Published on Apr 1, 2019 Gecho Loopsynth

"The v2 prototype is working very well so far, here the MIDI Out functionality is being tested with Korg Volca, also Line-in and Line-out connectors are actively used. All is recorded via USB sound card directly from Gecho and presented in raw form. You can find more info here:"

"The final Gecho v2 prototype
Since the previous update about v2 that was posted in August last year, it took 3 more revisions to get here. Although the first prototype of Gecho v2 has been completed, blueprints verified by our skilled hobbyists friends who soldered their own prototypes, and it even passed CE/FCC testing with flying colours, and we could go ahead with the production - it was just not good enough - it needed a small upgrade. And, things tend to turn more complicated than they appear :)

Thanks to everyone for encouraging comments, questions and feedback during the past few months, it has been very helpful and contributed a lot to shaping the new model.

While working on Glo (the whale synth), I came to realize that sticking to STM32 platform looks nice in short-term; in theory, only small modifications are needed to port the firmware over. But there was a risk that when implementing the new features you are waiting for, like MIDI and sync modes, it would be needed to trade off something on the sound side (e.g. level of polyphony) to get the extra power for the additional processing required.


Switched On Make Synthesizer Evolution Vintage Synthesizers Creating Sound Fundlementals of Synthesizer Programming Kraftwerk

© Matrixsynth - All posts are presented here for informative, historical and educative purposes as applicable within fair use.
MATRIXSYNTH is supported by affiliate links that use cookies to track clickthroughs and sales. See the privacy policy for details.