The source machine is the first stage in each SquiggleBoyVoice and is responsible for generating (or forwarding) the raw signal before filtering and amplitude shaping.
Each voice currently supports three source machine modes:
DualWaveShapingVCO.hpp.PhysicalModelingSource.hpp.The primary sound source is the Dual Wave Shaping VCO (DualWaveShapingVCO), which consists of two complex wavetable oscillators (VectorPhaseShaperInternal) that can modulate each other.
The core of each oscillator is a randomly generated, constantly morphing additive wavetable (MorphingWaveTable).
m_morphHarmonics), which determines how many harmonics are included.The oscillators use Vector Phase Shaping (VPS) to distort the read phase of the wavetable. This is controlled by two parameters per oscillator:
The Dual Wave Shaping VCO contains two such oscillators (VCO 0 and VCO 1):
detune). VCO 1 runs at baseFreq * offsetFreqFactor / detune.m_crossModIndex.fade).BitRateReducer) for digital degradation.The Thru source machine allows external audio to be routed through the voice’s filter and amp sections. It is currently a simple pass-through for external signals, allowing the synthesizer to act as a polyphonic filter bank and envelope shaper for outside audio.
The Physical Modeling source machine (PhysicalModelingSource) is a noise-driven resonant source built around a damped comb. The chain is:
CombFilterWithOnePole) with delay compensation.This source owns a UIState that implements TransferFunction, so the visualizer can draw the combined pre-comb SVF and comb response in the Source bank.
Parameters are tagged with which source and filter machines they apply to (see Encoder System). When a source machine is selected, only matching source-specific controls are connected (e.g. VCO harmonic/phase controls for Dual VCO, comb/damping controls for Physical Modeling). This keeps the interface focused on controls relevant to the active machine.