The Pitch Offset Blocks

These two blocks can be found in the "Pitch" menu.

These blocks implement the algorithm found here at the Spin Knowledge Base. This is something called a "Hilbert Transform" and I don't intuitively understand how it works, or else I'd try explaining it. As described in the article, a bandpass filtered signal is run through a phase shift and multiplied by a sine and cosine at the pitch offset frequency. The result is that frequency components are offset by a fixed amount rather than by a percentage as in the traditional pitch shifter which maintains harmonic relationships.

So, supposing the input signal has components at:

  • 100 Hz

  • 200 Hz

  • 300 Hz

If the pitch offset is 10 Hz, we'll get:

  • 110 Hz

  • 210 Hz

  • 310 Hz

The "3rd harmonic" is 20 Hz flat! Clearly this is not the effect to use when you are after beauty - or is it? According to the code sample, this offsets up or down by up to 370 Hz.

The secret to this block is that "zero" offset occurs with a control input level of 0.5. Above 0.5 offsets down while below 0.5 offsets upwards.

Now you can get goofy sci-fi sounds by exploiting the full range directly, or you can put the pitch offset in the feedback loop of a delay, to get a different kind of sci-fi sound.

I discovered that you can also get a beautiful sort of tremolo/chorus sound by scaling the control signal way down so that the variation around 0.5 is very small, i.e. 0.49 to 0.51. This is easily accomplished by setting the Scale/Offset as shown:

You can run this in stereo or summed to mono. Each one is a unique sound.

One drawback of this block is that it uses a LOT of registers and instructions. For the dual-output block, I had to have them share the input filter so you can't really get totally separate processing, but you can do things like this:

Check out the linked SpinCAD Bank file for these patches and a few more. Click on the "Download" button as shown.

What can you come up with?

Last updated