heartbeat-demo
Note visualiser: two-column VU meters, plasma background, spectroscope, sprite scrolltext

heartbeat-demo

2026-10-03
GitHub

Ultimate 64 demo built around a Heartbeat Soundtracker song, with a full C player port and a note-reactive visualiser.

A demo for the Ultimate 64, compiled with Oscar64, built around a song composed in the Heartbeat Soundtracker. The demo includes a full C port of the Heartbeat Soundtracker standalone player -- all SID and Ultimate Audio channels, tempo, modulation (vibrato, PWM, filter sweep, portamento) and in-pattern track commands -- driven from a single tick IRQ, plus a "wow factor" note visualiser.

v1.1.0: the player now comes from the ultimate-uci-oscar64 library for Oscar64, so other programs can use it too; the firmware settings load automatically; and the demo uses the Colodore palette, with the plasma and the scrolltext slowly changing colour.

Requirements

  • Ultimate 64, Ultimate 64 Elite or Elite II with firmware 3.15 or newer (tested on an Elite II and an Elite).
  • The required settings (turbo, 16 MB REU, Ultimate Audio, Command Interface, plus Heartbeat Soundtracker's own SID and mixer settings) are in heartbeat-demo.cfg, which the firmware loads automatically when you start the demo. It works on every model. It also changes the audio mixer and UltiSID settings; see the README if you prefer your own.
  • Prefer the internal microSD slot over a USB drive. A C64U firmware bug causes many USB drives to randomly disconnect when Ultimate Audio channels are in use.

Installation

  1. Extract the ZIP to the root of an SD card (recommended) or USB drive. The ZIP contains the idi8b/heartbeat-demo/ folder, including both bundled songs -- extracting at the drive root creates the correct layout.
  2. In the Ultimate menu, navigate to idi8b/heartbeat-demo/ and run heartbeat-demo.prg from there, so heartbeat-demo.cfg next to it is loaded automatically.

The demo auto-detects hardware, loads the first song, and starts playback automatically. Press S on the visualiser screen to switch to the other bundled song at any time.

Visualiser and Test Harness

After hardware detection, the note visualiser shows a two-column VU-meter display (enough rows for all 31 possible channels: 7 Ultimate Audio channels plus up to 8 SID chips) driven live from the player's own event queue, plus a plasma background, a stylized pitch-histogram spectroscope, and an 8-sprite scrolling message.

A buttons.s-equivalent interactive test harness runs on the same screen: SPACE restarts the song, S switches songs, RUN/STOP silences all sound, A-O trigger sample FX 1-15, X stops the FX channel, RETURN exits to BASIC.

Credits

  • Code: Xander Mol
  • Demo framework: scaffolded from UltimateDemo2026
  • Heartbeat Soundtracker player: (c) Aleksi Eeben / Eight Bit Shed, used and redistributed with permission -- see the repository's NOTICE.md
  • Ultimate libraries: ultimate-uci-oscar64, based on the Ultimate II DOS library by Scott Hutter & Francesco Sblendorio
  • Colodore palette: Philip "Pepto" Timmermann
  • Compiler: Oscar64 by drmortalwombat
  • Sprite scroller font: "Sprite Font" by hedning, from the demo World in Progress (1st place, Mixed category, Syntax Society Summerparty 2012)
  • Songs: "Maniac" (Michael Sembello, from Flashdance, 1983), arranged by Xander Mol; Knight Rider theme (Glen A. Larson / Stu Phillips), arranged by Aleksi Eeben and bundled as example content with Heartbeat Soundtracker's own public evaluation release

Licensed under the GNU General Public License v3.0 (player/demo code; song files and third-party assets have their own terms -- see NOTICE.md).


ML Show Meatloaf LOAD commands Send file directly to Meatloaf device Download file
NameTypeSize
heartbeat-demo-v1.1.0.zipZIP2.00 MB

1 file