Adding Vintage Hiss, Crackle, and Pop! – Electric Druid

Adding Vintage Hiss, Crackle, and Pop!

In general, we’re trying to keep noise out of our circuits. Somewhat inspired by this thread on DIYStompboxes, I thought it might be fun to build a circuit that could generate that “vintage background noise” sound so that I could make things sound like they’re being played back off a phonograph cylinder or an ancient 78rpm record or something.

It’s been an interesting little challenge and made me look at some different circuit elements and try a few different things.

First, here’s the final circuit:

I tried to keep it as simple as I could so it only needs a +5V supply. That meant no op-amps, so everything is done with a few transistors.

The sound consists of three parts; the Hiss, Crackle, and Pop. I did wonder about Snap, Crackle, and Pop, but (trademarks aside) Snap isn’t really that appropriate, and Hiss definitely is, so that’s how it finished up.

It sounds like this – first each element independently, then all mixed together. Note that the mains hum is just a result of my sloppy recording and not a feature!

The three elements are generated independently. The PIC does a good chunk of the work,  producing three channels of digital noise, and two channels of random trigger pulses. The code is a modified version of the PENTANOISE chip, with two outputs tweaked to produce trigger pulses rather than plain noise. These trigger pulses are random lengths, and the Pulse1 output is much more frequent than the Pulse2 output. This gives us more crackles than pops. This felt right to me, but it’s just a question of taste.

Both the Crackle and Pop channels are identical, just voiced differently. Let’s look at the bits that make them up.

First is the envelope. This converts the 0-5V trigger pulses (top row) into a simple decay envelope. The capacitor and the resistor form a high pass filter which turns the pulses into a series of positive and negative spikes (middle row). The diode removes the negatives spikes, which leaves us with a series of simple decay envelopes (bottom row). The two channels have different decay resistors, with crackles being shorter and the pops being a little bit fuller.

Note that if the pulse goes low during the envelope decay, its level drops straight back to 0V – there’s no “release” stage on the envelope. Since the triggers are variable lengths, this means some envelopes will be more or less cut off than others. This helps randomise the output a bit more, and compensates for all the pulses being the same volume. The diode doesn’t do a perfect job of removing the lower spikes either, so in reality the envelopes look more like this:

The envelope is fed to a very simple VCA known as the Roland “Swing type” VCA. It appeared in the TR808 and DR110 drum machines amongst other places. It’s not hi-fi by any standards, but it’s fine for percussion voices, which is (sort of) what we’re doing here. The signal input of both VCAs comes from one of the noise channels.

You’d usually think of a VCA as using an envelope control voltage to control the level of a signal. But here, the VCA uses the signal to turn the envelope output on and off – the reverse. And it doesn’t really control the level either, just turns it on or off.

You can see below the envelope (top row) the digital noise pulses from the PIC (middle row) and the VCA output (bottom row). When the noise output is high, the envelope is passed to the output. When the noise is low, the output is grounded.

The third part of the Crackle and Pop channels is the tone shaping. This is just a passive lowpass filter followed by a passive high pass filter. For the Crackle, we trim the low frequencies and leave the highs in place to give us a brittle, trebley tone. For the Pop, we do the opposite.

The Hiss channel is just straight white noise from the PIC. It’s run through a lowpass filter to turn the digital noise signal into something more analog, and it also has its level reduced a bit, although it’s still much too loud.

The final part of the circuit is a single-transistor mixer. This is somewhat unusual since it uses the common-base arrangement, which you don’t see that often. I found the original single-transistor mixer circuit here and modified it to run at 5V.

There’s a lot of potential for tweaking this circuit to give different noise textures. You could alter the code to change how frequently pops or crackles occur. You could alter the decay resistors to change how long they last. You can alter the LP/HP filters to change how each channel sounds. You can change the mixer resistors to change the balance of the three elements.

One improvement I thought of but haven’t tried is to use a heavily lowpass-filtered version of one of the noise channels to produce a CV which could then control the volume of either the Pop or Crackle channel somehow.

I also think it could benefit from more channels of different noises, perhaps something bandpass-filtered or some differently toned speckles. Currently the sound is simple enough for the ear to differentiate the different parts. If it were a bit more complex, that wouldn’t be so possible and you’d hear it more as a single cohesive noise.

Is it worth all this effort to make a recording sound worse?! You’ll have to decide!

More details

If you’d like to build one, here’s the full details:

Currently,there are no plans to offer the HISSCRACKLEPOP chip in the shop, so I’m afraid you’ll have to program your own chip, or find a friend to program one for you. If you’d like to see programmed chips in the shop, send us an email, and if there’s enough interest, we’ll do it!

Creative Commons License
Hiss, Crackle, and Pop by Tom Wiltshire for Electric Druid is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License. Here’s the legal stuff.

