Band-Limited Osc

SourcesbloscLight CPU

Alias-free triangle / saw / square oscillator.

What it does

Alias-free triangle / saw / square.

Wraps daisysp::BlOsc (soundpipe-derived). Waveform is selected at init via SetWaveform; SetFreq / SetPw / SetAmp update per sample. Unlike the variable oscillators it has a native SetAmp, so the Amp port drives the level directly (no extra VCA multiply).

Parameters

  • Waveform

    waveform
    Default saw

    Which of the three classic shapes the oscillator produces. Triangle is nearly a sine with a little edge, saw is the bright buzzing one that suits filters, and square is hollow and reedy — and the only one Pulse Width does anything to. All three are band-limited, which is the point of this tile: they stay clean in the top octaves where the plain Oscillator starts to alias. ⚠ Baked at build time, so a patch cannot switch shape while it runs — use separate tiles and a Crossfade for that.

  • Pulse Width

    pw
    Default 0.5Range 0 … 1

    Width of the high part of the square, from 0 to 1, where 0.5 is a symmetrical square. Moving away from the middle thins the tone into something more nasal and reedy, and the extremes approach silence as the pulse vanishes. ⚠ This does nothing unless Waveform is Square. Slowly modulating it is the classic PWM sound, and the port is per-sample so that works.

Band-limited (anti-aliased) classic waveforms — stays clean where the basic Oscillator aliases up top. Waveform is baked at build time; Pulse Width only affects Square. Freq / Width / Amp are per-sample (modulatable); wire an envelope into Amp to play it.

Ports

In

  • Freq frequency
  • Width pw
  • Amp amplitude

Out

  • Audio Out output

Audio Control

Inputs

Freq
Pitch in Hz.
Width
Pulse width (Square only), 0 → 1.
Amp
Output level (0 → 1). Defaults to 1.0.

Outputs

Audio Out
Band-limited waveform.

Rules and gotchas

  • Waveform is baked at build time.