Files
ambium/README.md
T
2026-07-15 17:23:23 +10:00

10 KiB
Raw Blame History

ambium

Analog brown-noise generator with a slow amplitude swell (LFO). All-analog, breadboard-friendly, single +12 V supply. Deep, drifting rumble that slowly breathes in and out over ~20 s.

Each stage is drawn as ASCII below. Reference designators and model numbers are consistent across every diagram, the BOM, and the connection list — that list is the authoritative netlist.

Parts used (model numbers)

  • U1, U2 = LM358 (dual op-amp, DIP-8). U1 = amp + integrator; U2 = LFO + buffer. (LM258P is the same part — fine.)
  • Q1, Q2 = 2N3904 (NPN). Q1 = avalanche noise source; Q2 = shunt VCA.

Nets

+12V · GND · VREF (6 V mid-supply) · NOISE · AMP · BROWN · LFO · LFO_CV · VCA · AUDIO_OUT

Signal chain

 [noise]        [amplify]       [integrate]        [VCA]          [buffer]
Q1 2N3904  →  U1A LM358 ×1000 → U1B LM358 −6dB/oct → Q2 2N3904 → U2B LM358 → AUDIO_OUT
 NOISE          AMP              BROWN               VCA           (line out)
                                                      ▲
                                                   swell
                                                 U2A LM358 LFO (~0.05 Hz)

Legend for the diagrams:

 [Rxx val]  resistor        ──┤├──  capacitor        ●  junction (connected)
     │\                                              ×  no-connect
 ────┤−\        op-amp:  IN− top, IN+ bottom,        ►  net continues (same label)
     │  >──     OUT right.  Powered from +12V/GND
 ────┤+ /       via LM358 pins 8/4 (see Power).
     │/
   (C)
    │
 (B)┤<   NPN 2N3904   (C=collector, B=base, E=emitter)
    │
   (E)

Power · VREF divider (R2, R3, Cref)

      +12V
       │
    [R2 10k]
       │
       ●───────────────┬────────►  VREF (6 V)
       │               │
    [R3 10k]        ──┤├──  Cref 10µF
       │               │
      GND             GND

R2/R3 = 20 kΩ across 12 V → 0.6 mA, midpoint = 6 V. Cref holds VREF steady. VREF is the AC ground every stage rides on (single supply, no negative rail).


Stage 1 — White noise (R1, Q1, C1)

Reverse-biased base–emitter junction of Q1 driven into avalanche = broadband white noise. R1 limits current; C1 couples the noise out.

      +12V
       │
    [R1 100k]
       │
       ●──────┤├──────►  NOISE
       │      C1 10µF
      (C) ×  (collector: no connect)
       │
   (B)─┤<  Q1 2N3904
       │
      (E)
       │
      GND        ← base to GND;  avalanche appears across B-E, out at the R1/collector node

Avalanche quality varies part-to-part. Try one 2N3904; if quiet, swap for another. Needs the full +12 V (9 V is often too low to avalanche).


Stage 2 — Amplifier ×1000 (U1A, Rin1, Rf1)

Inverting amp, gain ≈ −Rf1/Rin1 = ×1000. Output centred on VREF.

                 ┌──────[Rf1 1M]──────┐
                 │                    │
 NOISE ──[Rin1 1k]──●                 │
                    │   │\            │
                    └───┤−\           │
                        │  >──●───────┴────►  AMP
            VREF ───────┤+ /   U1A
                        │/    (LM358, unit A)

Stage 3 — Integrator → brown (U1B, Rin2, Cint, Rf2)

Leaky integrator = −6 dB/octave → turns white into brown. Rf2 bounds DC so the output can't rail. Corner ≈ 1/(2π·Rf2·Cint) ≈ 1.6 Hz.

                 ┌──────[Rf2 1M]──────┐
                 │                    │
                 ├───────┤├───────────┤   Cint 100nF   (Rf2 ∥ Cint)
                 │                    │
  AMP ──[Rin2 10k]──●                 │
                    │   │\            │
                    └───┤−\           │
                        │  >──●───────┴────►  BROWN
            VREF ───────┤+ /   U1B
                        │/    (LM358, unit B)

Darker/deeper: ↑ Cint or Rf2. Lighter (toward pink): ↓ Cint.


Stage 4 — LFO (U2A, Rt, Ct, Ra, Rh)

Single-op-amp relaxation oscillator. Period ≈ 2.2·Rt·Ct ≈ ~22 s. The control voltage is the ramp on Ct (net LFO_CV) — it drives the VCA in Stage 5.

          ┌──────────[Rt 1M]──────────┐
          │                           │
          ●──────┤├──── VREF          │        Ct 10µF (non-polar)
          │      Ct                   │
          │      │\                   │
   LFO_CV ●──────┤−\                  │
          │      │  >──●──────────────┴──►  LFO   (and to Rh)
   ┌──────┤+ /   │  U2A
   │      │/     │ (LM358, unit A)
   ●──[Ra 100k]──┤                    
   │             └── VREF
 [Rh 100k]
   │
   └───────────────────────────────────►  LFO   (hysteresis feedback)

Ra/Rh set the hysteresis (both 100k). LFO_CV ramps ~3.5–8.5 V.

