SyLFO: PPQ-Synced and Hopped LFO
Posted: Sat Jun 22, 2019 2:29 pm
Here's a little something extracted from my latest project that some folks might find handy. It's an oscillator specialised for LFO duties with full VST sychronisation, which compromises the maximum frequency so that hopping can be used to lighten the CPU load.
- Free-running "frequency mode" with 3 selectable ranges, including "Extra Slow".
- Sync to multiples of host beat subdivisions, including triplets and dotted notes.
- Sync to multiples or divisions of the host's current bar length.
- Sync-mode/Rate-display button selects a Rate control range to suit the sync source.
- Sync is to the host's PPQ data, so while the transport is running, there is no timing drift.
- Automatically free-wheels when the transport is stopped (less accurate timing, but re-syncs on restart.)
- LFO Phase may be offset, reset by a discrete trigger, or set to reset at note-ons.
- Supports sine, ramp, saw, triangle, square, noise, and sample & hold waveforms.
- Randomised noise generator seeding to prevent coherence between noise oscillators.
- Smoothing to remove hopping zipper-noise can also be used to smooth the output further.
- All four SSE channels are fully independent, even for selectors such as waveform and sync-source.
- The same code works for poly, mono, and mono4 - just change the connector types and you're done.
- No re-compiles due to selector/multiplexer switching - there aren't any!
- Low memory as well as CPU - no custom LUTs required.
- Semi-modular components for PPQ master ramps, synchronised ramps, and ramp -> wave generation.
- Looks ugly as hell! (hint, hint!
)
The only DAW with full tempo/time-signature control that I have is Reaper, and everything seems to work fine so far in there, including tempo ramps, time-signature changes, and auto-freewheeling. Good luck to those of you beta-testing for me on other platforms (hint, hint!
) The download is set up with a simple, VST exportable demo synth which includes a scope for peeking at what's going on...
NB) Schematic is saved from FS 3.0.6. Now working for FS4 alphas (thanks, kortezzzz!).
- Free-running "frequency mode" with 3 selectable ranges, including "Extra Slow".
- Sync to multiples of host beat subdivisions, including triplets and dotted notes.
- Sync to multiples or divisions of the host's current bar length.
- Sync-mode/Rate-display button selects a Rate control range to suit the sync source.
- Sync is to the host's PPQ data, so while the transport is running, there is no timing drift.
- Automatically free-wheels when the transport is stopped (less accurate timing, but re-syncs on restart.)
- LFO Phase may be offset, reset by a discrete trigger, or set to reset at note-ons.
- Supports sine, ramp, saw, triangle, square, noise, and sample & hold waveforms.
- Randomised noise generator seeding to prevent coherence between noise oscillators.
- Smoothing to remove hopping zipper-noise can also be used to smooth the output further.
- All four SSE channels are fully independent, even for selectors such as waveform and sync-source.
- The same code works for poly, mono, and mono4 - just change the connector types and you're done.
- No re-compiles due to selector/multiplexer switching - there aren't any!
- Low memory as well as CPU - no custom LUTs required.
- Semi-modular components for PPQ master ramps, synchronised ramps, and ramp -> wave generation.
- Looks ugly as hell! (hint, hint!
The only DAW with full tempo/time-signature control that I have is Reaper, and everything seems to work fine so far in there, including tempo ramps, time-signature changes, and auto-freewheeling. Good luck to those of you beta-testing for me on other platforms (hint, hint!
NB) Schematic is saved from FS 3.0.6. Now working for FS4 alphas (thanks, kortezzzz!).