prime-osc 1.1.1

Oscillators — LFO shapes, ADSR envelope
Documentation
  • Coverage
  • 79.17%
    19 out of 24 items documented7 out of 10 items with examples
  • Size
  • Source code size: 16.49 kB This is the summed size of all the files inside the crates.io package for this release.
  • Documentation size: 2.31 MB This is the summed size of all files generated by rustdoc for all configured targets
  • Ø build duration
  • this release: 12s Average build duration of successful builds.
  • all releases: 12s Average build duration of successful builds in releases after 2024-10-23.
  • Links
  • bwyard/prime
    1 0 3
  • crates.io
  • Dependencies
  • Versions
  • Owners
  • bwyard

prime-osc

Oscillators and envelopes — LFO waveforms, stateless phase stepping, and ADSR envelope simulation.

Part of the prime math ecosystem.

What's inside

  • lfo_sine / lfo_cosine / lfo_triangle / lfo_sawtooth / lfo_square — LFO shapes from a phase value
  • osc_step — advance phase by one sample, returns (sample, next_phase)
  • adsr_step — ADSR envelope simulation, returns (level, next_state)
  • AdsrParams / AdsrState / AdsrStage — envelope state types

Usage

use prime_osc::{osc_step, lfo_sine, adsr_step, AdsrParams, AdsrState};

// LFO — advance phase and sample
let (sample, next_phase) = osc_step(phase, freq, sample_rate, lfo_sine);

// ADSR envelope — thread state forward per sample
let params = AdsrParams { attack: 0.01, decay: 0.1, sustain: 0.7, release: 0.3 };
let (level, next_state) = adsr_step(state, &params, gate, dt);

Design

Phase and envelope state are explicit return values — no mutation, no hidden counters.

License

MIT