Invert, Power, Two-Stage, and Vee

All patches for this article can be found in the linked SpinCAD Bank file.

Invert

This block is intended primarily to invert the range 0->1 to 1->0. There is no control panel. It implements this instruction:

  • SOF -0.9990000000,0.9990000000

which amounts to generating an output y given an input x:

  • y = -x + 1 = 1 - x

Yes, it's not quite 1. I'll double check to make sure that those coefficients are really as close as you can get to 1.0 using the representation used by the SOF instruction. For reference, C (the multiplier) is S1.14 and D (the offset) is S.10. This info is taken from page 30 of the Spin ASM Manual.

C can range from:

10.00000000000000 base2 = -2.0

to

01.11111111111111 base2 = 2.0 - (2^-14) = 1.99993896484375

while D can go from:

1.0000000000 base2= -1.0

to

0.1111111111 base2= 1.0 - (2^-10) = 0.9990234375

I could make the constants in the Invert block closer to the limits, I suppose.

One possible application of this is to crossfade two inputs on a mixer:

In this example, we are using a Mixer 4:1 block to mix the dry signal with various taps from the ThreeTap delay. The longest delay (Tap 1) comes through all the time. Using Pot 2, you can also blend in just Tap 2, just Tap 3, or some mix of them.

Note that because the Invert block fades linearly from 0 to 1, that at its midpoint, both signals will be multiplied by 0.5. This results in a perceived level drop of -3 dB due to our ears' sensitivity being related to the added power of both signals. That, of course, assumes that both signals are active at the same time, which might not be true.

Note also that the Crossfade block (under the I/O-Mix menu) merges the Invert block's control signal inversion with a 2-input mixer.

Power

The Power block is intended to help you shape your control signals although it can be used for anything. For example, let's say you have a Pot going directly to a volume control.

When Invert and Flip are both unchecked, this block generates an output y from input x as shown:

  • y = x^(power)

This block also contains a small graph showing you the resulting curve. The area represented is x = 0 -> 1 along the horizontal axis and y = 0 -> 1 along the vertical axis.

The effect on a 0 -> 1 sine wave is also shown for each setting. As usual, you should turn the Simulator Scope on to see these waveforms.

With Invert selected, the block implements:

  • y = (1-x)^(power)

At first glance, this looks identical to the first one. However, look closely at the alignment of the peaks of the two signals. If you're only going to use the signal after it goes through the Power block, then the wave shape is the same. Using the Invert option adds an instruction, so best just to leave it off.

With Flip only selected, the equation becomes:

  • y = 1-(x^(power))

With both Invert and Flip checked, we get:

  • y = 1-((1-x)^(power))

Note that a power of 1 is possible, although it doesn't make sense to use this block for that because it simply wastes instructions and a register.

Please see this article which shows two power blocks being used in conjunction with the straight pot signal to fade 3 signals in 1 at a time with the rotation of the pot.

Two-Stage

The Two-Stage block does the following:

As the input control signal goes from 0 to 0.5,

  • Stage 1 goes linearly from 0 to 1.0

  • Stage 2 stays at 0

As the input control signal goes from 0.5 to 1.0,

  • Stage 1 stays at 1.0

  • Stage 2 goes linearly from 0 to 1.0

This is one of those blocks that I haven't yet found to be incredibly useful as all I can think of to do with it is:

  • 0 to 0.5, turn up the LFO speed

  • 0.5 to 1.0, turn up the LFO width

However that does not mean that it does not have potential. It might make sense to use this block in combination with a Scale/Offset or one of the "shaping" control blocks like the power block on one or both outputs, to add a more subtle change in the algorithm. Typically someone else usually finds an interesting way to use blocks that I've never considered, so let me know if you do!

Vee

The Vee block does the following:

As the input control signal goes from 0 to 0.5,

  • Output 1 goes linearly from 1.0 to 0

  • Output 2 stays at 0

As the input control signal goes from 0.5 to 1.0,

  • Output 1 stays at 0.0

  • Output 2 goes linearly from 0 to 1.0

The linked SpinCAD file shows a patch where pot2 controls the FX blend through a Vee block. In the middle it is just dry. All the way to the left brings in some chorus. All the way to the right brings in a flanger. The LFO speed and width of the two modulation stages is individually scaled with separate scale/offset blocks.

Last updated