Good good. I’ll just drop a back reference here to my scope video on Location (way back up this thread), since the behavior and operational range of LOCATION is so pertinent to actually using it for these modulation purposes.

2 Likes

I found something strange about my noise patch while trying to feed QPAS with it. I can only get sound out of it if I connect it directly to my sound card (an ES-8 ) — putting a filter or a VCA in between completely silences it. If I split Cold Mac’s output and send it to both my sound card and a VCA or filter, I also get silence, but the moment I unplug the (useless) VCA or filter the sound comes back. There certainly is some kind of strange interaction between the VCA or filter and Cold Mac. The arcane magic of electronics is playing a trick on this weird feedback network. Does anyone, or perhaps @Galapagoose know how to overcome it (other than loop it through my sound card)?

I just had a look at this on the scope. Seems like the configuration is essentially making the crease circuit oscillate. On the newer units it’s oscillating ~160kHz, so I’m guessing the noise is caused by instability in that oscillation caused by power supply, or grounding issues. Perhaps the noise you’re hearing is coming from the difference in ground potential between the ES8 versus the filter/vca? I’m not really sure here, just making the point that you are actively exploiting instability of the circuit so the behaviour is likely inconsistent.

I just listened to the same patch (same module!) across two ‘identical’ isms cases and the sound was totally different, plus the position of the SURVEY knob where the behaviour happened was different. One case had much more interesting noise - it’s full of a bunch of digital modules, while the ‘boring’ sounding case just had 2 mangroves in it. Certainly suggests you’re amplifying noise & instability in the power system.

I tried patching a VCA in the middle of the right -> crease path and adjusting the VCA gave (unstable) control over the oscillation frequency well down into the audible range. Patching crease to left input resulted in a totally different waveshape but the same oscillation behaviour. FYI!

9 Likes

Very interesting observations! I’ll have to try your variation of the patch with a scope plugged in!

Bernoulli Gates / Event Probability

  • Noise source (e.g. white noise, or a S+H sequence) > AND1
  • AND(OUT) > OFFSET
  • RIGHT(OUT) > SLOPE
  • SLOPE(OUT) > Trigger/Gate input of Envelope Generator
  • Probability Threshold CV > SURVEY (or FADE & AND2)

SURVEY (or FADE & AND2) controls the probability that an event will occur.

Noise first gets compared to the probability threshold, which is appearing at AND2 (thanks to SURVEY normalling or direct patching). If the noise is less than the threshold, then the noise will come out of AND, otherwise the threshold itself will be output from AND. This signal is patched to OFFSET.

When nothing is patched to the LEFT and RIGHT inputs of the crossfader, RIGHT(OUT) is always simply an inverted copy of the FADE input summed with OFFSET:

RIGHT(OUT) = OFFSET-FADE

Consider what happens when the noise signal is above the threshold.

AND(OUT) = OFFSET = Threshold

FADE = Threshold

RIGHT(OUT) = Threshold - Threshold = 0

And now consider what happens when the noise signal X is below the threshold.

AND(OUT) = OFFSET = X

FADE = Threshold

RIGHT(OUT) = X-Threshold

This is just the distance of the noise signal from the threshold. Since the threshold is larger than the noise signal X, RIGHT(OUT) must be negative. As such, RIGHT(OUT) gets sent to SLOPE, to convert it into a positive signal so that envelope generators can be triggered/gated.

As long as the random noise signal is farther from the threshold by the sensitivity of the trigger/gate input, then the final output from SLOPE(OUT) will be greater than the trigger/gate threshold, and the envelope generator will trigger (or be held high).

As such, the threshold determines how likely it is that a random signal meets the conditions to trigger the envelope generator. Assuming the noise source/sequence is -5V to +5V, a probability threshold of -5V corresponds to 0% probability, and +5V corresponds to 100% probability.

If you are using a white noise source (as opposed to sample & hold), you will probably want envelopes with instant attack, and probably are better off with either gate-sensitive ASR envelopes or retriggerable AR envelopes (as opposed to non-retriggerable AR envelopes). Playing with the envelope decay time is useful for further calibrating the feel of your geiger counter.

Edit - check out the CM technical map for a much improved version of this!

42 Likes

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
76 Likes

Good LORD

Thank you very much!

3 Likes

Wow this is amazing. Can’t wait to understand and apply these.

1 Like

This is like a photo negative of the official manual. I love them both!

1 Like

Smh I just thought of a much simpler way to do the Geiger Counter…

I’ll leave it as an exercise to the reader for now :wink:

Hint - it only requires the Crossfader and Or blocks!

4 Likes

Amazing work! Thanks for posting such a comprehensive explanation. Can’t wait to try these out and see what else you come up with.

i’ve used @glia’s version of this “random ticks/gates” utility in a very simple self-patch, to turn CM into a variable-density noise source.

  1. crease out -> survey in
  2. listen to mac out
  3. slowly sweep survey; find the various noise positions.

can go from white noise down to a scratchy, sparse, dunst-like intermittent noise, especially if then run through a gate to further limit how many crackles get through. good for audio textures/vinyl noise, or cv gates, such as periodically pinging a granular freeze input.

16 Likes

I have a question about Cold Mac. One is in the mail to me right now, and I’ve been reading up, watching videos, and plotting. I was wondering about the faceplate. I noticed that the one on the Whimsical webpage doesn’t have the tiny little +, -, and s(urvey) markings that I seem to see on the Cold Macs I’ve seen out in the world, like on the unofficial documentation. See below for comparison. Was the one on the Whimsical site a prototype, or an earlier generation? Sorry if this was mentioned elsewhere on Lines. I did a search for “plate” and “faceplate” before posting here.

ColdMac4 functional-blocks

I believe that is correct, I remember seeing somewhere that the normalization markings were an update.

2 Likes

Yes, the panel was updated almost immediately. I think only the first run or two were missing the normalization markings. I don’t think the circuits were touched.

6 Likes

Thanks, @coreyr and @mdoudoroff. That makes sense. Much appreciated.

1 Like

hyperlocal cold mac patching circle whenever yr ready

2 Likes

Cool! Plus yoga and sushi and daycare.

3 Likes

Anyone wants to trade a recent Cold Mac with a RARE first run one? :grinning:

7 Likes

So mine is “vintage”! :star_struck:

4 Likes