The Corruptor - CMOS Ring Modulator

Started by Freppo, November 17, 2014, 07:00:22 PM

Previous topic - Next topic

Mr. Lime

Quote from: Freppo on November 18, 2014, 06:46:14 AM
Quote from: commathe on November 17, 2014, 09:22:18 PM
I don't get how the square/tri switch works though? The 4070 is a digital logic chip. It'd only maybe shorten the pulse width of the modulator (it'd spend less time above the logic threshold). It wouldn't actually make a triangle output after the 4070.
Yes, you are right about that. When feeding the 4070 a triangle wave, what comes out is only a shorter width pulse
It sounds warmer and more bell like then the 50/50 square though, just as expected from a triangle in a analog ringmod
But I guess I should call the switch something else than square/triangle. Maybe short/long? I dunno... :)

Another gate on the cd4070 could be used for full modulation of the pulse width of the carrier signal
It was something I had on the breadboard for a while, and it works great but it felt alittle overkill.
I will post a schematic later on how to do that if someone want to add that feature.

Quote from: commathe on November 17, 2014, 09:22:18 PM
Your freaky way of generating another wave from an input is cool though! Definitely going to be trying that out! Is it some sort of envelope generator?

The signal gets recitified and then triggers a gated RC oscillator, which means that the oscillator is only running while playing.
So no carrier bleedthough, as you will see and hear in the video below. :)
Quote from: nocentelli on November 18, 2014, 12:32:45 AM
do you ever sleep?
lol. Not really. I'm spending way too much time on this hobby. :icon_rolleyes:  :icon_lol:

Anyway, here is a video. Sorry about the sound-quality.. just a quick ipad video.

It starts to sound like a regular ringmod at about 3:30 when I have turned up the frequency
I find that most ringmods are almost totally unusable at low frequencies, but not this one :)

/ Freppo

I know it's a very old thread but there haven't been a lot of discussions on XOR gates and I would really love to learn more about PWM with a 4070..
Could anyone point out, how the pulse width was modulated on the carrier frequency?

The links are all dead :(

Thanks for help


I think all the schematics for Parasit designs can be found in the build document PDF's.

I don't think you need Xor gates to make a PWM converter. If you AC couple a non-pulse wave into any CMOS input and arrange, via some resistance to the input a variable DC level (which can be another waveform!) then the logic switching threshold of that input will vary and the AC coupled wave can influence when the logic state switches.

Mr. Lime

Thans for the reply, Jim!

Sure there are simpler ways to archive PWM than with XOR gates but I'm more interested
in having PWM control of the carrier oscillator. As previously mentioned in the thread, different pulse widths might soften the overall sound of the pseudo XOR ring mod.
The new corrupter circuit uses the XOR gate of a 4046 and the oscillator for modulation..

Is there a straight forward approach for PWM control for the 4046 oscillator that could be added?
Thanks for help


I had hoped that the Inhibit pin of the 4046 might chop the timing cap charge allowing the PWM control, but no, Inhibit takes Pin4 low and resets the timing cap by forcing pin6 low.
It should be possible to chop Pin9 directly with a PWM signal letting the internal control Nmos be the chopper of the timing control current.

Mr. Lime

Freppo has mentioned in his article "octave up":

CMOS Workshop Part 4: octave up
1/3/20179 Comments

It's time for another part of the CMOS Workshop series. :)
This part will be about octave up circuits (aka frequency doublers).
The easiest way to produce a digital octave up is by using a Pulse Generator circuit, also called a Edge Detector. It generates a pulse at every high-to-low and every low-to-high logic transition, thus doubling the frequency.

It's a simple circuit and what used for the Arcadiator. There are several ways to do this. Let's have a look at a few examples and start with the easiest way that require the least amount of components.

You can click on the images for a larger view.
The top row shows the square wave and the bottom row shows the pulses generated with the edge detector circuit
1. XOR gate (CD4070)
The CD4070 is ideal for this purpose and require very little extra components.
XOR pulse generator schematic
XOR logic: For the output to go high, ​both inputs needs to be at a different state

​By connecting our square wave to both inputs and delaying one of the inputs slightly, there will be a brief moment when the inputs are in different states. At this moment the output will go high, thus creating a short pulse wave at the output every time the input goes high or low.

The delay is made out of a simple RC filter. It will round out the square wave, so that it takes alittle longer for each transition to cross the switching threshold of the logic gate.

QuoteHere we can play around with different values for the RC filter. It will change the width of the pulses and the character of the sound. For C5 (C1 on the schematic) try a 4.7nF - 47nF value. For R5 (R1 on the schematic) try 10K-500K. In the 1B example I've replaced R5 with a trimmer and for convenience I chose another gate. The top greyed out part is the gainstage and schmitt trigger front end from the CMOS Workshop part 2 so you will have to check the other component values there.

Notice that the pulse width can get too narrow or wide for the octave up effect to work. As a rule of thumb you don't want the pulses to be too narrow because it will sound bad, and you don't want the pulses too wide because then it won't track properly on the entire fretboard.

So basically if we make R1 variable we get a pulse width control? It might utilizes the XOR gate of the 4046 but it's some sort of PWM, isn't it?
Thanks for help


The pulse doubling that makes it sound an octave up is caused by the delayed input to pin 2 of the Xor. Remember, the Xor only outputs high when only one input is high. If you assume both inputs start low, pin1 sees the pulse goes high and the gate outputs high. Then the cap charges high and the output drops low because both inputs are high. Then the pulse goes low but the cap is still charged high so the output is high again until the cap is discharged and both inputs are low and the output goes low. So you get two pulses out for every single pulse in.

Yes, the smaller that R1 becomes, the narrower and more closely spaced the pulses will be.

Mr. Lime

Thanks for the explaination, Jim!  :)

If someone would like to add a PWM control, I think it might be easier on the schmitt trigger fuzz side of the XOR input instead of the 4046 VCO.. (think of Escobedo's PWM)
This leads me to another question.
What's the prupose of the inverter infront of pin 5 of the 4046?
I see we want a gated oscillator which is quiet when the guitar is not played. The gate is formed by the schmitt trigger and the diode rectifier.
The inverter inverts the rectified signal so the gate opens for the 4046?
Can't we turn the diodes arround to ditch one inverter or does it have a buffering background?

Thanks for help


Pin 5 high stops the VCO. The inverter is buffering an envelope detector. When you stop playing, C6 discharges low and pin5 of the 4046 goes high and it shuts up, otherwise, it will keep running.

Mr. Lime

I see, but is a buffer really needed here?

I ask because I would rather use a LM386 as sqaure wave shaper and a 40106 as schmitt trigger with no inverter left for buffering prupose..
Thanks for help


No, a buffer isn't needed, but an inverter definately is.