If we had a dime for every 555-based noisemaker circuit we see… But this one’s got a twist.
[Tristan] does two things that elevate his sawtooth-wave noisemaker above the norm. First, he gets a clean sawtooth wave out of it so that it sounds about right. Then he manages to make it more or less playable. It’s a refined version of a classic hack.
The first trick is a matter of putting a constant current supply upstream of the timing capacitor. The usual 555-timer circuit just charges the capacitor up from the power rails through a resistor. This is fine if all you care about is timing. But because the current is proportional to the constantly dropping voltage difference, the voltage on the capacitor is an exponential function over time.
A simple transistor current source linearizes the waveform in no time. Raw sawtooth waves are “rich in harmonics” which is synth-geek code for “a bit grating”, but it will surely do well with a little filtering. The Javascript suggests that he’s already thinking in that direction, but we’re going to need video proof!
The second cool trick up [Tristan]’s sleeve is the light-dependent resistor (LDR) that determines the pitch. Yeah, we’ve all made those before — the light-dependent “Theremin”. But [Tristan] took the extra step and wrote up a Javascript application that makes his monitor brighter and darker, enabling him to get musical pitches out of the gizmo.
We’ve always wanted to implement LED-to-LDR control while writing the Logic Noise series, but never found a reliable way to make it work. It’s cool to see [Tristan]’s efforts. Maybe we’ll pull a 555 out of the junk box in his honor.
Modulate the backlight on your PC to control the pitch on your 555? How convoluted. I love it.
…written in javascript… it’s like he was aiming to horrify…
JavaScript is actually a quite capable language now with modern machines. I use JavaScript as a quick hack whenever I need mathematical results that need to be rendered in some way to be understood. To be fair, I am running a quad core PC but I have done simpler stuff on a dual core. The fact that (in a browser) Javascript is co-resident with a language made for rendering makes it an obvious choice – well if you don’t mind a bit of HTML. I use tables as a pixel mapped canvas most of the time.
What is the transistor model?
Try a BC556 or a 2N3906.
Or any other general purpose PNP you might have lying around :)
Use a 4017 decade counter to send 8 pulses in sequence to 8 LEDs mounted at the end of flexible copper wires. This gives us 8 LED antennas blinking in order, 1-8, over and over again. Use a LDR to control the pitch of an audio oscillator. By bending the wire stalks, you can control the distance between the LED and the LDR, creating 8 separate notes. Here’s one I did with two independent FM oscillators-
https://vimeo.com/59045912
[vimeo 59045912 w=640 h=480]
The Medusatron Dual FM synth with Optical Sequencer from chuck stephens on Vimeo.
Here’s the watcher- an optical dual FM synth controlled by a monitor or other light source. This one is especially effective with GIFs and video loops to create repeating rhythmic and melodic patterns. I’m pretty sure the audio here is from a 40106 hex Schmitt inverter.
[vimeo 59045913 w=640 h=480]
The Watcher from chuck stephens on Vimeo.
Great stuff! Thanks Chuck!
We used to call this a derivative (as opposed to integrator) because it is a synthesis of that mathematical function.
If you totem-pole the constant current supply then you will get a perfect symmetrical saw tooth wave. You can then derive the saw tooth a second time to make a near perfect sine wave. This is one of the best ways to make a variable frequency sine wave generators because it doesn’t rely on filters that change characteristics with frequency.
Also – In theory you could produce many simultaneous (PWM) tones (frequencies) from one 555 if you have multiple frequency tuned networks (narrow band pass filters) connected to a multiple input XOR gate and then back into the feedback path.
Top project!
If you integrate a triangle wave, you get a sine. Derivating it produces a square wave as the slope of the waveform is a constant.
Problem with integration is, your amplitude changes with frequency. A better way I’ve found is to simply use a log-amplifier to distort the triangle waveform, because the difference between a triangle wave and a sine is approximately an exponential function.
opps, I did that math and that project about 40 years ago lol.
The way I mentioned (and you correctly corrected) is ok for low THD oscillators for measuring signal to noise ratios because the actual amplitude is less critical than the need for low distortion and the ability to change (or sweep) frequency.
The way you mentioned is better for precise amplitudes with a slight expense in harmonic distortion.
Hi, nice little circuit, I’m just a DIY beginner and I found the sawtooth sound MUCH more satisfying than the clicky square wave.
But, but when I try mixing this with some other oscillators (passive mixer; just tie every output through diode -> vol. pot -> merge), then turning the vol pot actually CHANGES the frequency.. Any clue how that’s happening (and how I could prevent it)?
He mentionsaid it in the original article – it needs a high impedance open amp buffer on the output