back to blog index | aday.net.au | github

AdLibitum at FM3 — Armada 1750 ESS FM (the long way round)

2026-08-05

Clan Analogue presents FM3 flyer
Flyer via Clan Analogue
FM3 · Brunswick Artists Bar · Sat 8 Aug · free (Moshtix RSVP)

**Names, quick:**

FM3 — Clan Analogue

Clan Analogue presents **FM3** — featuring artists from *Sublime Wavelengths* ("the cosmic bliss of FM synthesis").

Arriving to the room is my messy unchecked-code of the 'AdLibitum' stack into real ESS FM silicon — this isn't some softsynth nostalgia VST. Tagging along is the Game Boy (mGB) and a SammichSID.

How AdLibitum got to the Armada

I forked ijsf/at2 and wrote a VST to drive the only piece of FM hardware I actually have laying around: my **Compaq Armada 1750**, with an integrated **ESS AudioDrive ES1869** (or ES1869S).

Then I needed a way to drive it. So I wasted a few weeks on a serial cable implementation. It sucked. I gave up, rewrote a network receiver (**at2net** / FM31NET), installed Windows 98, and found an old network card. That turned out OK.

After that I spent ages figuring out AdLib Tracker files — `.a2m`, `.a2i`, and the instrument formats — and wrote a VST to handle the modulators so I could wire it up to more modern MIDI controllers. In this case a **Behringer X-Touch**. It sounds remarkably pleasant to listen to (and I hope the venue likes the sound of it too — it's such a classic chip!!). I've become a bit obsessed about it recently. So I've now got a powerful FM synth in the studio without hunting down a DX7 and learning how on earth you even work with that interface, or looking far and wide for a second-hand Sound Blaster… speaking of which, if anyone's got spare Sound Blasters kicking around and a motherboard with ISA ports and 8MB to 16MB of RAM on it, I'm interested ;)

I also really went back to roots on this. The instruments, patches, and sounds will be accompanied by other chiptune: my **Game Boy** running **mGB**, and a **SammichSID** (6581).

I was also listening to a lot of **Bobby Prince**, who passed away in June, and listening / reading about the musical limitations and software he would have worked with back in the early days around the Doom era. Huge respect. Amazing composer.

Shoutouts to internet stars: **OxygenStar** for igniting my todo list (I subscribed!) and planting a seed to get into AdLib Tracker II yonks ago. Also loved listening to some **Diode Milliampere** during some late nights of splicing serial cables. Go look those 2 up :)

**Licensing:** the AT2-derived fork path (at2net and related replay bits) will be released under **GPL v3**, same as AdLib Tracker II. AdLibitum's own upstream code stays under its existing licence (beerware / CC BY 4.0). Third-party pieces (Nuked-OPL3, mGB, etc.) keep their own. Repo: aday1/AdLibitum.

Chart below is how the AdLibitum desk talks to the Armada laptop.

AdLibitum VST stack · Clan Analogue FM3 gig

ARMADA 1750 · ESS FM

1999 Compaq Armada 1750. ESS ES1869 at 388h. Sixteen megs of RAM. We do not stream audio to this laptop — we stream OPL register frames. Sound design is two operators, feedback, envelopes, and an 18-voice channel budget.

