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
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 |