You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Add per-operator Warp parameter (±4 range, values beyond ±1 invert one
half-cycle). Implemented in getNextSample / getNextBlock / getNextBlockHQ
including the decimated sub-paths. A deadband near zero preserves the fast
no-warp code path under near-zero modulation.
Patch format bumped to v1.5; Warp defaults to 0 on load of older patches,
out-of-range values clamped on load (PreenFMFileType.cpp).
Modulation matrix
New destinations OSC1..6_PHASE and OSC1..6_WARP added to DestinationEnum
(Common.h).
Phase applied at note-on; Warp updated every block in
Voice::prepareMatrixForNewBlock via updateWarpWithMatrix (Voice.cpp / Osc.h).
Matrix destination labels o1Ph–o6Ph and o1Wr–o6Wr wired in FMDisplayEditor.
MIDI
CC_OSC1..6_WARP mapped per operator (MidiDecoder.cpp / MidiDecoder.h).
ENCODER_OSC_WARP encoder row added to editor UI.
Synth engine / init
Osc::init now receives phaseParamsBase pointer; each oscillator binds its
Warp directly to its per-timbre phase row, fixing parameter ownership across
timbres (Osc.cpp / Timbre.cpp / SynthState.cpp / SynthState.h).
CPU optimisation
quantizeOscOutputBeforeEnvelope skipped in non-decimation block-render paths
(getNextBlock, getNextBlockHQ, getNextSample), removing a branch + two
multiplies per sample in the common case.
waveDecimationEnabled cached once per block call instead of read per sample.
Selective #pragma GCC optimize("Ofast","fast-math") applied in Release builds
only to six hot DSP translation units: Osc.cpp, Voice.cpp, FxBus.cpp,
TimbreFx.cpp, SimpleComp.cpp, SimpleEnvelope.cpp.
Release makefile: -O2 for DebugLQFP144; LTO enabled for Release link.
Versioning
firmware version bumped to v1.06f (version.h).
Documentation
README.md updated with full description of Phase, Warp, mod-matrix
destinations, CPU optimisation, and patch migration notes.