⡇ ⡇⢹⠁⢹⠁⡇ ⣏⡉ ⡇⢸⣏⡉⡇⣏⡱⡏⢱⡎⢱
⠧⠤⠇⠸ ⠸ ⠧⠤⠧⠤ ⠟⠻⠧⠤⠇⠇⠱⠧⠜⠣⠜
A Rust #no-std optimized wave table synthesizer for embedded devices.
[!CAUTION] This project is actively being developed with frequent breaking changes. APIs may shift, features are incomplete, and stability is not guaranteed. Use at your own risk and expect regular updates that might require code adjustments. Have fun!
[!IMPORTANT] Hi Squeaky Things can happen at any time. Little Weirdo is ready to squeak, squuuueak, squeeeeeaak, squeaaaaaaaaak!
How to use it
Get the library!
$ cargo add little_weirdo
Start using it in your own code:
use ;
use ;
const SAMPLE_RATE: u16 = 44_100; // Audio sample rate in Hz
Run Little Weirdo as a MIDI device while outputting to a local Audio Output, check out Little Weirdo Streaming Audio With MIDI
If you just want to play with a patch for Little Weirdo, check out Little Weirdo Patch Tester
To generate you own Soundbank, download some Wavetable samples from AKWF and run Little Weirdo Generate Soundbank
Performance
The performance tests on real embedded hardware can be found here Little Weirdo ESP32
Patches
Patches can be fully programmed in Rust or loaded using JSON (Testing) or Postcard (Embedded Devices). Checkout the patches
🎹 Listen to the Ebass patch (unmute the audio 🔇 ➡️ 🔊) :
https://github.com/user-attachments/assets/56b9666d-ab76-4716-8fe9-58ffc7642058