Replace conditional-subtraction phase wrapping with a single stable wrap:
- OscillatorNode: `(phase + freq_mod/sr).rem_euclid(1.0)` — also wraps correctly
when FM drives freq_mod negative (the old `if >= 1.0` wouldn't).
- SynthVoice: `(phase + frequency/sr).fract()`.
Repeated `if phase >= 1.0 { phase -= 1.0 }` accumulates f32 rounding error over
long-held notes, drifting the timbre.
|
||
|---|---|---|
| .. | ||
| examples | ||
| src | ||
| tests | ||
| C2.mp3 | ||
| Cargo.lock | ||
| Cargo.toml | ||
| darude-sandstorm.mid | ||
| daw_architecture_doc.md | ||
| test.wav | ||
| ttls.mid | ||