Squinewave
Band-limited morphing oscillator.
Sine-saw-square-pulse shapeshift using 2 CV/knob controls.
For the Voltage Modular platform: https://cherryaudio.com.
code: ekman; graphic profile, testing: sätter
Clip + Skew = waveform
Change waveform freely between sine, saw, square and pulse.
Current shape is shown in waveform display.
Clip controls "squareness"; Skew sets left-right symmetry, eg for left/right-facing saw and squarewave.
CV in for clip/skew is added to knob values.
Frequency, FM
Frequency knob range 0-2000 Hz.
FM CV in is exponential, up to 1.2V/oct depending on sensitivity knob.
Out and out+
The 2 output jacks are 2 squinewave oscillators where out+ has:
- Small drifting frequency offset (slightly sharp tuning).
- Inverted skew value = mirrored shape.
The separate signals are useful for stereo separation.
The combined signals of out and out+ is a phasing wave with pad character.
Sync in
High input will cause a very quick sweep to restart cycle.
Sync outputs
The 2 sync outputs emit high value exactly 1 sample per cycle, else 0.
The left belongs to out, the right to out+ oscillator.
Sync signals are slightly offset, useful for stereo and micro-delay effects.
Band-limited how?
Not by filtering!
But you can often skip a lowpass filter after output, since lower Clip creates less high frequencies.
- There are no angled edges, only sine sweeps.
Square, pulse and saw edges are sharp, but not clicks. - All waveform sweeps have minimum rise/fall length of 4-13 samples
(randomly set when created). - In result, the waveform "degrades" to sinewave in higher frequency range,
including under FM. - Hardsync sweeps are 2 x faster than the sharpest pulse.
You can still create trashy crackling by feeding bad control signals to inputs.
Notes
- Guarantee: If you only use squinewaves both for FM and shape, the signal should be bandlimited in almost all configurations.
- If you use squinewaves to control other band-limited oscillators, the signals should be bandlimited.
- Hardsync may produce limited aliasing (2-5 samples is not much of a "curve").
- Hardsync
from another oscillator signal at high rate can cause growling sound
depending on frequency range. This is due to sync signal detected at
sample resolution, which interfers with source frequency. The syncs
could be triggered at eg 200, 201, 200, 200, 201... etc sample intervals.
You may avoid or actively seek this effect!
Enjoy!