-
Notifications
You must be signed in to change notification settings - Fork 1
Open
0 / 40 of 4 issues completedOpen
0 / 40 of 4 issues completed
Copy link
Labels
enhancementNew feature or requestNew feature or request
Description
This feature request is to refactor and enhance the synth engine so each polyphonic voice closely models the signal path and features of the Roland SH-101, but with modern polyphony. The goal is to make each voice a true SH-101 channel, while retaining SIMD optimizations.
Scope of changes:
Oscillator Section
- Add noise generator (white and pink noise) as selectable source or blend with main VCO.
- Implement pulse waveform for main oscillator with variable pulse width and pulse width modulation (PWM).
- Ensure sub-oscillator is always square wave and strictly -1 or -2 octaves below main VCO (with selectable range).
- Main oscillator should support saw, square/pulse, and noise, selectable or blendable per SH-101 style.
Filter Section
- Refactor per-voice filter to model IR3109/SH-101 characteristics: 24dB lowpass, analog non-linearity, resonance with self-oscillation, key tracking, and variable envelope modulation amount.
- Add option for filter envelope amount and keyboard tracking per voice.
- Support filter self-oscillation at high resonance.
Modulation and Envelope Section
- Ensure each voice has two independent envelope generators: one for VCA, one for VCF (per SH-101).
- LFO should offer triangle and square waveforms, modulate VCO pitch, PWM, and VCF cutoff independently.
- Add modulation matrix or routing logic for LFO/envelope destinations per SH-101 panel.
Other Features
- Add portamento/glide per voice (exponential/linear selectable).
- Add accent (velocity-sensitive envelope) and proper MIDI legato handling for polyphony.
- Restructure signal flow so each voice follows: VCO+Noise+Sub → Mixer → VCF → VCA.
- Maintain SIMD optimization and polyphonic capabilities.
Example code areas for modification:
Source/PluginProcessor.h: ExtendVoicestruct with noise, PWM, dedicated envelopes, routing flags, accent, and portamento params.Source/PluginProcessor.cpp: Refactor oscillator, filter, and envelope logic for signal path and feature changes.lab/simdsynth.cpp: Prototype new oscillator and filter behaviors.
This issue is for a major feature refactor and should be split into sub-issues:
- Oscillator/Noise/PWM refactor
- Filter model upgrade
- Envelope/LFO/Modulation matrix
- Voice signal flow and performance features
Label: enhancement
See the following code references:
Sub-issues
Metadata
Metadata
Assignees
Labels
enhancementNew feature or requestNew feature or request