Giter VIP home page Giter VIP logo

ml_synthtools's Introduction

ML_SynthTools

An Arduino synthesizer library

project picture
link to the video

Introduction

This library is made to be used for synthesizer projects. It contains modules to create sound, to drive an audio codec and create some audio effects.

In this documentation you will find:

  • information about supported platforms
  • information about the supported modules of this library

There are some references to the organ project because this was the first which supports the highest count of platforms/boards.

Platform support

This library supports different platforms:

  • ESP32, ESP32S2, ESP32S3
  • 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

Modules of this library

The library contains the following modules:

Board definitions

There are a lot of audio boards available on the market (for example ESP32-Audio-Kit). For that reason you can use some of the existing board includes to get all defines required to set up your board, codec etc. -> please look here for more information more details

Examples

There are some "multi-platform" examples available (click the link for more details):

Compiling note

In some cases the following error might occur:

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

Compiling RP2040 (v1.13.1)

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.

ml_synthtools's People

Contributors

marcel-licence avatar copych avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.