6 releases

0.1.0 May 25, 2025
0.0.5 Dec 30, 2023
0.0.3 Feb 9, 2023
0.0.2 Oct 28, 2022
0.0.1 Jul 3, 2022

#90 in Audio

Download history 18/week @ 2025-02-18 16/week @ 2025-02-25 29/week @ 2025-03-04 31/week @ 2025-03-11 22/week @ 2025-03-18 22/week @ 2025-03-25 10/week @ 2025-04-01 24/week @ 2025-04-08 19/week @ 2025-04-15 36/week @ 2025-04-22 26/week @ 2025-04-29 17/week @ 2025-05-06 53/week @ 2025-05-13 196/week @ 2025-05-20 93/week @ 2025-05-27 65/week @ 2025-06-03

411 downloads per month
Used in 2 crates (via fluid-xenth)

LGPL-2.1

355KB
8K SLoC

img

OxiSynth

OxiSynth is a pure safe Rust SoundFont™ synthesizer, inspired by the widely known FluidSynth.

Primary Use Case

Initially designed for integration with Neothesia, OxiSynth has expanded its utility to other innovative projects, including:

  • microwave: A microtonal synthesizer that makes creative use of OxiSynth's per-channel tuning APIs.
  • xsynth: A Black MIDI synthesizer leveraging OxiSynth's soundfont parsing crate.

Showcase

This is how OxiSynth sounds like, running in real-time in Neothesia

The chorus and reverb in the recording are also produced by oxisynth-chorus and oxisynth-reverb crates respectively, that don't have any dependency on oxisynth itself and can be used as generic efects outside of this project.

https://github.com/user-attachments/assets/fdfc669e-6d9d-48bd-8f50-11c133a346c0

https://github.com/PolyMeilex/OxiSynth/assets/20758186/d50d2e95-f316-472f-88e9-111ed2f52784

WASM as first class target

OxiSynth was built with WASM in mind from the get go, so here it is running in the browser, with Boomwhacker soundfont prebundled: https://oxisynth.netlify.app


lib.rs:

You create a new synthesizer with [Synth::new()]. Use the settings structure to specify the synthesizer characteristics.

You have to load a SoundFont in order to hear any sound. For that you use the [Synth::add_font()] function.

To send events use: [Synth::send_event()] function.

To write the results to a buffer use [Synth::write()] function.

Dependencies

~115–630KB
~13K SLoC