#midi #synthesizer #sound-font

xsynth-core

A fast Rust-based SoundFont synthesizer designed for high voice counts and low latency

6 releases

0.3.3 Mar 15, 2025
0.3.2 Dec 28, 2024
0.3.1 Aug 25, 2024
0.2.0 Aug 10, 2024
0.1.0 Aug 6, 2024

#444 in Audio

Download history 1/week @ 2024-12-03 8/week @ 2024-12-10 133/week @ 2024-12-24 9/week @ 2025-01-07 1/week @ 2025-01-14 7/week @ 2025-02-04 3/week @ 2025-02-11 10/week @ 2025-02-18 2/week @ 2025-03-04 128/week @ 2025-03-11 34/week @ 2025-03-18

167 downloads per month
Used in 2 crates

LGPL-3.0

255KB
6K SLoC

XSynth

A fast Rust-based SoundFont synthesizer designed for high voice counts and low latency.

Components

VoiceChannel

Represents a single MIDI channel. Keeps track and manages MIDI events and the active voices of a channel.

Unlike most other MIDI synthesizers that use global voice limits, each XSynth channel limits the spawned voices per-key using "layers". One layer corresponds to one voice per key per channel.

For information about supported events and controllers, please visit the VoiceChannel documentation.

ChannelGroup

Represents a MIDI synthesizer within XSynth. Manages multiple VoiceChannel objects at once in an easy to use way.

SampleSoundfont

Represents a sample SoundFont to be used within XSynth. Holds the voice and program data, as well as the samples of a SoundFont.

For information about supported formats, please visit the SampleSoundfont documentation.

Voice

A voice represents a single SoundFont sound. They are usually generated within a VoiceChannel according to the sent events.

Documentation

You can find all the necessary documentation about the XSynth API here: https://docs.rs/xsynth-core.

Dependencies

~9–17MB
~301K SLoC