Noise generator using device self-noise

Started by anotherjim, May 27, 2019, 05:10:50 PM

Previous topic - Next topic

anotherjim

Been futzing on the breadboard...
A while ago PRR suggested using self-noise as an alternative to the more usual choice of BE reverse breakdown or digital generators.


This makes a nice full noise signal, but despite the amount of gain expect only about 1v peak to peak output. Power supply filtering is absolutely essential unless battery only. 100% screening of the circuit is also a must.

For a stand-alone noise synth machine, the second op-amp could be a Q&D filter since that has lots of gain too.

PRR

My suspicion is the TL072 makes a flatter smoother hiss than most 12-cent resistors; I'd make R3 zero (or 100k with a good 0.1u cap to ground for further power-crap filtering).

Output level would be increased with R5 toward 1K (and C4 larger). Ah, that would give 3KHz bandwidth-- enuff for some, no good for hi-fi response tests.

IAC, hiss has infinite peaks. Even at "1Vpp" you may have rare clipping if you watch long enough. This too may not matter, but sometimes it does, depending what you are doing.
  • SUPPORTER

Rob Strand

#2
QuoteA while ago PRR suggested using self-noise as an alternative to the more usual choice of BE reverse breakdown or digital generators.
It's not a bad approach.   Moons ago I spent a lot of time with the BE junction generators and they vary all over the map; they don't quite make 9V operation.   You can get good results by tuning the "reverse-diode" current.   The good thing about analog generators is they don't have that annoying cycling you get from short (Q&D) digital sequences.  You might be able to stretch the bandwidth with a little less gain on the first opamp and more on the second.  As far as listening to the noise it probably sounds better as is.  Be interesting to see the spectra.  You can record it on a PC and do an FFT. 

FYI, the Boss DR55 also uses resistor noise.  They use 2M2's.   (I haven't calculated the shot noise component from the transistor to see how large it is).

[EDIT: I forgot to add this circuit ran from 6V batteries]

QuoteMy suspicion is the TL072 makes a flatter smoother hiss than most 12-cent resistors;.
Hard to know since they all have 1/f^n issues in fact .    The resistor will put out a higher noise voltage which helps keep interferring noise down (provided you shield the resistor).
Send:     . .- .-. - .... / - --- / --. --- .-. -
According to the water analogy of electricity, transistor leakage is caused by holes.

anotherjim

It's quite a tricky thing to experiment on having such a sensitive front end. I was getting feedback squeals from my little bench amp - microphonic capacitors!
Also trying to see what I can do with a mostly standard range of components. Ironically, I think the only resistors I have >1M are all metal-film due to noise considerations -  or is there a diminishing return in noise spec for metal-film over carbon-film at high resistances?

I don't remember the good old DR-55 having a weak noise source, so that circuit looks like something worth trying.

Noise generators aren't something I have much experience with. Like Rob, I've already given up on reverse junction breakdown due to inconsistency at lower voltages.

I'm not aiming a test equipment quality noise, just a means to add hiss and crackle.

For crackle, would it be the right way to go to feed the noise to a logic gate or comparator so it makes random clicks whenever it passes a threshold?


Rob Strand

#4
QuoteFor crackle, would it be the right way to go to feed the noise to a logic gate or comparator so it makes random clicks whenever it passes a threshold?
I did a few simple tests (in software).  The input signal was computer generated white noise (approx gaussian):

1) Simple one sided threshold:
    If the Vnoise >  threshold  then output 1 otherwise output 0.
    In other words, outputs a blip while the noise exceeds a positive threshold.
    Circuit wise basically a simple one sided comparator, taking the output directly
    off the comparator.

2) Slightly more elaborate than (1). Two sided threshold and bipolar output blips.
    If the Vnoise > threshold  then output 1 otherwise output 0.
    If the Vnoise < -threshold  then output -1 otherwise output 0.
    In other words, outputs a positive blip *while* the noise exceeds a positive threshold,
    and outputs a negative blip *while* the noise exceeds a negative threshold.

