Skip to content

Releases: wolfclostermann/openkj-ticker

v0.1.0-alpha.8

06 Jun 22:56

Choose a tag to compare

v0.1.0-alpha.8 Pre-release
Pre-release

Changes since alpha.7

  • Fix: playback detection no longer relies on a singer-name lookup in historySingers. It now finds the globally most-recent historySongs entry and checks if that song is still unplayed in the current singer's queue. This works correctly for first-time singers who have no prior history.

v0.1.0-alpha.7

06 Jun 22:50

Choose a tag to compare

v0.1.0-alpha.7 Pre-release
Pre-release

Diagnostic build: logs all names in historySingers alongside the name being searched for, so a name mismatch or empty table is immediately visible in the console output.

v0.1.0-alpha.6

06 Jun 22:46

Choose a tag to compare

v0.1.0-alpha.6 Pre-release
Pre-release

Changes since alpha.5

  • Fix: corrected the is_playing detection query. historySongs.historySinger is an integer FK into a separate historySingers table (not the singer name directly), and the song identifier in history is a text disc ID rather than the integer dbSongs.songid. The join now follows the correct chain: historySingers(name→id)historySongs(filepath)dbSongs(path→songid)queueSongs.

v0.1.0-alpha.5

06 Jun 22:36

Choose a tag to compare

v0.1.0-alpha.5 Pre-release
Pre-release

Changes since alpha.4

  • Fix: INI file lookup now checks openkj.ini first (the correct filename), with openkj2.ini and openkj2-unstable.ini kept as fallbacks. This was the root cause of is_playing never detecting a current singer.

v0.1.0-alpha.4

06 Jun 19:59

Choose a tag to compare

v0.1.0-alpha.4 Pre-release
Pre-release

Changes since alpha.3

  • Sharper debug logging: now shows exactly which INI files were tried and whether they opened, the raw currentRotationPosition value found, every singer ID loaded from the DB, and the exact values present when is_playing can't match a current singer. Makes it straightforward to tell the difference between "INI not found", "key missing", "value not parseable", and "ID doesn't match any singer in rotation".

v0.1.0-alpha.3

06 Jun 19:44

Choose a tag to compare

v0.1.0-alpha.3 Pre-release
Pre-release

Changes since alpha.2

  • Debug logging: console now logs each step of the is_playing detection — historySongs lookup, unplayed queue count, and final playback state — to help diagnose incorrect behaviour. Default log level raised to debug.

To see the output, run from a terminal (cmd or PowerShell) rather than double-clicking the exe.

v0.1.0-alpha.2

06 Jun 19:19

Choose a tag to compare

v0.1.0-alpha.2 Pre-release
Pre-release

Changes since alpha.1

  • Playback detection: ticker and rotation dashboard now distinguish between a singer actively singing vs. waiting at the top of the rotation
    • "Now Singing" only shows when OpenKJ is playing a song
    • "Up Next" shows the top-of-rotation singer between songs

v0.1.0-alpha.1

06 Jun 17:48

Choose a tag to compare

v0.1.0-alpha.1 Pre-release
Pre-release

Alpha release — Windows x64

Reads the OpenKJ SQLite database and serves a live karaoke rotation ticker as a local web page for use in OBS Browser Source. No changes to OpenKJ required.

Quick start

  1. Download openkj-ticker.exe below.
  2. Run it — it will auto-discover your OpenKJ data directory and create openkj-ticker.toml in the same folder.
  3. Add a Browser Source in OBS pointing to http://localhost:8080/ticker.
  4. Open http://localhost:8080/ in a browser for the full rotation dashboard.

If auto-discovery fails

Edit openkj-ticker.toml and set:

data_dir = "C:\\Users\\YourName\\AppData\\Roaming\\OpenKJ2"

CLI options

openkj-ticker.exe --help
openkj-ticker.exe --port 9090
openkj-ticker.exe --data-dir "C:\path\to\OpenKJ2"
openkj-ticker.exe --singer-count 10

JSON API

GET http://localhost:8080/api/state — returns current singer, next up, and full rotation as JSON. Accessible from other machines on your network using the machine's IP address.


Platform: Windows x64
SQLite: bundled (no external dependencies)