How johnbatey/bible-song-pro works
Bible Song Pro is a church presentation system: an operator selects scripture or lyrics in the control panel, formats the presentation, and sends it to an OBS Browser Source for live display. The README also documents customizable output, multilingual support, media and production controls, live scripture transcription, and feedback submission. The tree omits the HTML control and output pages, and several panel excerpts are incomplete, so their internal wiring is shown only where README documentation or sampled code supports it.
Main entry points: songs-and-bible.js Songs and Bible · main.js Live scripture helper · program-display-and-transform.js Program display · render-and-selection.js Render and selection
Components 25
Presentation control
- Control panel
- Panel initialization
js/panel/bootstrap-and-init.js - Commands and shortcuts
js/panel/app-commands-and-shortcuts.js - State and storage
js/panel/state-and-storage.js - Program display
js/panel/program-display-and-transform.js - Render and selection
js/panel/render-and-selection.js - Output synchronization
js/panel/sync-and-output.js - OBS browser output
Scripture and lyrics
- Bible versions
bibles/manifest.js - Bundled translations
bibles/KJV.js - Songs and Bible
js/panel/songs-and-bible.js - Reference localization
js/panel/reference-localization-theme.js
Broadcast production
- Workspace and editor
js/panel/workspace-and-editor-tools.js - Scenes and sources
js/panel/scene-and-source-tools.js - Media workspace
js/panel/media-workspace.js - Source runtime and mixer
js/panel/source-runtime-and-promixer.js - Recording and livestream
js/panel/recording-and-livestream-tools.js
Live scripture
- Live scripture helper
helper-app/main.js - Local transcription
helper-app/engine-local.js - Offline model worker
helper-app/live-scripture-offline-worker.js - Deepgram transcription
helper-app/engine-deepgram.js - WebSocket relay
helper-app/relay.js
External integrations
- Feedback endpoint
server/feedback-backend.js - GitHub issues
Other components
- Church operator
Connections 20
- Church operator → Control panel: controls
- Control panel → Panel initialization: initializes
- Control panel → Commands and shortcuts: accepts commands
- Songs and Bible → Bible versions: loads versions
- Bible versions → Bundled translations: indexes translations
- Songs and Bible → Reference localization: uses references
- Songs and Bible → Program display: selects content
- Program display → Render and selection: formats display
- Render and selection → Output synchronization: sends updates
- Output synchronization → OBS browser output: BroadcastChannel sync
- State and storage → OBS browser output: persists settings
- Workspace and editor → Scenes and sources: manages production
- Media workspace → OBS browser output: synchronizes media
- Source runtime and mixer → Scenes and sources: controls sources
- Recording and livestream → OBS browser output: streams output
- Live scripture helper → Local transcription: runs engine
- Local transcription → Offline model worker: transcribes audio
- Live scripture helper → Deepgram transcription: runs engine
- Live scripture helper → WebSocket relay: relays messages
- Feedback endpoint → GitHub issues: creates issues