3) Similar to 1 except instead of outputting 1 when the voltage exceeds the threshold
    I output a fixed width pulse.  Pretty much like feeding case (1) into a monostable,
    a monostable which doesn't retrigger until the pulse is finished.

For consistency reasons, the threshold was set as a percentage of the peak of the noise or a multiple of the rms;   both methods worked pretty much the same.   For a circuit there's no need for such an elaborate scheme.  The noise level is constant and you would just adjust the threshold manually to set the crackle rate.

The results:

The nature of the crackle is pretty much like a geiger counter (not like surface noise of an LP).  The threshold controls the click rate from infrequent clicks, to crazy "you a going to die" clicks, to sounding like white noise again.

Case 1 sounds pretty good.

Case 2 sounds virtually identical.  A minor detail: since you get twice as many clicks I raised the threshold so the probability of the clicks was the same as case 1.  It sounded virtually identical to case 1, to the point where the two sided comparator is not worth it.

Case 3 sounds a lot like case 1.  When you increase the pulse width the clicks have a full bodied sound and it actually sounds like less natural clicking that case 1.

(4) What I didn't try:   I was thinking if you want infrequent clicks the threshold might be hard to set so I got the idea of using a lower threshold and then feed the  (more frequent) comparator clicks into a divider then letting the clicks out less frequently. ie. lower threshold -> more clicks -> divider -> every nth click.   I might try it later since I'm interested in seeing what happens.
Send:     . .- .-. - .... / - --- / --. --- .-. -
According to the water analogy of electricity, transistor leakage is caused by holes.

Rob Strand

#5
QuoteI might try it later since I'm interested in seeing what happens.
4) Tuning the threshold to match the click-rate of case 1 there isn't much in it sound-wise.

I also tried gating the noise through (with and without removing the threshold offset) during a click instead of outputting a pulse.  The difference was small.

I suppose case 1 has a lot to offer.  Sounds OK and is the simplest implementation.

I might try low and high-pass filtering the clicks.  Edit: Turns out, in all the above my equalizer was on.  I had quite a bit of low-pass filtering.  When I removed the EQ the clicks were quite harsh.  So, yep, some EQ helps.

Another thing I tried was to sample and hold another random source instead of outputting fixed height pulses for the clicks.  The idea is it randomized the click height.  That did actually make the clicks sound more natural, especially when you AB it with the pulses.

I managed to get a good popcorn sound  :icon_mrgreen:
Send:     . .- .-. - .... / - --- / --. --- .-. -
According to the water analogy of electricity, transistor leakage is caused by holes.

Rob Strand

Well, I've started to become addicted to this darn thing.   

I got a cool LP surface noise and clicks/pops by combining two (or more) click generators with different settings:  One at a low level but high click rate for the surface noise then another at a high level and slow rate for the click/pops.   Then later I added a third one with level and rate in between.

It's actually quite a bit of fun playing around with it but I've got other things to do :icon_redface:
Send:     . .- .-. - .... / - --- / --. --- .-. -
According to the water analogy of electricity, transistor leakage is caused by holes.

anotherjim

I had a crackle experiment going last night - together with a new design. CMOS inverters 4069UB. Don't have a schematic yet 'cause it's not finished but obviously, it's a chain of inverting amplifiers amplifying component noise. Seems its 4 or 5 stages needed to reach full swing, but I don't think I've found an optimal arrangement for maximum noise yet. However, it is far less susceptible to hum and interference than the op-amp idea above.

Crackle - the last inverter is fed the noise via a resistor and another resistor controls a DC offset from a pot to the same input thus biasing the logic level threshold.  This is primitive approach because the crackle effect only becomes identifiable from simple noise at a particular point close to a logic threshold when the switching becomes less frequent - so the resistances need padding to ensure the pot has a usable swing. The other limitation is that identifiable crackle from this is much quieter than the full noise, which is obvious, but means a simple  "Noise->Crackle" one-knob control would need some tricks to work well.

