6 releases
new 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 |
#139 in Audio
152 downloads per month
Used in 2 crates
(via fluid-xenth)
355KB
8K
SLoC
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