“The ESP32-MIDI-synth is a minimum effort synthesizer. It consists of only 11 resistors, a 6N318 optocoupler, an ESP32 and some sockets.
All of this is enough to make an 8 channel MIDI synthesizer.
The tones are produced by letting the ESP32 produce PWM signals. The API of the ESP32 has functions for PWM of LEDs and this is also made usable for audio.
Letting the ESP32 produce a frequency x is only 3 steps:
- ledcSetup(channel, pwm_frequency, resolution)
- ledcAttachPin(output_pin, channel)
- ledcWriteTone(channel, frequency)”