synth 0.2.6

A polyphonic Synth type whose multiple oscillators generate sound via amplitude and frequency envelopes.
docs.rs failed to build synth-0.2.6
Please check the build logs for more information.
See Builds for ideas on how to fix a failed build, or Metadata for how to configure docs.rs builds.
If you believe this is docs.rs' fault, open an issue.
Visit the last successful build: synth-0.11.0

synth Build Status

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

Features

  • Sine, Saw, 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).
  • Polyphonic (unlimited number of voices).
  • Warbliness builder method that uses gaussian noise to model the "warped-old-hardware-synth" sound.
  • Trigger playback at any time by passing the synth notes synth.play_note((duration_in_ms, pitch_in_hz)). Synth will automatically find an idle Voice to use (or retrigger the oldest one).
  • Uses sound_stream and its Sample trait and in turn is generic over any bit-depth or sample format.
for event in stream.by_ref() {
    match event {
        Event::Out(buffer) => synth.audio_requested(buffer, SETTINGS),
        ..
    }
}

See an example here.

PortAudio

synth uses PortAudio as a cross-platform audio backend. The rust-portaudio dependency will first try to find an already installed version on your system before trying to download it and build PortAudio itself.

License

MIT - Same license as PortAudio.