Releases: wolfclostermann/openkj-ticker
Releases · wolfclostermann/openkj-ticker
v0.1.0-alpha.8
Changes since alpha.7
- Fix: playback detection no longer relies on a singer-name lookup in
historySingers. It now finds the globally most-recenthistorySongsentry 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
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
Changes since alpha.5
- Fix: corrected the
is_playingdetection query.historySongs.historySingeris an integer FK into a separatehistorySingerstable (not the singer name directly), and the song identifier in history is a text disc ID rather than the integerdbSongs.songid. The join now follows the correct chain:historySingers(name→id)→historySongs(filepath)→dbSongs(path→songid)→queueSongs.
v0.1.0-alpha.5
Changes since alpha.4
- Fix: INI file lookup now checks
openkj.inifirst (the correct filename), withopenkj2.iniandopenkj2-unstable.inikept as fallbacks. This was the root cause ofis_playingnever detecting a current singer.
v0.1.0-alpha.4
Changes since alpha.3
- Sharper debug logging: now shows exactly which INI files were tried and whether they opened, the raw
currentRotationPositionvalue found, every singer ID loaded from the DB, and the exact values present whenis_playingcan'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
Changes since alpha.2
- Debug logging: console now logs each step of the
is_playingdetection — historySongs lookup, unplayed queue count, and final playback state — to help diagnose incorrect behaviour. Default log level raised todebug.
To see the output, run from a terminal (cmd or PowerShell) rather than double-clicking the exe.
v0.1.0-alpha.2
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
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
- Download
openkj-ticker.exebelow. - Run it — it will auto-discover your OpenKJ data directory and create
openkj-ticker.tomlin the same folder. - Add a Browser Source in OBS pointing to
http://localhost:8080/ticker. - 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)