The Pitch Offset Blocks
Last updated
Last updated
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?