Like you Rob, I noticed EQ makes a big difference to what the Crackle sounds like. I had a coupling cap between inverters too small in order to get phonogram crackle, but listening outside the workshop it sounded like a lawn sprinkler!

Rob Strand

Quoteit's a chain of inverting amplifiers amplifying component noise. Seems its 4 or 5 stages needed to reach full swing, but I don't think I've found an optimal arrangement for maximum noise yet..
If I get time I'll try than clipped noise method.   The final waveform is different to the threshold method.  For the threshold method the pulse-width is narrow since it slices through the narrow peaks of the noise waveform.  The clipped method stretching things from the zero-crossings.  Did you pass it though a high-pass filter so you get narrow pulses on one of the edges?
QuoteCrackle - the last inverter is fed the noise via a resistor and another resistor controls a DC offset from a pot to the same input thus biasing the logic level threshold.  This is primitive approach because the crackle effect only becomes identifiable from simple noise at a particular point close
Maybe the idea of using a lower threshold and a divider in (4) above can help?  I was suspicious that might happen.

QuoteThe other limitation is that identifiable crackle from this is much quieter than the full noise,
I noticed that as well.  My code prints out the rms level and the rms level drops when the click rate goes down (as expected really).

QuoteLike you Rob, I noticed EQ makes a big difference to what the Crackle sounds like. I had a coupling cap between inverters too small in order to get phonogram crackle, but listening outside the workshop it sounded like a lawn sprinkler!
I'm sure the filtering from the room to outside has a large impact.  One version I played with had a first-order high-pass filter around 300Hz to 500Hz and low-pass around 1.2kHz to 2kHz.   The tone is vastly different on my POS PC speakers compared to my ear-bud headphones.  In a few cases I found changing the filter made it sound angry but that was because the level went up.  After adjusting the level to be similar to before it didn't sound so angry.




Send:     . .- .-. - .... / - --- / --. --- .-. -
According to the water analogy of electricity, transistor leakage is caused by holes.

anotherjim

A problem with the CMOS is that as the noise signal approaches the rails, the gain reduces causing compression. This means the crackle detections are somewhat all-or-nothing since the peak levels of noise are crowded in at similar amplitudes.
An advantage of the hex inverter is getting 6 devices to use, but I found I needed the first one to simply bias up with a 10k feedback so it provided a low impedance source for the next amplifying stage. This greatly reduces the sensitivity to supply or radiated noise, something the op-amp really suffered from. I take a cue from that to try a quad opamp. The first being a reference buffer then 2 amplifying stages and a final amp as a comparator or Schmitt trigger to extract a crackle signal.

An aside is this...

Which shows that even with a decently high supply voltage, a junction breakdown noise source still needs help. Although, to be fair, in a synth you might want random voltages to reach the full CV range of the instrument.


Rob Strand

QuoteA problem with the CMOS is that as the noise signal approaches the rails, the gain reduces causing compression. This means the crackle detections are somewhat all-or-nothing since the peak levels of noise are crowded in at similar amplitudes.
I think I misunderstood your scheme in the earlier post (my apologies).  Let me get this right.  You offset the DC so the gate saturates against the rails.   You then then DC offset so only the peaks of the noise are high enough to get the gate out of saturation? At that point you get a click.   So to a first order, it works like a comparator with the threshold high enough to trip on one side of the peaks.  In principle it's the same scheme I used in case 1.

What I found is for slowish rates the threshold needs to be set high to only select the infrequent peaks and this makes the click rate quite sensitive to the threshold.  Very roughly 10% change in threshold to double or half the click rate.  The idea of using the divider was make the click rate less sensitive to the noise and also less sensitive to the nature of the peaks of the noise (which might not be 100% gaussian, especially if there is clipping earlier on which is going to narrow the range of peaks further).    I wonder if detecting the zero crossings (with an offset for rate adjustment) with a divider is less sensitive?

