Changing oscillator waveshapes without a pop

Is there a way to change oscillator shapes without making a pop? Ideally, without using two envelopes to gradually morph the signals.

example: from
osc.SetWaveform(Oscillator::WAVE_SIN)
to
osc.SetWaveform(Oscillator::WAVE_TRI)

Thanks

Although @Manysounds was answering a different question I think his post answers your question to a degree, maybe without actually providing code, which would have been even better. I haven’t read the whole thread.

1 Like

Hmmm, it might help to switch the waveform at a zero crossing.

2 Likes

Alternatively you could “fade” from one to the other which might give you a moment of weirdness, but only a few cycles.

That would double the number of oscillators, wouldn’t it?

You’d need twice as many oscillator objects in code, but you wouldn’t have to make double-calls to Process() except during the crossfade… so conceivably the extra CPU load could be manageable.