squinewave~  

Bandlimited sine-square-pulse-saw oscillator with FM and hardsync


  | what is it? | usage | news |

News
2016-10-17: Initial beta release.
I don't think this will need bugfixes, but more examples, reference etc needed.

hide
squinewave~
is a Max 7/msp external object.

Oscillator that morphs between sine, saw, square and pulse waveform.
Replace cycle~, saw~, rect~ with this in all your patches :-)

squinewave~ supports sharp but bandlimited hardsync, and works well as FM modulator source or LFO.
It uses 3-4 times more CPU than cycle~.
In some cases you can skip a filter though -- sweep the waveform instead of a lowpass.

Download: squinewave~2016-10-20.zip
Drop the files in a subfolder of your Max externals.

by rasmus.ekman@abc.se

hide
Usage
Waveform moves freely between the shapes, controlled by 2 float params: Clip and Skew.

Hardsync causes a 10-25 sample bandlimited sweep (pop) that resets waveform to beginning.
The sweep depends on current phase in waveform, so can create various shapes.

Inlets:
• Frequency (Herz, cycles per sec)
• FM (phase modulation) - 1 Octave per number (useful range up to about 3.0)
• Clip - Squareness of waveform (range 0-1)
• Skew - right/left symmetry offset (range +/-1)
• Sync - Reset waveform to start when input is >= 1

Outlets:
• Audio (range +/-1)
• Sync - 1 when waveform starts, else 0

Argument:
• Min sweep (range 4-100)
The smallest number of samples for waveform sweeps.
Default: 10. Normal range 7-20. If 0, picks a random value in range 8-16.

If you run several squinewaves in unison, it's useful to init them with different values of min-sweep.
The square/pulse waveforms have dips in the spectrum due to the rounded waveform.
With different min-sweep values these dips will cancel out rather than be exaggerated.


hide
2016-10-09 19:00