QuoteAn advantage of the hex inverter is getting 6 devices to use, but I found I needed the first one to simply bias up with a 10k feedback so it provided a low impedance source for the next amplifying stage. This greatly reduces the sensitivity to supply or radiated noise, something the op-amp really suffered from. I take a cue from that to try a quad opamp. The first being a reference buffer then 2 amplifying stages and a final amp as a comparator or Schmitt trigger to extract a crackle signal.
Perhaps the output signal signal couples back to the earlier stages and the buffer helps stop that?   I agree that the PSU can be a source of problems for these high gain ckts.   As soon as something clips the problem can get worse.   One trick to stop clipping to the rails is to use diodes and zeners in the feedback loop to deliberately clip but where the feedback is maintained and the opamp still operates linearly.  The down side is you lose swing.
Send:     . .- .-. - .... / - --- / --. --- .-. -
According to the water analogy of electricity, transistor leakage is caused by holes.

Rob Strand

QuoteI wonder if detecting the zero crossings (with an offset for rate adjustment) with a divider is less sensitive?
FYI, the divided zero crossings didn't sound that great.

However, I had another idea:   Low pass filter the noise before it goes to the detector.   The idea is band limited noise is still noise but the rate which it exceeds the detection threshold is reduced.   This method naturally makes the infrequent noise louder because the time that it exceed the detector threshold is longer (in proportion to the bandwidth reduction).    On the downside at very low rates the noise become more like a bad connection than a distinct click.   I guess that's the trade off.   It's possible to feed the output into a monostable or pulse generator to make the pulse short again but then the level will drop.   Anyway it's quite an easy change to the basic idea.
Send:     . .- .-. - .... / - --- / --. --- .-. -
According to the water analogy of electricity, transistor leakage is caused by holes.

anotherjim


As far as I got with the CMOS inverter version. Stable, but not optimised. The 22pF caps on most stages needed to quell the concentration of high-frequency content around the zero crossings. Unlike op-amps, this can produce noise up into megahertz if you needed that.
The "Crackle" control is a crude but effective adjustment to allow fewer positive going peaks to get through.
Current consumption is surprisingly low at just over 3mA, but as the noise signal grows larger, the inverters spend less time in the middle linear region so reducing the average shoot-thru current.


anotherjim


Having struggled to get 2 op-amps to boost the noise level enough and keep stable, I tried with 4.
However, the TL07x had to go, the current consumption with 4 stages meant a much larger supply capacitor with a smaller series resistor in the 9v supply to keep power ripple out. I want a fairly small and compact circuit. So I picked a quad CMOS. Not as fast as the bi-fet types, but fast enough for musical noise (I'm not aiming for test equipment noise and I don't care what colour it is!). TLC274 is for illustration - I actually have the LMC660 in the breadboard. Obviously, no particular reason for quad types, it's just convenient in a small breadboard that will fit in the tin lid I'm screening it with.
...Anyway, this doesn't seem to need any RF filtering as the opamps just won't go there. In fact, it can be beneficial if it clips a little in the last stage to regain some high end from the distortion so I put a gain trimmer in the middle.

Some things that I found had to be for stability...
The op-amp Vref had to be well filtered.
The Vref had to be buffered.
The op-amps could not have the Vref connected directly in parallel to the +in pins or it oscillated at low frequency. So a 10k resistor is included in all (and I suppose helps to supply a little more resistor noise in the system).
Coupling caps and stage gain is very sensitive. Simply changing C3 from 1uF to 2.2uF caused instability.
Very difficult to optimise, every single component value change has a knock-on that needs compensating with changes elsewhere.









Rob Strand

#14
QuoteThe 22pF caps on most stages needed to quell the concentration of high-frequency content around the zero crossings. Unlike op-amps, this can produce noise up into megahertz if you needed that.
The filtering could help for slower crackle rates.

QuoteSome things that I found had to be for stability...
The op-amp Vref had to be well filtered.
The Vref had to be buffered.
The op-amps could not have the Vref connected directly in parallel to the +in pins or it oscillated at low frequency. So a 10k resistor is included in all (and I suppose helps to supply a little more resistor noise in the system).
Coupling caps and stage gain is very sensitive. Simply changing C3 from 1uF to 2.2uF caused instability.
Very difficult to optimise, every single component value change has a knock-on that needs compensating with changes elsewhere.
You might find connecting the ground end of C3 to +UB helps (sometimes not).  Connecting to ground amplifies any signals on +UB by 100 but connecting C3 to +UB amplifiers it by 1 (+ some common mode).  If you connect C3 to the output of IC1A you might lose some wanted noise from IC1A.

