amy  by shorepine

Music synthesizer library for microcontrollers

created 3 years ago
294 stars

Top 90.9% on sourcepulse

GitHubView on GitHub
Project Summary

AMY is a high-performance, fixed-point C music synthesizer library designed for microcontrollers and embedded systems, offering a flexible toolkit for creating a wide range of sounds. It supports numerous platforms, from ESP32 to Raspberry Pi and web browsers, making it suitable for developers and hobbyists building audio applications on resource-constrained devices.

How It Works

AMY utilizes a highly optimized C core for efficient audio synthesis, supporting multiple oscillators, filters, and effects. Its unique wire protocol allows for compact, human-readable control messages that can be sent over various communication channels. The library excels at polyphony and poly-timbral operation, even on low-power microcontrollers, and offers advanced features like envelope generators, LFO modulation, and custom breakpoint-based synthesis.

Quick Start & Requirements

  • Python: cd src; pip install .
  • Arduino: Copy repository to Arduino/libraries/amy, include <AMY-Arduino.h>, and use provided examples. Requires specific board packages (RP2040, Teensy, ESP32) and the MIDI Library for USB MIDI.
  • Web: make docs/amy.js
  • C: make then ./amy-example
  • Dependencies: Python 3.x, Arduino IDE with board support, or C/C++ toolchain.
  • Demo: AMY web demo

Highlighted Details

  • Supports 16+ waveform types including SINE, PULSE, SAW, NOISE, PCM, ALGO, and PARTIALS.
  • Features two Envelope Generators (EGs) per oscillator for complex sound shaping.
  • Includes built-in effects like Reverb, Echo, and Chorus.
  • Offers FM synthesis with DX7-style algorithms and additive synthesis via analyzed partials.
  • Supports loading custom PCM samples and real-time audio input.

Maintenance & Community

  • Developed by DAn Ellis and Brian Whitman.
  • Active community chat available on Discord.

Licensing & Compatibility

  • License: MIT.
  • Compatible with commercial and closed-source projects.

Limitations & Caveats

  • Debugging options (D parameter) interrupt audio.
  • Custom sample loading requires base64 encoding and careful message handling.
Health Check
Last commit

4 days ago

Responsiveness

1 day

Pull Requests (30d)
8
Issues (30d)
2
Star History
24 stars in the last 90 days

Explore Similar Projects

Starred by Thomas Wolf Thomas Wolf(Cofounder of Hugging Face), Chip Huyen Chip Huyen(Author of AI Engineering, Designing Machine Learning Systems), and
2 more.

ultravox by fixie-ai

0.4%
4k
Multimodal LLM for real-time voice interactions
created 1 year ago
updated 4 days ago
Starred by Chip Huyen Chip Huyen(Author of AI Engineering, Designing Machine Learning Systems) and Jeff Hammerbacher Jeff Hammerbacher(Cofounder of Cloudera).

AudioGPT by AIGC-Audio

0.1%
10k
Audio processing and generation research project
created 2 years ago
updated 1 year ago
Feedback? Help us improve.