#dsp #music

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

#146 in #dsp


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

~4.5MB
~59K SLoC