{"id":18697081,"url":"https://github.com/marcel-licence/ml_synthtools","last_synced_at":"2025-04-04T15:06:10.880Z","repository":{"id":48964757,"uuid":"427515532","full_name":"marcel-licence/ML_SynthTools","owner":"marcel-licence","description":"ML_SynthTools","archived":false,"fork":false,"pushed_at":"2025-03-23T16:40:53.000Z","size":3965,"stargazers_count":188,"open_issues_count":5,"forks_count":29,"subscribers_count":7,"default_branch":"main","last_synced_at":"2025-03-28T14:08:31.276Z","etag":null,"topics":["arduino","audio","dsp","esp32","esp8266","pipico","rp2040","rp2350","stm32","synthesizer","teensy"],"latest_commit_sha":null,"homepage":"","language":"C","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/marcel-licence.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2021-11-12T22:46:27.000Z","updated_at":"2025-03-23T21:06:21.000Z","dependencies_parsed_at":"2024-04-07T10:24:51.058Z","dependency_job_id":"9e6d0a21-024d-4a02-bca5-e1b675025c76","html_url":"https://github.com/marcel-licence/ML_SynthTools","commit_stats":null,"previous_names":[],"tags_count":2,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/marcel-licence%2FML_SynthTools","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/marcel-licence%2FML_SynthTools/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/marcel-licence%2FML_SynthTools/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/marcel-licence%2FML_SynthTools/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/marcel-licence","download_url":"https://codeload.github.com/marcel-licence/ML_SynthTools/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247198448,"owners_count":20900079,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["arduino","audio","dsp","esp32","esp8266","pipico","rp2040","rp2350","stm32","synthesizer","teensy"],"created_at":"2024-11-07T11:22:47.451Z","updated_at":"2025-04-04T15:06:10.862Z","avatar_url":"https://github.com/marcel-licence.png","language":"C","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003ch1 align=\"center\"\u003eML_SynthTools\u003c/h1\u003e\n\u003ch3 align=\"center\"\u003eAn Arduino synthesizer library\u003c/h3\u003e  \n\u003cp align=\"center\"\u003e \n  \u003cimg src=\"extras/splash.jpg\" alt=\"project picture\" width=\"480px\" height=\"270px\"\u003e\u003cbr\u003e\n  \u003ca href=\"https://youtu.be/9AHQ4mQrjE8\"\u003elink to the video\u003c/a\u003e\n\u003c/p\u003e\n\n\n\u003e **⚠ Important Notice:**  \n\u003e The `Serial1` and `Serial2` functionalities do not work with the ESP32 v3.#.# board library.  \n\u003e To ensure proper functionality, use **ESP32 board library version 2.0.17** or earlier.\n\n# Introduction\n\nThis 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. \n\nIn this documentation you will find:\n- information about supported platforms\n- information about the supported modules of this library\n\nThere are some references to the organ project because this was the first which supports the highest count of platforms/boards.\n\nThe installation manual can be found here: \u003ca href=\"extras/install.md\"\u003eInstallation manual\u003c/a\u003e\n\n# Platform support\n\nThis library supports different platforms:\n- ESP32, ESP32S2, ESP32S3\n- ESP8266\n- Seeedstudio XIAO (samd21 - cortex-m0plus)\n- Teensy 4.1 (imxrt1062)\n- Daisy Seed (cortex-m7)\n- Raspberry Pi Pico (rp2040)\n- Raspberry Pi Pico 2 (rp2350/cortex-m33)\n- STM32F3* (cortex-m3)\n- STM32F407 (cortex-m4)\n\nThe organ example can be found here: https://github.com/marcel-licence/ml_synth_organ_example\n\nAll platforms are tested. Actually the sound quality might be a bit limited.\nThe organ supports full polyphony (you can play all 64 notes of the upper manual at the same time).\nYou can modify the sound using 9 drawbars.\nPercussion is supported (2nd, 3rd).\nA simple rotary implementation creates a simple (noisy) leslie like sound.\n\nDemo using ESP32, ESP8266: https://youtu.be/c7TL8jcrnzs\nDemo using the XIAO: https://youtu.be/2wT8nByoUNw\nDemo using the Teensy4.1: https://youtu.be/H-NDCQnSDV0\n\nMore information will be available in future\n\n\n# Modules of this library\n\nThe library contains the following modules:\n- midi module \u003ca href=\"extras/midi_input.md\"\u003emore details\u003c/a\u003e\n- arpeggiator \u003ca href=\"extras/ml_arp.md\"\u003emore details\u003c/a\u003e\n- board pinout definitions \u003ca href=\"extras/ml_boards.md\"\u003emore details\u003c/a\u003e\n- a simple delay \u003ca href=\"extras/ml_delay.md\"\u003emore details\u003c/a\u003e\n- a simple reverb [more details](extras/ml_reverb.md)\n- organ sound generator \u003ca href=\"extras/ml_organ.md\"\u003emore details\u003c/a\u003e\n- saw/square pulse width modulated oscillator \u003ca href=\"extras/ml_oscillator.md\"\u003emore details\u003c/a\u003e\n- vu meter (helper) \u003ca href=\"extras/ml_vu_meter.md\"\u003emore details\u003c/a\u003e\n- oled scope \u003ca href=\"extras/ml_scope.md\"\u003emore details\u003c/a\u003e\n- midi file stream player \u003ca href=\"extras/ml_midi_file_stream.md\"\u003emore details\u003c/a\u003e\n- mod tracker module \u003ca href=\"extras/ml_mod_tracker.md\"\u003emore details\u003c/a\u003e\n\n\n# Board definitions\n\nThere are a lot of audio boards available on the market (for example ESP32-Audio-Kit).\nFor that reason you can use some of the existing board includes to get all defines\nrequired to set up your board, codec etc.\n-\u003e please look here for more information \u003ca href=\"extras/ml_board.md\"\u003emore details\u003c/a\u003e\n\n\n# Examples\n\nThere are some \"multi-platform\" examples available (click the link for more details):\n- \u003ca href=\"https://github.com/marcel-licence/ml_epiano_example\"\u003eml_epiano_example\u003c/a\u003e\u003cbr\u003e is a full-polyphone e-Piano like sounding synth\u003cbr\u003e\n- \u003ca href=\"https://github.com/marcel-licence/ml_synth_basic_example\"\u003eml_synth_basic_example\u003c/a\u003e\u003cbr\u003e\n- \u003ca href=\"https://github.com/marcel-licence/ml_synth_multi_saw_example\"\u003eml_synth_multi_saw_example\u003c/a\u003e\u003cbr\u003ecreates stereo multi saw (like supersaw etc.) sounds\u003cbr\u003e\n- \u003ca href=\"https://github.com/marcel-licence/ml_synth_organ_example\"\u003eml_synth_organ_example\u003c/a\u003e\u003cbr\u003eis a full-polyphone organ implementation trying to work like a real tonewheel organ\u003cbr\u003e\n- \u003ca href=\"https://github.com/marcel-licence/ml_synth_pwm_osc_example\"\u003eml_synth_pwm_osc_examples\u003c/a\u003e\u003cbr\u003eA synthesizer module sounding a bit like the Alpha Juno.\u003cbr\u003eIt's strength is the pulse sound with a modulated pulse-width.\u003cbr\u003e\n- \u003ca href=\"https://github.com/marcel-licence/ml_mod_tracker\"\u003eml_mod_tracker\u003c/a\u003e\u003cbr\u003eA MOD file player. It is a tracker implementation reminding of the Amiga game music. It plays back music of some DOS games too.\u003cbr\u003e\n\n# PlatformIO integration\n\nplease see \u003ca href=\"extras/platformIO_integration.md\"\u003ePlatformIO integration readme\u003c/a\u003e\n\n# Compiling note\n\nIn some cases the following error might occur: \n\t\n\tThe platform does not support 'compiler.libraries.ldflags' for precompiled libraries.\n\t\nTo fix this you can look for platform.txt\n\nAdd the following line: \n\n\tcompiler.libraries.ldflags=\n\t\nRef: https://youtu.be/c7TL8jcrnzs?t=419\n\t\nIf you get a lot of \"undefined reference to\" errors the library couldn't be found by Arduino.\n\nTo support new platforms I need the information in which folder Arduino was looking for the library. \nExample:\n\n\tCompiling libraries...\n\tCompiling library \"ML_SynthTools\"\n\tLibrary ML_SynthTools has been declared precompiled:\n\tPrecompiled library in \"C:\\Users\\...\\Documents\\Arduino\\libraries\\ML_SynthTools\\src\\cortex-m4\\fpv4-sp-d16-hard\" not found\n\tPrecompiled library in \"C:\\Users\\...\\Documents\\Arduino\\libraries\\ML_SynthTools\\src\\cortex-m4\" not found\n\n## Compiling RP2040 (v1.13.1)\n\nSome 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\n\n---\n\nPlease feel free to share your experience and ideas. \n\n## Support \u0026 Donations\n\nIf you appreciate the work done on this project and would like to support its development, I would be more than happy to accept donations!\n\nFor more information on how to donate, please send an email to:\n\n📧 **marcel.licence.o@gmail.com**\n\nThank you for your support!\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmarcel-licence%2Fml_synthtools","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmarcel-licence%2Fml_synthtools","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmarcel-licence%2Fml_synthtools/lists"}