Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/marcel-licence/ml_synth_organ_example

ESP32, ESP8266 based MIDI Organ using the ML_SynthTools library (little example arduino project)
https://github.com/marcel-licence/ml_synth_organ_example

arduino audio esp32 esp8266 organ rp2040 stm32 synthesizer

Last synced: about 5 hours ago
JSON representation

ESP32, ESP8266 based MIDI Organ using the ML_SynthTools library (little example arduino project)

Awesome Lists containing this project

README

        

ml_synth_organ_example


MIDI Organ using the ML_SynthTools library (little example arduino project)



project picture

link to the video

This project is an example supporting different platforms:
- ESP32
- ESP8266
- Seeedstudio XIAO (samd21 - cortex-m0plus)
- Teensy 4.1 (imxrt1062)
- Daisy Seed (cortex-m7)
- Raspberry Pi Pico (rp2040)

The required library can be found here: https://github.com/marcel-licence/ML_SynthTools

All platforms are tested. Actually the sound quality might be a bit limited.
The organ supports full polyphony (you can play all 64 notes of the upper manual at the same time).
You can modify the sound using 9 drawbars.
Percussion is supported (2nd, 3rd).
A simple rotary implementation creates a simple (noisy) leslie like sound.

Demo using ESP32, ESP8266: https://youtu.be/c7TL8jcrnzs
Demo using the XIAO: https://youtu.be/2wT8nByoUNw
Demo using the Teensy4.1: https://youtu.be/H-NDCQnSDV0

More information will be available in future

Compileable build configurations

Below you will find a list of some possible build configurations.
They should all work without any modification of the code.



Core: ESP32 Arduino (2.0.4)

Version: 2.0.4

Board: WEMOS D1 MINI ESP32



Flash Frequency: 80MHz

Partition Scheme: Default

CPU Frequency: 240MHz (WiFi/BT)

Upload Speed: 921600

Core Debug Level: None



Used libraries:


Name
Version
Url
Git
Core library


ML SynthTools
1.0.1
https://github.com/marcel-licence/ML_SynthTools
https://github.com/marcel-licence/ML_SynthTools.git
False


WiFi
2.0.0

https://github.com/espressif/arduino-esp32.git
True



Core: ESP32 Arduino

Version: 1.0.6

Board: ESP32 Dev Module



PSRAM: Disabled

Partition Scheme: No OTA (2MB APP/2MB SPIFFS)

CPU Frequency: 240MHz (WiFi/BT)

Flash Mode: QIO

Flash Frequency: 80MHz

Flash Size: 4MB (32Mb)

Upload Speed: 921600

Core Debug Level: None



Used libraries:


Name
Version
Url
Git
Core library


ML SynthTools
1.0.1
https://github.com/marcel-licence/ML_SynthTools
https://github.com/marcel-licence/ML_SynthTools.git
False


WiFi
1.0


True



Core: ESP32 Arduino (2.0.5)

Version: 2.0.5

Board: WEMOS D1 MINI ESP32



Flash Frequency: 80MHz

Partition Scheme: Default

CPU Frequency: 240MHz (WiFi/BT)

Upload Speed: 921600

Core Debug Level: None



Used libraries:


Name
Version
Url
Git
Core library


ML SynthTools
1.0.1
https://github.com/marcel-licence/ML_SynthTools
https://github.com/marcel-licence/ML_SynthTools.git
False


WiFi
2.0.0

https://github.com/espressif/arduino-esp32.git
True



Core: ESP32 Arduino (2.0.0)

Version: 2.0.0

Board: ESP32 Dev Module



PSRAM: Disabled

Partition Scheme: Default 4MB with spiffs (1.2MB APP/1.5MB SPIFFS)

CPU Frequency: 240MHz (WiFi/BT)

Flash Mode: QIO

Flash Frequency: 80MHz

Flash Size: 4MB (32Mb)

Upload Speed: 921600

Arduino Runs On: Core 1

Events Run On: Core 1

Core Debug Level: None



Used libraries:


Name
Version
Url
Git
Core library


ML SynthTools
1.0.1
https://github.com/marcel-licence/ML_SynthTools
https://github.com/marcel-licence/ML_SynthTools.git
False


WiFi
2.0.0


True



Core: Raspberry Pi RP2040 Boards(1.13.1)

Version: 1.13.1

Board: Generic RP2040



Flash Size: 2MB (no FS)

CPU Speed: 125 MHz

Optimize: Small (-Os) (standard)

RTTI: Disabled

Debug Port: Serial

Debug Level: None

USB Stack: Pico SDK

Boot Stage 2: W25Q080 QSPI /4



Used libraries:


Name
Version
Url
Git
Core library


ML SynthTools
1.0.1
https://github.com/marcel-licence/ML_SynthTools
https://github.com/marcel-licence/ML_SynthTools.git
False


I2S
1.0
http://www.arduino.cc/en/Reference/I2S

True



Core: Raspberry Pi RP2040 Boards(1.13.1)

Version: 1.13.1

Board: Raspberry Pi Pico



Flash Size: 2MB (no FS)

CPU Speed: 125 MHz

Debug Port: Disabled

Debug Level: None

USB Stack: Pico SDK



Used libraries:


Name
Version
Url
Git
Core library


ML SynthTools
1.0.1
https://github.com/marcel-licence/ML_SynthTools
https://github.com/marcel-licence/ML_SynthTools.git
False


I2S
1.0
http://www.arduino.cc/en/Reference/I2S

True



Core: Teensyduino

Version: 1.8.5

Board: Teensy 4.1



USB Type: Serial + MIDI + Audio

CPU Speed: 600 MHz

Optimize: Faster

Keyboard Layout: US English



Used libraries:


Name
Version
Url
Git
Core library


