HEARO
> Music player for vintage DOS PCs.
Plays trackers, MIDI, WAV, OPL register streams, and AY chiptunes on the host CPU. Runs on a 286 with 1 MB RAM and an MDA card; reaches for SVGA and a Gravis UltraSound MAX if you have one. Currently at v1.5.1; streaming and compressed formats wait for the NetISA card in v1.1. Open Watcom V2, MIT license.
What it looks like
Eight visualizer modes total: spectrum, VU, frequency bars, plasma, tunnel, fire, particle, wireframe. V cycles. Audio keeps playing through the cycle. The demoscene modes are FPU-gated and skipped on FPU-less hardware.
Themes
Nine built-in palettes plus a user slot. Live preview while you cycle. .THM files hot-reload. Anyone who ever stared at a green-screen Wyse terminal and missed it can have it back.
What it plays
Host (16): WAV, MOD, S3M, XM, IT, MTM, 669, STM, FAR, ULT, MIDI, VGM, CMF, HSC, RAD v1, AY/YM3.
NetISA card (v1.1+): MP3, FLAC, Opus, Vorbis, AAC, WMA, ALAC. Decoded on the ESP32, arrives at the host as PCM.
Streaming (v1.1+): Icecast/SHOUTcast, Bandcamp, SomaFM, Internet Archive, Nectarine, ModArchive.
Real-time MP3 decode on a 386 doesn’t happen. The ESP32 has the spare cycles; the host does not. Without a NetISA card, the compressed extensions sit greyed out in the browser.
Hardware
Twenty-four audio devices supported. PC Speaker, Tandy/PCjr PSG, Covox, Disney Sound Source, AdLib, AdLib Gold, every Sound Blaster from 1.x through AWE64, every Gravis UltraSound from Classic through PnP, MPU-401 with auto-identified Roland modules (MT-32, CM-32L, SC-55 family, SC-88 family, DB50XG, SCB-55), Ensoniq SoundScape, Pro Audio Spectrum 16, ESS AudioDrive, Turtle Beach MultiSound. Probe protocols are in docs/hearo-soundcard-reference.md.
Boot screen
First boot on this machine. on a fresh install, Starting a fresh Hall for this machine. after corruption recovery, or up to three New: AUDIO Sound Blaster 16 lines plus a Plus N more new components rollup on subsequent boots.
Around seventy unlock rules, data driven, one row per rule. FPU unlocks 16 features (FFT, sinc resampling, plasma, tunnel, etc.). Audio chips unlock 33 (every SB tier, GUS hardware mixing, MT-32 LA synthesis, OPL2/3 MIDI, AWE64 CQM, the lot). Adding a feature is one line.
Hall of Recognition
Plain text file (HEARO.HAL). First-seen dates per component, lifetime stats, no achievements. Install an FPU and the next boot notices. A year later the boot screen says so on the same calendar day. Editable with any text editor.
v2.3 rebuilt the Hall as a durable cross-release format. Events moved off DGROUP to the far heap (1024 cap), reclaiming about 23 KB of conventional memory. The writer is atomic via a TMP-write + _dos_commit + rename pattern; a power loss mid-save recovers on next boot through a nine-case decision tree. v0 files (pre-v2.3, no version field) migrate transparently via a verbatim streaming backup to HEARO.V0 on first read. Unknown future-version fields round-trip byte-for-byte, so a v2.3 reader against a future v2.4 Hall never silently downgrades the file. Anniversary lines name the specific component being celebrated, oldest first-seen wins, one per boot.
v2.4 closes the rest of the Hall surface spec: First boot on this machine. on a fresh install (case 9 of the recovery sequence), Starting a fresh Hall for this machine. after corruption recovery (cases 5/6/8), and on every other boot, up to three New: {category} {text} lines per newly-detected component plus a Plus N more new components (AUDIO, VIDEO). rollup that lists the categories that didn't fit in the cap. First-boot and fresh-Hall lines suppress the new-component lines per the ยง2.1 mutual-exclusion rule. The TESTHAL.EXE harness grew to 40 assertions covering both new framing states.
Suite
HEARO is one of eight NetISA suite apps. Shared INI grammar, Hall format, command-line conventions (/SAFE, /REDETECT, /STUBNET).
FAQ
- Will it run on my 286?
- Yes. 286 + 1 MB + MDA + PC Speaker is the floor. V20 + 8087 + EGA + AdLib gets you a degraded but real path.
- What does HEARO play that nothing else does?
- AY/YM3 chip music with a streaming synth (no length cap), full per-tick effects on STM / FAR / ULT, and an LHA depacker for YM5 / YM6 so the Atari ST chiptune corpus actually plays. Plus the usual tracker / MIDI / WAV / OPL stack.
- What about MP3 and FLAC?
- v1.1, on the NetISA card. Real-time MP3 decode below a fast 486 doesn’t fit. The ESP32 has hardware that does.
- Does it work in DOSBox-X / 86Box / PCem?
- Yes. Standard BIOS calls plus direct VRAM. The 86Box wav-matrix harness is what proves the audio path is deterministic across 33 fixtures.
- License?
- MIT. Same as the rest of the suite.
- Where is the source?
- HEARO v2.4.0 GitHub release. Prior tags: v2.3.0 (the Hall rebuild), and archives at v1.5.1, v1.5.0, v1.4.0, v1.3.0.
Links
- HEARO v2.4.0 GitHub release (Hall surface + Mode 13h fades + tracker effects)
- HEARO v2.3.0 GitHub release (the Hall of Recognition rebuild)
- HEARO v1.5.1 source archive (earlier line; for reference)
- HEARO design document (in source archive:
docs/hearo-design.md) - HEARO soundcard reference (in source archive:
docs/hearo-soundcard-reference.md) - NetISA project page
- CERBERUS project page
- Build log