host
Modern box
REAPER FM Kit + Drivers · X-Touch · at2net. Notes and envelopes become register intent.
wire
FM31NET
F0→F1 handshake · AA bank reg val · TCP :3819 · TCP_NODELAY (or death by Nagle).
guest
FM31LEAN
Win98 receiver on the Armada. Mute/solo bend the stream. PANIC = chip reset.
silicon
ES1869
Direct OUT to 388h / 38Ah. Operators key on. Soft Nuked only rehearses.
╔══════════════════════════════════════════════════════════════════════╗
║  ░▒▓█  ADLIBITUM VST  →  ARMADA / ESS   ·   GIG: CLAN ANALOGUE FM3  █▓▒░  ║
╚══════════════════════════════════════════════════════════════════════╝

  ┌──────────────────────────┐         TCP :3819          ┌──────────────────────────┐
  │  ░ MODERN BOX ░          │      F0 ──▶ F1 ACK         │  ░ ARMADA 1750 ░         │
  │                          │    ┌───────────────┐       │                          │
  │  REAPER + X-TOUCH        │    │ [AA bk rg vl] │       │  Win98 · FM31LEAN        │
  │  FM Kit / FM Drivers     ├───▶│  FM31NET wire │──────▶│  parse · mute/solo desk  │
  │  at2net (.a2m path)      │    │  TCP_NODELAY  │       │  OUT 388h / 38Ah         │
  │  Studio / modulators     │    └───────────────┘       │  ESS AudioDrive sings    │
  └────────────┬─────────────┘                            └────────────┬─────────────┘
               │                                                       │
               ▼                                                       ▼
        ┌─────────────┐                                         ┌─────────────┐
        │ NUKE soft   │  A/B fan-out optional                   │ 18 VOICES   │
        │ Nuked-OPL3  │◀───────────────────────────────────────▶│ mod + car   │
        └─────────────┘                                         └─────────────┘

  ┌──── GB mGB ────┐   ┌── SammichSID 6581 ──┐   ┌── GPL v3 AT2 fork (soon) ──┐
  │ Teensy / cart  │   │ chiptune bed        │   │ at2net + ijsf/at2 lineage │
  └────────────────┘   └─────────────────────┘   └───────────────────────────┘

     serial weeks: suck  ················  ethernet: go
     PLAY DIODE fixes most sound issues (Armada wallpaper law)
ADLIBITUM VST
      |
      v
 FM31NET :3819
 [AA bk rg vl]
      |
      v
 ARMADA 1750
 Win98 FM31LEAN
 OUT 388h / 38Ah
      |
      v
 ES1869 · 18 voices
 (+ NUKE soft A/B)

 GB mGB · SID 6581
 serial sucked · ethernet go
 PLAY DIODE wallpaper law

Sound design for ESS FM

Limits are the instrument. No free sample pad. Kick and hat are FM patches that measure like drums — or they scream white.

KnobOn the ES1869Why it matters live
Algorithm FM (mod bends carrier) vs additive (both heard) Bite vs organ/pad stack — the first decision
Feedback 0–7 Modulator self-mod ≥6 often noise; SAFE PASS walks melodic voices down
Mult ratio Mod:car frequency multiplier Bass gravity vs bell / metal harmonics
Waveform 8 OPL3 waves (sine → square / log-saw) Timbre palette — not Serum wavetables
ADSR + EG hold Per-operator envelopes Release ≤1 = drones that outlive the set
Carrier TL Attenuation 0–63 (0 = loud) Velocity / CC7 / CC11 dynamics live here
18 voices Channels 0–8 bank0, 9–17 bank1 Arrangement = who owns a channel this bar

Live desk moves

  • One FM Kit + six FM Drivers on REAPER
  • OUT = ARMADA (NUKE = laptop soft rehearse)
  • Mod Mult / Level / Attack envelopes = real OPL units
  • at2net for authentic .a2m effects (subz3ro / AT2)
  • Fan-out A/B: same stream → Nuked + Armada

Why the laptop boots this way

Port truth

ESFM sounds like “Sound Blaster base 228.” I chased 228 for ages — also had AUTOEXEC.BAT wrong for a while there, and honestly forgot how CONFIG.SYS works. FM index was always 388 hex. Bank 0: 388/389. Bank 1: 38A/38B. Wonder if I should try this on FreeDOS next time…

VxD trap → FM METAL

ESS driver traps 388h and steals your writes. Fix: disable ES1869 in Device Manager, keep the NIC, run FM METAL (ESSCFG + ESSVOL + FM31NET).

We don’t stream audio to the Armada — we stream register writes. The ES1869 is the instrument.

Forked from ijsf/at2 (AdLib Tracker II / subz3ro lineage) — releasing AT2-derived bits under GPL v3. Soft rehearsal: Nuke.YKT / Nuked-OPL3. GB: trash80 / mGB · SID: SammichSID 6581. github.com/aday1/AdLibitum · aday.net.au

What ended up on the desk

See you at **FM3** — free tickets on Moshtix. Bring a Sound Blaster if you've got a spare.