Ct sees a bipolar swing about VREF — use a non-polar 10 µF (film or bipolar electrolytic), not a standard polarised cap.


Stage 5 — VCA + buffer + output (Rs, Q2, Rb2, U2B, Cout, Rvol)

Q2 shunts the brown-noise signal to VREF (AC ground) by an amount set by LFO_CV → amplitude swells and fades. U2B buffers; Cout blocks DC; Rvol sets level.

                          (C)
                           │
 BROWN ──[Rs 47k]──●───────┤<  Q2 2N3904
                   │       │
                  VCA     (E)
                   │       │
                   │      VREF
                   │
         LFO_CV ──[Rb2 100k]──(B)      ← control voltage into Q2 base
                   │
                   │   │\
                   └───┤+\
                       │  >──●──────┤├──────●──[Rvol 10k]──►  AUDIO_OUT
                   ┌───┤−/   U2B    Cout        (wiper)
                   │   │/   (LM358  10µF        │
                   │        unit B)            GND
                   └──────────●   (buffer: OUT tied back to IN−)

When LFO_CV is low → Q2 off → signal passes (loud). High → Q2 conducts → shunts to VREF (quiet). ~20 s swell. Soften the swell: 1 µF from LFO_CV to VREF.


LM358 power + decoupling

Each LM358 (U1, U2) is powered once via its package pins — not per op-amp unit:

 +12V ──┬── U1 pin 8 (V+)      GND ──┬── U1 pin 4 (V−)
        │                            │
        └── U2 pin 8 (V+)            └── U2 pin 4 (V−)

 Decoupling: 0.1µF from +12V to GND at EACH chip, plus one 47µF bulk on the +12V rail.

LM358 unit A = pins 1(OUT) 2(IN−) 3(IN+); unit B = 7(OUT) 6(IN−) 5(IN+); power 8(V+) 4(V−).


Bill of materials

Ref Value Part / model Function
U1 — LM358 (DIP-8) U1A amp, U1B integrator
U2 — LM358 (DIP-8) U2A LFO, U2B buffer
Q1 — 2N3904 avalanche white-noise source
Q2 — 2N3904 shunt VCA
R1 100k resistor avalanche current limit
R2, R3 10k resistor VREF divider
Rin1 1k resistor amp input
Rf1 1M resistor amp feedback (×1000)
Rin2 10k resistor integrator input
Rf2 1M resistor integrator leak / brown corner
Rs 47k resistor VCA series
Rb2 100k resistor LFO_CV → Q2 base
Rt 1M resistor LFO timing
Ra, Rh 100k resistor LFO hysteresis
Rvol 10k potentiometer output level
C1 10µF electrolytic noise coupling
Cref 10µF electrolytic VREF bypass
Cint 100nF film integrator (brown shaping)
Cout 10µF electrolytic output coupling
Ct 10µF non-polar LFO timing (bipolar swing)
— 0.1µF ×2 ceramic chip decoupling
— 47µF electrolytic +12V bulk

Chip count: 2× LM358 + 2× 2N3904. Single +12 V supply.


Connection list (authoritative netlist)

+12V   : R1.1, R2.1, U1.8, U2.8, (47µF+)
GND    : R3.2, Q1.base, Cref.−, U1.4, U2.4, Rvol.3, (47µF−), (0.1µF ×2)
VREF   : R2.2, R3.1, Cref.+, U1A.IN+(3), U1B.IN+(5), Ct(VREF end), Ra.1, Q2.emitter
NOISE  : R1.2 / Q1.emitter-node, C1.+            (C1.− → Rin1.1)
AMP    : U1A.OUT(1), Rf1, Rin2.1                 (Rin1.2, Rf1, U1A.IN−(2) = summing node)
BROWN  : U1B.OUT(7), Cint, Rf2, Rs.1             (Rin2.2, Cint, Rf2, U1B.IN−(6) = summing)
LFO    : U2A.OUT(1), Rt, Rh
LFO_CV : Rt, Ct(CV end), U2A.IN−(2), Rb2         (ramp that swells the VCA)
VCA    : Rs.2, Q2.collector, U2B.IN+(5)
        (U2B.OUT(7) = U2B.IN−(6) = Cout.+  → buffer)
AUDIO_OUT : Rvol.wiper(2)                         (Cout.− → Rvol.1; Rvol.3 → GND)
Q1     : collector = no-connect

Build & test order

Build one stage at a time — verify before adding the next.

  1. VREF — R2/R3/Cref up. Confirm ~6.0 V.
  2. Noise (R1 + Q1) — scope Q1 node → hiss (~mV). No noise? swap the 2N3904 or nudge supply to 12–15 V.
  3. Amp (U1A) — scope AMP → loud hiss (~volts).
  4. Integrator (U1B) — BROWN sounds darker/deeper than AMP. That's brown noise.
  5. LFO (U2A) — scope LFO_CV → slow ramp, ~20 s.
  6. VCA + buffer (Q2, U2B) — full chain: noise swells and fades on the LFO cycle.

Tuning

Want Change
Deeper/darker ↑ Cint or Rf2
Lighter (toward pink) ↓ Cint
Slower swell ↑ Rt or Ct
Faster swell ↓ Rt or Ct
Softer swell onset 1µF from LFO_CV to VREF
Louder ↑ Rf1 (watch clipping)