I've tried to refrain from playing with this until I finish some other stuff.
Send:     . .- .-. - .... / - --- / --. --- .-. -
According to the water analogy of electricity, transistor leakage is caused by holes.

anotherjim

Might be a thing that won't play nice in a solderless breadboard no matter what. Just too much stray coupling and contact resistance to keep things tight & controlled.
I did try the Boss noise resistor BJT idea Rob posted, it works but modest output level  - and mostly treble. Note the 2n2 coupling cap feeding a naked BE load of the second BJT. I've tried a hybrid with the Boss front end. Good to modest levels again but still gets unstable when boosted toward the power rail limits.

anotherjim

May have a winner. Tried with power from a local regulator on the BB - 78L05. Power to DR55 noise transistor (1st stage only) and a TLC272 dual CMOS amp with each stage x100. Schematic to follow.

Rob Strand

#17
QuoteMight be a thing that won't play nice in a solderless breadboard no matter what. Just too much stray coupling and contact resistance to keep things tight & controlled.
Getting that ckt working on a solderless breadboard is going to be tough!

QuoteMay have a winner. Tried with power from a local regulator on the BB - 78L05. Power to DR55 noise transistor (1st stage only) and a TLC272 dual CMOS amp with each stage x100. Schematic to follow.
Interesting to see how that pans out.   

FYI, when I posted the ckt I noticed the DR55 layout puts that circuit in between the pots.   It may be a deliberate attempt to provide some incidental shielding (and keep it away from everything else).

Forgot to mention, the dominant source of the noise is actually the shot noise from the base current and not the 2M2 resistor!.  You can see this if you split the 2M2 resistor into 2M (to C) and 200k (to B) then bypass the connection point to ground with a cap.  When you do this you actually double the noise since the shot noise remains constant and miller effect of the 2M2 is removed.
Send:     . .- .-. - .... / - --- / --. --- .-. -
According to the water analogy of electricity, transistor leakage is caused by holes.

anotherjim

IIRC the DR-55 was battery only (x4 AA?) and the noise was only needed for the snare crackle and (cough) Hi-hat chiff. A few hundred millivolt p-p was probably plenty of level.

Rob Strand

QuoteIIRC the DR-55 was battery only (x4 AA?) and the noise was only needed for the snare crackle and (cough) Hi-hat chiff. A few hundred millivolt p-p was probably plenty of level.
Yes it ran from 6V.   A while back I put note under the schematic above.

Off hand the *first stage* generates around 1uV per root Hertz and the bandwidth was in the 50kHz to 100kHz region, which crudely works out to be 1.2mV p-p.   The gain stage (with a large coupling cap) will multiply that up to about 100mV p-p.   You probably should check my numbers here.

One thing that caught my eye was the small (2n2) coupling cap.  That pretty much only produces kHz to 20kHz noise.   You could use an opamp for the second stage and it will present less loading.

At higher voltages the circuit still works and noise level increases.  Probably a good idea to check collector bias voltages.

One interesting thing about shot current is, suppose you keep the supply fixed, then fiddle with the bias current by adjusting the resistors.  You actual get more noise when the circuit operates from lower current.  The down side is the noise bandwidth decreases (OK upto a point) but the circuit is then more susceptible to interference.  I suspect at some point the noise quality degrades due to increased 1/f noise.

I can't remember the sound of that thing.  Back in the day I reviewed a heap of drum machines and ended up with a Roland R-8 because it sounded great.   Clearly that small coupling cap is going to change the sound of the noise.
Send:     . .- .-. - .... / - --- / --. --- .-. -
According to the water analogy of electricity, transistor leakage is caused by holes.