Advanced Logic
Although AND and OR’s usefulness in Boolean logic applications (e.g. combining gate patterns to create new patterns) is obvious, the two have a disadvantage in that they can only ever output a gate when one of the two inputs is high. In some sense, you cannot create “new” gates, only “accenting” patterns.
Creative use of the Crossfader block can help remedy this scenario.
Crossfader as Logical NOT Operator
With nothing patched to LEFT or RIGHT, patch a +5V offset to OFFSET. This creates the following transfer function for FADE:
RIGHT(OUT) = -FADE+5
When FADE is 0V, RIGHT(OUT) = 5V, and when FADE is +5V, RIGHT(OUT) = 0V. This is simply logical inversion, or the boolean NOT operator.
| FADE |
RIGHT(OUT) = !FADE |
| 0V |
+5V |
| +5V |
0V |
NB: If you do not have a +5V reference at hand, you can simply put SURVEY fully CCW or CW and patch SLOPE(OUT) to OFFSET.
NB: If 2.5V is sufficiently high for your gate input sensitivities, then you can simply place a dummy cable into RIGHT instead of sending a +5V offset into OFFSET. When the FADE gate is at 0V, RIGHT(OUT) will be 2.5V, and when the FADE gate is at +5V, RIGHT(OUT) will be 0V.
Logical NAND Operator
The NAND operator outputs a gate as long as both inputs are not simultaneously high - in other words as long as the result of applying the AND operator to both inputs is not true: A !& B = !(A & B)
- Gate 1 > AND1
- Gate 2 > AND2
- AND(OUT) > FADE
- +5V Offset > OFFSET
- RIGHT(OUT) = Gate 1 NAND Gate 2
Since any Boolean expression can be built with a sufficient number of NAND operators, you could build an entire digital computer capable of executing programs and storing data in RAM using COLD MACs. If you would like to do this, perhaps team WR could provide you with a few of the hundreds of millions of needed COLD MACs for free.
| GATE1 |
GATE2 |
RIGHT(OUT) = GATE1 !& GATE2 |
| 0V |
0V |
+5V |
| 0V |
+5V |
+5V |
| +5V |
0V |
+5V |
| +5V |
+5V |
0V |
Logical NOR Operator
The NOR operator only outputs a gate if both inputs are low - in other words as long as the result of applying the OR operator to both inputs is not true: A !| B = !(A|B)
- Gate 1 > OR1
- Gate 2 > OR2
- OR(OUT) > FADE
- +5V Offset > OFFSET (see previous section on alternatives)
- RIGHT(OUT) = Gate 1 NOR Gate 2
| GATE1 |
GATE2 |
RIGHT(OUT) = GATE1 !| GATE2 |
| 0V |
0V |
+5V |
| 0V |
+5V |
0V |
| +5V |
0V |
0V |
| +5V |
+5V |
0V |
Logical XOR Operator
The XOR operator only outputs a gate if exactly one of the two inputs are high, but not both. A XOR B is equivalent to the following expression: (A | B) & !(A & B) = (A|B) & (A !& B)
- Gate 1 > OR1, AND1 (normalled, no mult needed)
- Gate 2 > OR2, AND2 (mult/stackable needed, or patch to SURVEY CV with SURVEY knob at 0V)
- AND(OUT) > FADE
- OR(OUT) > OFFSET
- RIGHT(OUT) = OFFSET-FADE = Gate 1 XOR Gate 2
Whenever both gates are 0V, FADE and OFFSET are 0V since both AND(OUT) and OR(OUT) are 0V. This results in RIGHT(OUT) = OFFSET-FADE = 0V. When one of the two gates is +5V, OR(OUT) and OFFSET will be +5V but AND(OUT) and FADE will still be 0V, resulting in RIGHT(OUT) = OFFSET-FADE = +5V. When both gates are +5V, OR(OUT) and OFFSET will be +5V, but so will AND(OUT) and FADE, resulting in RIGHT(OUT) = OFFSET-FADE = 0V.
| GATE1 |
GATE2 |
RIGHT(OUT) = GATE1 XOR GATE2 |
| 0V |
0V |
0V |
| 0V |
+5V |
+5V |
| +5V |
0V |
+5V |
| +5V |
+5V |
0V |