Formant Shift through Windowed Sync

Author: Snyxol (Alexander Eslava)

You can do a smooth kind of formant shift on every waveform on the XT (and Virus, too, but not Q/mQ), and this without the need to create formant shift wavetables like “Chorus2” or “FormantVoc”. I refer to this method as “windowed sync”. It´s a combination of hard synchronisation and ring modulation. Although it is not really an accurate formant shift of the spectrum (this would require a very CPU/DSP intensive spectrum analysis through FFT, computing of the transformed spectrum and resynthesis by IFFT), it can sound rather similar. Dynamic, fat and nice evolving textures can be done by modulating “windowed sync” by a LFO or envelope.

Pure hard sync sounds pleasant on buzzy waveforms like saw and pulse, because these waves already have vertical transients. On smoother waveforms, however, it is poison for the ears, when sweeping the pitch of the sync slave (osc 2). It crackles like a scratched vinyl disc. This is because the harsh vertical transitions at the sync time points get smaller and bigger (depending on the phase) at wich the slave wave cycle breaks off to start a new cycle. Damping with a lowpass filter is not a good solution to reduce the harsh crackling. It would still be audible, though rounded, and the upper harmonics of the soft wave would be dampened.

Windowed sync eliminates the vertical transitions at sync time points more efficiently. The trick:

Ringmodulation is synonymous with amplitude modulation. It multiplies both input signals samplewise. Thus you can consider Wave1 as an amplitude envelope of Wave2. Exactly when the sync master (Osc1) starts a new cycle and forces the slave osc (Osc2) to start a new cycle, too, the triangle wave crosses the zero axis. Thus the Ringmod signal has amplitude 0 at the sync time points, and the discontinuities in the Wave2 signal are fadet out. The result is a soft, continuous wave, mostly round, sometimes with a little edge like on a triangle wave, but not harsh. In other words, Wave1 has the task of a window function, a window that let´s through the “clean” parts of the wave while hiding the dirty sync jumps.

The good thing is that the triangle wave is present in all wavetables. Of course you can use another wave as window, if there is a suitable one in the wavetable. Suitable are smooth waves without steep transients, i.e. sine and dull organ waves.

The level of the ringmod signal is often rather low, because the amplitudes of the triangle wave and often that one of Wave2 are not normalized. The volume can be amplified with the Sin(X)-LP filter or the Waveshaper filter with square as shaper wave and a very small ringmod level (ca. 4-10).

That´s all. Have fun making mad sound experiments!