BARELY BOOTING_
PAGEPLAYER
$ bb / projects / hearo

HEARO

> Music player for vintage DOS PCs.

HEARO splash intro animation looping: HEARO logo wipes in left-to-right with a CGA-snow flicker zone, settles to the full logo with 'NetISA Music Player' subtitle, then dissolves into the boot screen.
The intro plays once, settles, then gets out of the way. OPL2 fanfare doesn’t survive the GIF; reach for real iron or a DOSBox-X build.

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

HEARO v1.4 main UI in DOSBox-X. Four-pane text-mode layout: top-left file browser showing C:\DATA contents (TONE.MOD highlighted), top-right Now Playing pane reading 'no track loaded', bottom-left Playlist pane (empty), bottom-right Spectrum visualizer showing the dim default sweep.
Four panes. Browser, playlist, now playing, visualizer. Menu bar up top, F-key legend at the bottom. Captured automated via DOSBox-X.
HEARO frequency bars visualizer running while TONE.MOD plays. Spectrum bars in tri-color zones (green for low, yellow for mid, red for high) showing real audio data with peak-hold caps.
Frequency bars with peak-hold and tri-color zones.
HEARO plasma visualizer in the bottom-right pane. Three CORDIC sine fields summed per cell, color-cycled through 8-step ASCII glyph ramp.
Plasma. Three CORDIC sine fields per cell. FPU-gated.

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

HEARO with Amber CRT palette + Norton Classic role scheme. The whole UI is amber-on-brown, mimicking a 1980s amber phosphor monitor running Norton Commander.
Amber CRT palette with the Norton Classic scheme. The 1992 NC vibe in amber phosphor.

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

Floor286 + 1MB + MDA
Standard386 + 4MB + VGA + AdLib
Workstation486 + 8MB + SVGA + SB16
Maximum486DX2+ 16MB + 1024 + GUS
DOS3.3+
LicenseMIT

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

HEARO v2.4.0 boot screen in DOSBox-X. Big CP437 block-letter HEARO logo at top in amber. Subtitle 'NetISA Music Player v2.4.0' with 'MIT License' on the right. Below, the start of detection output: 'CPU  Intel 80486DX @ 8 MHz / integrated x87 (Intel) / Unlocked: 256-bin FFT, Sinc resam(pling)' in alternating amber + green for detected items + unlocked features.
v2.4.0 boot, captured on a virtual 486DX with x87. Each detection module finds what it finds; every detected component unlocks features. Around seventy data-driven rules in total. The Hall surface above the detection lines says 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.
HEARO v1.4 boot screen in DOSBox-X. Big CP437 box-drawing HEARO logo at top with NetISA Music Player v1.3.0 / MIT License subtitle. CPU Intel 80486SX 8 MHz detected; 80487 ENABLED listing 256-bin FFT, sinc resampling, exact mixing, plasma, tunnel, particle system, fire, wireframe 3D, karaoke vocal removal, parametric EQ, stereo widening, gamma-correct dither, adaptive CORDIC, log-domain effects, 16+ channel mixing in green. Memory 640K + 64512K extended detected with full library index and visualizer preload unlocked. Video VESA generic 2048KB VRAM ENABLED. Bottom: Your machine has unlocked 32 features. Press any key to begin.
v1.4 boot screen on a fuller-featured rig. Eight detection modules; bottom line is the feature count.

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.

HEARO v2.4 file browser in DOSBox-X, Stereo Receiver amber theme. Left pane shows C:\DATA file listing with FXFAR2.FAR highlighted in solid amber on a brown row; other entries in dim amber. File sizes (3kB, 10kB) right-aligned. Right sidebar shows the Now Playing pane reading '(no track)' with ENTER / Alt-key hints below and a Stop / Vol panel at the bottom.
Stereo Receiver theme, the v2.1 default. Dark amber palette with bright-amber selection. The right sidebar is the Now Playing pane. v2.4 adds a vsync-gated palette fade on Mode 13h entry and exit and surfaces effect bytes for the 669 / STM / FAR / ULT tracker formats in the pattern viz.

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).

CATHODEWeb browser
COURIEREmail (OAuth2)
CRATECloud filesystem
KIOSKPackage manager
HEAROMusic player
RADIOXT streaming

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