# 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 ──┤├── film / non-polar cap ● junction (connected) ──+┤├── polarised cap × no-connect │\ (the + marks the + terminal) ► net continues (label) ────┤−\ op-amp: IN− top, IN+ bottom, OUT right. │ >── Powered from +12V / GND via LM358 pins 8 / 4 (see Power). ────┤+ / │/ E transistor box — E / B / C labels sit OUTSIDE the box: │ ┌──┴──┐ B ───┤ Qx │ NPN 2N3904 └──┬──┘ │ C ``` --- ## Power · VREF divider (R2, R3, Cref) ``` +12V │ [R2 10k] │ ●───────────────┬────────► VREF (6 V) │ + Cref 10µF (+ terminal → VREF) [R3 10k] ──┤├── │ − │ │ 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 (stage-1 output → Stage 2) │ C1 10µF │ (+ terminal → emitter side; − → NOISE) E ┌──┴──┐ GND─B─┤ Q1 │ 2N3904 └──┬──┘ │ C × collector: no connect The ● node (R1 / Q1 emitter) is the raw noise on a DC pedestal — internal, don't label it NOISE. `C1` strips the DC; **NOISE = the AC-coupled output after C1.** ``` > 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 (U1 unit B, Rin1, Rf1) Inverting amp, gain ≈ −Rf1/Rin1 = **×1000**. Output centred on VREF. ``` ┌───[Rf1 1M]────┐ ├───[Cf1 22pF]──┤ Cf1 ∥ Rf1 — kills oscillation, limits BW │ │ NOISE ─[Rin1 1k]───● │ pin 6 │ │\ │ (IN−) ───────┴───┤−\ │ │ >──● pin 7 (OUT) ──► AMP (IN+) ───────────┤+ / pin 5 VREF │/ U1 = LM358 (unit B) Power + decoupling (whole LM358 U1 — wired ONCE, not per unit): pin 8 (V+) ── +12V pin 4 (V−) ── GND +12V ──+┤├── GND 47µF +12V ──┤├── GND 10nF (or 0.1µF) (bulk electro, (HF ceramic, + to +12V, near U1) right at pin 8) ``` > This stage uses **unit B** (pins 5/6/7) — as built. The integrator (Stage 3) uses > the **other half, unit A** (pins 1/2/3). Power (8/4) + decoupling are shared by both > halves — wire them once. To use unit A here instead: IN− = **2**, IN+ = **3**, OUT = **1**. --- ## Stage 3 — Integrator → brown (U1 unit A, 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]───● │ pin 2 │ │\ │ (IN−) ───────┴───┤−\ │ │ >──● pin 1 (OUT) ──► BROWN (IN+) ───────────┤+ / pin 3 VREF │/ U1 = LM358 (unit A) ``` 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. ``` VCA │ C ┌──┴──┐ LFO_CV ─[Rb2 100k]─B─┤ Q2 │ 2N3904 └──┬──┘ │ E │ VREF BROWN ──[Rs 47k]────────► VCA (Rs feeds VCA; Q2 shunts VCA to VREF) VCA ───┤+\ │ >──●──+┤├──●──[Rvol 10k]──► AUDIO_OUT ┌─────┤−/ │ Cout │ (wiper) │ │/ U2B 10µF GND │ LM358 │ unit B └─────────● (OUT → IN− = unity buffer; Cout + → buffer out) ``` 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. --- ## Output driver — LM386 (U3), for the 4Ω speaker `AUDIO_OUT` is **line level** — the LM358 **cannot** drive a speaker. Add an **LM386** power amp for a 4 Ω / 8 Ω speaker. (For bring-up you can feed it from `AMP` or `BROWN` instead of `AUDIO_OUT`.) ``` +12V │ ●──────┤ pin 6 (V+) ──+┤├── ──┤├── 47µF 0.1µF (→ GND, at the chip) │ │ GND GND AUDIO_OUT ─+┤├─[VOL 10k]────► pin 3 (+IN) pin 5 (OUT) ─+┤├──► SPKR ─ GND Cc 1µF (wiper) 470µF 4Ω pin 5 ─[10Ω]─┤├─ GND (Zobel) pin 2 (−IN) ── GND 10nF pin 4 ── GND pin 7 (BYPASS) ─+┤├─ GND (10µF) pins 1 & 8 ── OPEN (gain ×20) ``` LM386 pinout: `1` gain · `2` IN− · `3` IN+ · `4` GND · `5` OUT · `6` V+ · `7` bypass · `8` gain. **Notes** - **Output cap must be big (~470µF, ≥16V).** Into 4 Ω, 47µF high-passes at ~850 Hz → kills the bass (brown noise is all lows). Fat electrolytic, **+ → pin 5**. - **Gain ×20** (pins 1 & 8 open). Back off with VOL to avoid clipping. A 10µF between pins 1 & 8 gives ×200 — usually not needed. - **On +12 V the LM386 runs warm into 4 Ω** (LM386N-1 max = 12 V). OK for testing; for cooler running feed it from ~9 V. --- ## 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 | | Cf1 | 22–100pF | ceramic | amp feedback — **stops oscillation**, limits BW | | Cint | 100nF | film | integrator (brown shaping) | | Cout | 10µF | electrolytic | output coupling | | Ct | 10µF | **non-polar** | LFO timing (bipolar swing) | | U3 | — | **LM386** | speaker power amp (drives 4Ω/8Ω) | | Cc | 1µF | film/electro | LM386 input coupling | | Cout2 | **470µF** ≥16V | electrolytic | speaker output coupling — **big, for bass** | | — | 10Ω + 10nF | — | LM386 Zobel network (stability) | | — | 10µF | electro | LM386 pin 7 bypass | | — | 0.1µF ×3 | ceramic | chip decoupling (one per LM358 + one at LM386 pin 6) | | — | 47µF ×2 | electrolytic | +12V bulk (main rail + at LM386) | **Chip count: 2× LM358 + 1× LM386 + 2× 2N3904.** Single +12 V supply (feed the LM386 from ~9 V if it runs hot into 4 Ω). --- ## 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 (src) : R1.2, Q1.emitter, C1.+ (internal raw-noise node, DC pedestal) NOISE : C1.−, Rin1.1 (stage-1 output, AC-coupled — after C1) 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) |