This library supports different platforms:
- ESP32
- ESP8266
- Seeedstudio XIAO (samd21 - cortex-m0plus)
- Teensy 4.1 (imxrt1062)
- Daisy Seed (cortex-m7)
- Raspberry Pi Pico (rp2040)
- STM32F407 (cortex-m4)
The organ example can be found here: https://github.com/marcel-licence/ml_synth_organ_example
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
The library contains the following modules:
- arpeggiator more details
- board pinout definitions more details
- a simple delay more details
- a simple reverb more details
- organ sound generator more details
- saw/square pulse width modulated oscillator more details
- vu meter (helper) more details
- oled scope more details
- midi file stream player more details
In some cases the following error might occur:
The plaform does not support 'compiler.libraries.ldflags' for precompiled libraries.
To fix this you can look for platform.txt
Add the following line:
compiler.libraries.ldflags=
Ref: https://youtu.be/c7TL8jcrnzs?t=419
If you get a lot of "undefined reference to" errors the library couldn't be found by Arduino.
To support new platforms I need the information in which folder Arduino was looking for the library. Example:
Compiling libraries...
Compiling library "ML_SynthTools"
Library ML_SynthTools has been declared precompiled:
Precompiled library in "C:\Users\...\Documents\Arduino\libraries\ML_SynthTools\src\cortex-m4\fpv4-sp-d16-hard" not found
Precompiled library in "C:\Users\...\Documents\Arduino\libraries\ML_SynthTools\src\cortex-m4" not found
Some changes in the toolchain cause that the linker searches the lib in the cortex-m0plus instead of the rp2040 path. Please copy the ML_SynthTools.a from src/rp2040 to src/cortex-m0plus and replace the existing file in case you want to use the lib with the RP2040
Please feel free to share your experience and ideas.