How encore-karaoke-labs/encore-karaoke works
Encore is an Electron karaoke player. The principal workflow is selecting a library track, starting playback, rendering synchronized lyrics, and scoring live microphone performance; users can also record, stream, and join remote sessions. The graph preserves the README’s major feature branches. Source-index references and excerpts support the implementation links shown; other capability links are documented in the README, and unsampled internals are not inferred beyond that evidence.
Main entry points: Playback.js Track Playback · PlaybackManager.js Playback Manager · UIManager.js Player UI · SetupManager.js Setup Manager
Components 26
App Runtime
- Desktop Shell
main.ts - Boot Manager
src/pkgs/system/BootManager.js - Player UI
src/pkgs/system/managers/UIManager.js - Input Manager
src/pkgs/system/managers/InputManager.js - Setup Manager
src/pkgs/system/managers/SetupManager.js - Settings Config
config-manager.ts
Library and Playback
- Library Manager
src/pkgs/system/managers/LibraryManager.js - Playback Manager
src/pkgs/system/managers/PlaybackManager.js - Track Playback
src/pkgs/services/modules/Playback.js - Audio State
src/pkgs/services/core/State.js - MIDI Synthesizer
src/pkgs/services/modules/Synthesizer.js
Singing Experience
- Lyrics Engine
src/pkgs/system/managers/LyricsEngine.js - Romanizer
src/modules/Romanizer.js - Forte Audio Engine
src/pkgs/services/Forte.js - Performance Scoring
src/pkgs/services/modules/Scoring.js
Remote and Games
- Session Service
src/pkgs/services/Sessions.js - Session Manager
src/pkgs/system/managers/SessionManager.js - Mobile Remote
src/remote/script.js - Karaoke Dares
src/games/Dares.js
Creator Tools
- Recorder
src/modules/Recorder.js - Live Streaming
src/pkgs/system/managers/StreamManager.js
Other components
- Singer
- YouTube
- Microphone
- Remote Singers
- OBS
Connections 22
- Singer → Player UI: selects songs
README.md - Player UI → Input Manager: handles controls
- Singer → Setup Manager: configures devices
README.md - Setup Manager → Settings Config: sets preferences
- Boot Manager → Desktop Shell: starts desktop
- Singer → Library Manager: imports library
README.md - Library Manager → Playback Manager: supplies tracks
- Playback Manager → Track Playback: starts playback
- Track Playback → Audio State: reads state
src/pkgs/services/modules/Playback.js - Track Playback → MIDI Synthesizer: uses synthesizer
src/pkgs/services/modules/Playback.js - YouTube → Playback Manager: provides tracks
README.md - Track Playback → Lyrics Engine: synchronizes lyrics
README.md - Lyrics Engine → Romanizer: romanizes text
src/pkgs/system/managers/LyricsEngine.js - Microphone → Forte Audio Engine: provides audio
README.md - Forte Audio Engine → Performance Scoring: tracks performance
README.md - Singer → Recorder: records performance
README.md - Recorder → Live Streaming: supplies broadcast
- OBS → Live Streaming: receives stream
README.md - Remote Singers → Session Service: joins sessions
README.md - Session Manager → Session Service: broadcasts performance
src/pkgs/system/managers/SessionManager.js - Remote Singers → Mobile Remote: controls karaoke
README.md - Singer → Karaoke Dares: plays dares
src/games/Dares.js