Crates.io | usfx |
lib.rs | usfx |
version | 0.1.5 |
source | src |
created_at | 2020-04-03 12:40:26.04571 |
updated_at | 2023-12-21 09:27:58.904549 |
description | Realtime procedurally generated sound effects |
homepage | |
repository | https://github.com/tversteeg/usfx |
max_upload_size | |
id | 225903 |
size | 119,731 |
Generate sound effects for your game in realtime.
// Create a simple blip sound
let mut sample = usfx::Sample::default();
sample.volume(0.5);
// Use a sine wave oscillator at 500 hz
sample.osc_type(usfx::OscillatorType::Sine);
sample.osc_frequency(500);
// Set the envelope
sample.env_attack(0.02);
sample.env_decay(0.05);
sample.env_sustain(0.2);
sample.env_release(0.5);
// Add some distortion
sample.dis_crunch(0.5);
sample.dis_drive(0.9);
// Create a mixer so we can play the sound
let mut mixer = usfx::Mixer::default();
// Play our sample
mixer.play(sample);
// Plug our mixer into the audio device loop
// ...
mixer.generate(&mut audio_device_buffer);
The cpal
& sdl
examples illustrate how to use it with different audio libraries. The music
example shows how to create procedurally generated music with it (don't expect a masterpiece though, it's obvious I'm not a musician).
To build the cpal
& music
examples on Linux you will need to have the alsa development libraries:
sudo apt install libasound2-dev
To build the sdl
you will need the SDL2 development libraries, on Linux:
sudo apt install libsdl2-dev