Audio
1.3
http://www.pjrc.com/teensy/td_libs_Audio.html

True


SPI
1.0
http://www.arduino.cc/en/Reference/SPI

True


SD
2.0.0
https://github.com/PaulStoffregen/SD

True


SerialFlash
0.5
https://github.com/PaulStoffregen/SerialFlash

True


ML SynthTools
1.0.1
https://github.com/marcel-licence/ML_SynthTools
https://github.com/marcel-licence/ML_SynthTools.git
False


Wire
1.0
http://www.arduino.cc/en/Reference/Wire

True



Core: STM32GENERIC for STM32 boards

Version: 1.0.0

Board: BLACK F407VG/VE/ZE/ZG boards



USB: Serial [Virtual COM port, PA11/PA12 pins]

Serial communication: SerialUSB



Used libraries:


Name
Version
Url
Git
Core library


ML SynthTools
1.0.1
https://github.com/marcel-licence/ML_SynthTools
https://github.com/marcel-licence/ML_SynthTools.git
False


I2S
1.0
http://www.arduino.cc/en/Reference/I2S
https://github.com/marcel-licence/STM32GENERIC.git
True


DMA
1.0

https://github.com/marcel-licence/STM32GENERIC.git
True



Core: STM32GENERIC for STM32 boards

Version: 1.0.0

Board: Discovery F407VG



USB: Serial [Virtual COM port]

Serial communication: SerialUSB



Used libraries:


Name
Version
Url
Git
Core library


ML SynthTools
1.0.1
https://github.com/marcel-licence/ML_SynthTools
https://github.com/marcel-licence/ML_SynthTools.git
False


Wire
1.0
http://www.arduino.cc/en/Reference/Wire
https://github.com/marcel-licence/STM32GENERIC.git
True


I2S
1.0
http://www.arduino.cc/en/Reference/I2S
https://github.com/marcel-licence/STM32GENERIC.git
True


DMA
1.0

https://github.com/marcel-licence/STM32GENERIC.git
True



Core: STM32 boards groups (Board to be selected from Tools submenu 'Board part number')

Version: 2.1.0

Board: Generic STM32H7 Series



Board part number: Daisy Seed

Upload method: STM32CubeProgrammer (DFU)

U(S)ART support: Enabled (generic 'Serial')

USB support (if available): CDC (generic 'Serial' supersede U(S)ART)

USB speed (if available): Low/Full Speed

Optimize: Smallest (-Os default)

Debug symbols: None

C Runtime Library: Newlib Nano (default)



Used libraries:


Name
Version
Url
Git
Core library


ML SynthTools
1.0.1
https://github.com/marcel-licence/ML_SynthTools
https://github.com/marcel-licence/ML_SynthTools.git
False


DaisyDuino
1.4.0
https://github.com/electro-smith/DaisyDuino
https://github.com/marcel-licence/DaisyDuino.git
False


Wire
1.0
http://www.arduino.cc/en/Reference/Wire

True


Source Wrapper
1.0.1


True



Core: ESP8266 Boards (3.0.2)

Version: 3.0.2

Board: LOLIN(WEMOS) D1 R2 & mini



CPU Frequency: 160 MHz

VTables: Flash

C++ Exceptions: Disabled (new aborts on oom)

Stack Protection: Disabled

SSL Support: All SSL ciphers (most compatible)

MMU: 32KB cache + 32KB IRAM (balanced)

Non-32-Bit Access: Use pgm_read macros for IRAM/PROGMEM

Flash Size: 4MB (FS:2MB OTA:~1019KB)

lwIP Variant: v2 Lower Memory

Debug port: Disabled

Debug Level: None

Erase Flash: Only Sketch

Upload Speed: 921600



Used libraries:


Name
Version
Url
Git
Core library


ML SynthTools
1.0.1
https://github.com/marcel-licence/ML_SynthTools
https://github.com/marcel-licence/ML_SynthTools.git
False


ESP8266WiFi
1.0


True


I2S
1.0
http://www.arduino.cc/en/Reference/I2S

True



Core: Seeed SAMD (32-bits ARM Cortex-M0+ and Cortex-M4) Boards

Version: 1.8.2

Board: Seeeduino XIAO



USB Stack: Arduino

Debug: Off



Used libraries:


Name
Version
Url
Git
Core library


ML SynthTools
1.0.1
https://github.com/marcel-licence/ML_SynthTools
https://github.com/marcel-licence/ML_SynthTools.git
False



Core: STM32GENERIC for STM32 boards

Version: 1.0.0

Board: BLUE F103VE/ZE/ZG boards



USB: Serial [Virtual COM port, PA11/PA12 pins]

Serial communication: SerialUSB



Used libraries:


Name
Version
Url
Git
Core library


ML SynthTools
1.0.1
https://github.com/marcel-licence/ML_SynthTools
https://github.com/marcel-licence/ML_SynthTools.git
False


I2S
1.0
http://www.arduino.cc/en/Reference/I2S
https://github.com/marcel-licence/STM32GENERIC.git
True


DMA
1.0

https://github.com/marcel-licence/STM32GENERIC.git
True



Core: STM32GENERIC for STM32 boards

Version: 1.0.0

Board: BluePill F103CB



USB: Serial [Virtual COM port, PA11/PA12 pins]

Serial communication: SerialUSB



Used libraries:


Name
Version
Url
Git
Core library


ML SynthTools
1.0.1
https://github.com/marcel-licence/ML_SynthTools
https://github.com/marcel-licence/ML_SynthTools.git
False


I2S
1.0
http://www.arduino.cc/en/Reference/I2S
https://github.com/marcel-licence/STM32GENERIC.git
True


DMA
1.0

https://github.com/marcel-licence/STM32GENERIC.git
True