fluidsynth

FluidSynth bindings


Keywords
fluidsynth, rust, rust-bindings
License
LGPL-2.0

Documentation

rust-fluidsynth

Build status (master)

Note: This project is still under development, not all functionality to use fluidsynth is available yet.

FluidSynth bindings for Rust.

Bindings for FluidSynth, a software synthesizer based on the SoundFont 2 specifications, in Rust.

FluidSynth website here. A documentation of the FluidSynth API is available here.

Installation

To use rust-fluidsynth you must install FluidSynth on your computer and add this to Cargo.toml:

[dependencies.fluidsynth]
git = "https://github.com/scholtzan/rust-fluidsynth"

Short example

extern crate fluidsynth;
extern crate rand;
extern crate time;

use fluidsynth::*;
use rand::{thread_rng, Rng};
use std::thread;

fn main() {
    let mut settings = settings::Settings::new();
    let mut syn = synth::Synth::new(&mut settings);
    let _adriver = audio::AudioDriver::new(&mut settings, &mut syn);
    syn.sfload("/path/to/soundfont.sf2", 1);

    let interval = Duration::milliseconds(1000);

    for _x in 0..12 {
        let num: i32 = thread_rng().gen_range(0, 12);
        let key = 60 + num;
        syn.noteon(0, key, 80);
        thread::sleep_ms(1000);
        syn.noteoff(0, key);
    }
}

License

rust-fluidsynth uses the same license as FluidSynth: the GNU Lesser General Public License.