#dsp #music #synthesis #instrument

synth

A polyphonic Synth type whose multiple oscillators generate sound via amplitude and frequency envelopes

34 releases

Uses old Rust 2015

0.11.0 Feb 12, 2017
0.10.0 Feb 26, 2016
0.9.2 Jan 10, 2016
0.9.1 Dec 28, 2015
0.2.4 Mar 26, 2015

#31 in #synthesis

31 downloads per month
Used in umpire

MIT license

115KB
2.5K SLoC

synth Build Status Crates.io Crates.io

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.
synth.fill_slice(frame_slice, sample_hz),

See an example here.

Dependencies

~4MB
~58K SLoC