22 thoughts on “Adding Vintage Hiss, Crackle, and Pop!

  1. Hi, Great website! I’m very much a novice with electronic circuits and theory, but I was wondering if there is a simple way of modulating the input, on an individual channels basis, for the 3 effects into the overall output signal, even if only very crudely? Or, would more complicated circuitry be required along the lines of a conventional mixer circuit? Thanks!

    1. Hi Pete,
      You could use three more of the one-transistor Roland VCAs, like the crackle and pop channels already have. Put the extra “level control” VCAs in ahead of the filtering. You’ll need something that can generate three control signals for them though!
      HTH,
      Tom

  2. I used to work in a synth shop in the 80’s. We had an in-house joke about the need for a Boss Hisser pedal to be released to combat the quietness of all the new dangled digital stuff coming into the market.

    1. Hohoho! Well, now we can!

      I’ve got a back-burner idea of combining this chip with one of those smoke-generator gizmos they use for model trains and putting the whole lot in a pedal with slots cut in the top like people do for tube-based pedals. You’d plug in, and then after a little while, your sound would start to crackle and splutter and break up. Eventually, a fire-like glow would be seen and smoke would start to rise from your pedal. With some flickering red and yellow LEDs all this is do-able. I haven’t thought of a name for it yet though. Plus it’s essentially a one-off visual gag for small venues only. Still, I do like the idea…maybe one day.

  3. Hey Tom,

    I would really like to build one of these but the PIC12F1501 is out of stock everywhere. Seems to be coming back in April next year and I want to try and add this to a current project. Is there an alternative that could be used? If so would that need an edited HEX code? This would be my first time trying a PIC IC so bit unsure of how compatible others can be.

    1. The code doesn’t use any peripherals on the chip, so it should be possible to find an alternative. What it does use is the speed and features of the “Enhanced” PIC chips, those with numbers that start 12F1xxx or 16F1xxx. Earlier chips like (for example) the 12F675 won’t work.

      I’ll have a look tomorrow and see if I can come up with some suggestions to post here.

      1. That’s magic. Thanks Tom. Really looking forward to learned about pic ics. Will be ace to be able to make this if possible!

        1. It looks to me like the following chips would be suitable replacements. It also looks to me like I originally used the cheapest, smallest chip I could get away with, so these options mostly have more ROM or RAM or both:
          12F1571, 12F1572, 12F1612, 12F1822, 12F1840.
          There are also some 8-pin bottom-end 16F chips that might work, but they *possibly* need more changes:
          16F15213, 16F15313
          Of course, whether any of these are easier to find at the moment is an open question! Good luck!

  4. Hi, how might I enable this to run in a guitar pedal circuit, say a tape delay? Also, would I need to convert it to 9v? If so, how? Thank you!

    1. You’d need to add a 78L05 voltage regulator to provide a 5V supply for the processor chip, and if you’ve got a 5V supply for that, then there’s not much point converting the rest of it and you could use it it as-is. However, the common-base amp is an unusual choice for the mixer, and if I’d been designing it with a 9V supply available, I’d probably have just used a simple inverting op-amp mixer stage instead.

    1. TBH, that’s a pretty complete schematic which includes noise already, so I don’t see why you’d need to. Where’s that from? Do they give you a link to the code for that PIC 12F1822 chip in the bottom-right?

      1. No. So, my dilemma here is that I have your code, which is superior to this circuit’s abilities in a number of ways, but I want to add your circuit and code into that schematic for the Albert. It’s a guitar pedal that makes a guitar signal sound like it’s coming through an old school phonograph, but adds some vibrato, wow, and flutter to give it that warped vinyl sound. I asked for the code, but have not heard back yet. I finally ordered the PIC microprogrammer and some of the microcontroller chips you used, with the hopes that I could make my own version of this phonograph pedal. My plan was to take your code and pop it into the Albert schematic. Do you think that would work? I am very new to microprocessor and have no idea where to start to create these on my own. Is there a simple, user-friendly app to program them? Sorry to keep bothering you about this, and thank you, sincerely, for all your expertise, patience, and help.

        1. Yes, you could replace their PIC with this one, but theirs does the wow and flutter stuff, whereas mine only does the noise. So they’re not directly interchangeable in any way. Putting the HissCracklePop chip in there instead would give you some good phonograph background noise, but won’t give you the speed changes.
          You can download the MPLAB X IDE (“Integrated Development Environment”) from Microchip’s website for programming chips. The full IDE is for writing programs and devleoping code, but if all you need to do is upload code that already exists to chips, it comes with a much simpler application called the IPE (“Integrated Programming Environment”) which does just that, pretty much. I think you probably have to download the whole lot, but once you start the installation, I think you can select either one or the other or both.

          Good luck!

          1. Another question: on your schematic, if I wanted to control how much of each effect goes to the output, could I just add say a B100K pot at the end of each sounds, just before they go to the output mixer? Thanks again.

          2. Honestly, I don’t know. I’m not familiar enough with that unusual common-base transistor arrangement. You could certainly try it. It’ll work to some extent, but you might find the pots interact. Maybe.
            If I need a “proper” mixer with pots on, I’d go for the classic inverting op-amp mixer. I only used the transistor in this case because I was; (a) keeping everything on a 5V supply, and (b) trying something new!

Leave a Reply

Your email address will not be published. Required fields are marked *