Frequently Asked Questions
Get instant solutions to common issues, learn how to configure platform integrations, and explore the advanced audio & AI architecture powering Songdeck.
Part 1: General Questions
Songdeck (internally engineered as Coverlist) is the ultimate live performance, setlist design, and rehearsal appraisal operating system built specifically for gigging musicians, bands, and solo artists.
- Live Cover & Original Bands: Sync shared repertoires, dynamic setlist ordering, multi-platform reference playlists, and high-contrast stage prompters.
- Solo Performers & Backing Track Users: Execute zero-latency audio playback, synchronized stem/stereo monitoring, and automated hands-free lyric cueing.
- Musical Directors & Band Leaders: Use AI to transform handwritten napkin setlists, text lists, or voice memos into gig-ready digital setlists and single-page, shrink-to-fit PDFs.
Songdeck is engineered for total peace of mind in dead-zone basements and remote festival stages where Wi-Fi drops.
- Pre-Gig Caching: Open your setlist (
/setlists/[id]/track-mode) on your performance tablet or laptop before showtime. - Local Preload: The application automatically executes
getCachedSetlist, caching all audio backing tracks, metadata, and synchronized LRC lyrics into offline browser storage. - Zero-Latency Offline Execution: The live mode operates entirely locally from cache. If venue Wi-Fi drops, your performance and teleprompter continue running seamlessly.
- Firestore Syncing: Once connection is restored, edits or practice logs automatically sync back to Google Cloud Firestore via Firebase Admin SDK.
We separate your music assets into two distinct tiers:
- Repertoire: The master database of every song your band knows or is currently practicing. It contains "ground truth" metadata such as key signatures, tempos, backing track files, tuning, and lyric timestamps.
- Setlists: Ordered selections of songs built for specific dates or gigs. You can organize songs into custom sets, insert timed breaks (e.g., 30-minute setbreak with countdowns), and apply custom print styles without altering the master song definitions.
McGee is your 24/7 AI Band Manager and styling assistant. It processes commands via a two-tiered system:
- Natural Command Parsing: Dictate voice commands or type statements like "Remove the encore, move up Hells Bells, and add a 15 min break after set 1." Our local parser (
commandParser.ts) fuzzy-matches titles instantly. - Multimodal Ingestion: Take a photo of a messy handwritten napkin setlist. McGee pre-processes the image and performs OCR extraction to draft a digital setlist.
- Automated Layouts: Tell McGee to "make headers bold and blue", and it updates style parameters validated via Zod schemas to adjust the look of your setlist.
Standard browsers introduce audible gaps or delays when shifting between tracks. Songdeck uses a custom audio engine to bypass these issues:
- Web Audio Graph: Audio is routed via a dedicated browser
AudioContext. This allows sub-millisecond timeline tracking and instant playback triggers. - Pre-Caching & Memory Buffering: Backing tracks are loaded into memory buffer caches to prevent network latency.
- Continuous State Sync: The active player links to
MediaPlayerContext, enabling synchronized lyrics and stage timers to run in lockstep without drifting.
Yes. Songdeck features a PDF rendering module built on top of @react-pdf/renderer that outputs high-resolution, readable printouts.
If you enable Fit to Page (fitToPage: true), Songdeck uses a recursive spatial reasoning algorithm. It tests the height of your setlist elements against standard A4 print dimensions. If there is overflow, it scales down the font sizes and line spacing step-by-step until all sets, songs, and notes fit on a single, clean sheet.
Our rehearsal analyzer gives you objective, forensic-level musical feedback in under 15 seconds.
- AI Stem Isolation: When you upload a rehearsal recording, our backend runs Meta’s
Demucsto separate vocals, drums, bass, guitar, piano, and other instruments. - Dynamic Time Warping (DTW): We use
librosato calculate Constant-Q Transform (CQT) feature matrices. DTW warps your practice timeline directly onto the reference song's grid to compare performance timing. - Performance Scoring: The engine measures pitch accuracy in cents using the
pyinfundamental frequency algorithm, timing offsets in milliseconds via onset detection, and volume dynamics (RMS). - Gemini Producer Coach: The structural data is analyzed by Gemini Flash to provide professional, actionable production feedback.
Songdeck connects to external platforms to simplify rehearsal sharing and lyric search:
- YouTube: Link backing track stems or reference performance videos. You can sync setlists directly to your YouTube account as a custom playlist.
- Spotify & Apple Music: Sync setlists directly to share reference tracks with band members.
- LRCLib: Queries public databases by ISRC or title metadata to auto-fetch synchronized timestamped lyrics.
Yes. Songdeck uses a hybrid storage architecture. When connected to the internet, all updates to your repertoire, setlist ordering, practice sessions, and settings are saved to Google Cloud Firestore.
Your band members see updates instantly on their dashboards, tablets, or phones. If a change is made while offline, it is stored in IndexedDB and automatically synced to the cloud when internet access returns.
When you click Generate Playlist, SongDeck uses Google’s official YouTube API to automatically create a custom playlist in your account and populate it with your setlist tracks.
Google’s API classifies creating a playlist as a channel-level write operation. In the YouTube ecosystem, a standard Google account is just an authentication profile. To create playlists or perform other write actions, the account must have an active YouTube Channel associated with it to serve as the owner of the playlists.
To resolve this error and enable playlist generation:
- Open your web browser and go to https://www.youtube.com/create_channel.
- Ensure you are signed in with the same Google account you authorized in SongDeck.
- Follow the short prompt to confirm your name/handle and click Create Channel.
- Return to SongDeck and click Generate Playlist. It will now work immediately!
Part 2: Architectural & Feature Deep-Dive
Live Mode provides hands-free, automated coordination for live gigs, centering on two directories: /track-mode and /lyric-mode.
- MediaPlayerContext: Acts as the single timeline coordinator. It manages active song states, millisecond playback tracker (
setProgressMs), seek requests (consumeSeek), and automated playlist progression. - Auto-Play Backing Tracks: Entering Live Mode executes
setEnabled(true), turning on backing tracks and locking page scrolling to the master audio clock. - Setlist Progression: When a track ends, the player triggers
onNextSong, jumping to the next track or starting a pre-programmed break countdown automatically.
Rehearsal Mode supports rigorous practice evaluation through comparative monitoring via two components:
- SynchronizedStereoPlayer: Instantiates a Web Audio graph that splits the stereo field. The reference "Gold Standard" recording is panned hard left (
pan.value = -1.0) and the rehearsal take is panned hard right (pan.value = 1.0). - StemAudioPlayer: Routes isolated instrument stems to separate channels, allowing musicians to listen to their performance in one ear and the professional mix in the other.
- Timeline Sync: Both media sources are locked together using shared
loadedmetadatalisteners and imperative ReactseekToreferences.
A Setlist functions as an ordered list of references to your master Repertoire. It does not duplicate song details, meaning any change to key, tuning, or lyrics inside your master database updates all active setlists instantly.
Setlists support structural metadata like set divisions (e.g., Set 1, Set 2, Encore), set breaks, gig-specific notes (e.g., "Janice's Birthday request"), and customized print stylesheets.
To keep setlists and players organized, the Repertoire supports deep metadata:
- Core Fields: Title, Artist, Album, and Duration.
- Gig Settings: Tempo (BPM), Time Signature, Tuning, Original Key, and Live Performance Key (highlighting transpositions).
- Stems & Files: Upload backing track audio, attach reference video links, input MIDI files, and map instrument roles (vocals, guitar, bass, keys, drums) to assign individual stems.
The Repertoire uses a hybrid storage approach:
- Read Operations: Optimized for speed by querying local static JSON configurations (
data/db.json). - Write Operations: Persisted immediately to Google Cloud Firestore via Firebase Admin SDK when online.
- Offline Cache: Changes made while offline are saved locally and synced back via a background script when connection is restored.
Songdeck includes modules for direct OAuth 2.0 authentication with major streaming networks:
- Spotify: Auth runs through
spotifyAuth.tsand syncs viaspotifyPlaylist.ts. - YouTube: Connects via Google OAuth callback routes using
youtubePlaylist.tsand matches tracks viayoutubeTrack.ts. - Apple Music: Handled by
appleMusicAuth.tsusing Developer MusicKit tokens.
Songdeck searches streaming catalogs by comparing titles, artists, and durations to match and build playlists.
The Setlist Designer (/designer) provides a visual interface to design setlist sheets:
- Validated Customization: All layouts are controlled by a Zod-validated configuration object (
SetlistStyleSchema). - Style Settings: Adjust margins, layout columns (1, 2, or 3 column grids), font selections (Lemon Milk, Fasthand, Inter), text alignments, header colors, and band logo placements.
McGee links natural language input directly to your design styles. When you dictate or type commands like "Set background to dark gray and make headers 16pt bold":
- The command parser identifies the styling properties.
- It modifies the style object values.
- The updated style configuration is checked by the Zod schema and merged into your layout settings, prompting a visual update on the preview canvas.
Lyrics must be synchronized with backing tracks to drive the stage teleprompter:
- Automated Query: Songdeck connects to LRCLib to find timestamped lyrics. It searches first using the song's ISRC code, falling back to Title/Artist searches.
- LRC Parsing: Syntaxes like
[02:14.30] Lyric textare parsed viaparseLRC, creating an array of timestamp objects mapped to millisecond intervals. - Custom LRC Files: If a song is missing from the database, you can upload a custom
.lrcfile.
The Lyric Teleprompter (LyricTeleprompter.tsx) is optimized for live stage readabilities:
- Dynamic Scrolling: The teleprompter evaluates
findActiveIndexagainst the current playback timestamp to center and highlight the active lyric line. - Scroll Lock Safeguard: Tapping or manually dragging the screen engages
lockUserScroll(true), pausing auto-scroll so the vocalist can review lyrics if the band vamps. - Hotkeys:
- Space - Play / Pause
- R - Restart current song
- ] or ↓ - Advance one line manually
The Live Backing Track Player is designed to run without clicks or drops. It leverages standard browser output channels while caching audio files:
- Local Audio Isolation: Audio files are fetched ahead of time and converted into Object URLs, avoiding runtime network buffering.
- Dynamic Audio Limiter: Plays through a master gain node configured to prevent signal clipping, safeguarding your channel feeds when driving venue PA systems.
In Rehearsal Mode, Songdeck shifts from simple stereo playback to a multi-track soundboard:
- Stem-Specific Gain Nodes: If multi-track stem files are available, each stem (vocals, guitar, drums, keys) is routed to its own Web Audio gain node.
- Mixing Board Controls: Rehearsal dashboard sliders let you mute, solo, or adjust volumes for individual stems, helping you practice parts in isolation.
The Rehearsal Appraisal Engine runs as a decoupled, multi-step asynchronous pipeline:
- Ingestion: The user records their session via the browser
MediaRecorderAPI and posts it to the FastAPI backend. - Separation: The backend delegates stem separation to a Hugging Face Space running Meta's
Demucs v4(specifically the 6-stemhtdemucs_6smodel). - DSP Alignment: The audio is analyzed using
librosa, extracting chroma CQT features. Dynamic Time Warping (DTW) aligns the rehearsal recording timeline to the original grid. - Deviation Mapping: Pitch accuracy is measured using
pyin, timing offsets using onset detection, and dynamics using RMS. - Coaching: A structured data report is generated and processed by Gemini Flash to provide music producer-style coaching tips.
For original material or songs not listed on streaming/lyric platforms, Songdeck provides custom tools:
- Manual Upload: Upload original stereo mixes, MIDI files, or isolated stems directly to your project space.
- Lyric Creator: Paste plain-text lyrics, then use our built-in sync interface. Hit play on your track and press the spacebar on the downbeats to stamp timestamps onto the lyric lines, generating a custom LRC file.
Songdeck digitizes analog notes and drafts using multimodal inputs:
- Web Speech: Uses the Web Speech API to dictate a setlist directly into the app, matching spoken text with repertoire song titles.
- Napkin OCR: Upload photos of handwritten lists. A canvas resizes the image to 1200px JPEG files, and McGee uses a Vision LLM to extract the track names, resolving titles via fuzzy match routines.
