https://github.com/RustAudio/synth
A polyphonic Synth type whose multiple oscillators generate sound via amplitude and frequency envelopes, implemented in Rust. DEPRECATED: This is a very old crate with very old design patterns and is no longer maintained. You might be interested in checking out `dasp` for composing your own synth instead.
https://github.com/RustAudio/synth
Last synced: 8 months ago
JSON representation
A polyphonic Synth type whose multiple oscillators generate sound via amplitude and frequency envelopes, implemented in Rust. DEPRECATED: This is a very old crate with very old design patterns and is no longer maintained. You might be interested in checking out `dasp` for composing your own synth instead.
- Host: GitHub
- URL: https://github.com/RustAudio/synth
- Owner: RustAudio
- License: mit
- Archived: true
- Created: 2015-02-11T14:05:54.000Z (almost 11 years ago)
- Default Branch: master
- Last Pushed: 2018-10-07T10:51:15.000Z (over 7 years ago)
- Last Synced: 2024-07-18T10:00:00.942Z (over 1 year ago)
- Language: Rust
- Homepage:
- Size: 132 KB
- Stars: 172
- Watchers: 21
- Forks: 18
- Open Issues: 9
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# synth [](https://travis-ci.org/RustAudio/synth) [](https://crates.io/crates/synth) [](https://github.com/RustAudio/synth/blob/master/LICENSE)
A polyphonic Synth type whose multiple oscillators generate sound via amplitude and frequency envelopes.
Features
--------
- Sine, Saw, SawExp, Square, Noise and NoiseWalk waveforms.
- Amplitude and frequency envelopes with an unlimited number of points.
- Unlimited number of oscillators (each can have unique waveforms and amplitude and frequency envelopes).
- Monophonic and Polyphonic modes (unlimited number of voices).
- Simple `note_on(pitch_in_hz, velocity)` and `note_off(pitch_in_hz)` methods.
- Per-channel amplitude and a stereo panning helper method.
- "Stereo spread" for automatically spreading multiple voices evenly across the stereo image.
- Per-voice portamento.
- Per-voice detuning.
- Multi-voice (unison) support in Mono mode.
- Legato and Retrigger Mono modes.
- Warbliness Oscillator builder method that uses gaussian noise to model the "warped-old-hardware-synth" sound.
```Rust
synth.fill_slice(frame_slice, sample_hz),
```
See an example [here](https://github.com/RustAudio/synth/blob/master/examples/test.rs).