SongDeck Logo

Frequently Asked Questions

Get instant solutions to common issues, learn how to configure platform integrations, and explore the advanced audio & AI architecture powering Songdeck.

Showing 25 results

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.
General

Songdeck is engineered for total peace of mind in dead-zone basements and remote festival stages where Wi-Fi drops.

  1. Pre-Gig Caching: Open your setlist (/setlists/[id]/track-mode) on your performance tablet or laptop before showtime.
  2. Local Preload: The application automatically executes getCachedSetlist, caching all audio backing tracks, metadata, and synchronized LRC lyrics into offline browser storage.
  3. Zero-Latency Offline Execution: The live mode operates entirely locally from cache. If venue Wi-Fi drops, your performance and teleprompter continue running seamlessly.
  4. Firestore Syncing: Once connection is restored, edits or practice logs automatically sync back to Google Cloud Firestore via Firebase Admin SDK.
General

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.
Setlists & Repertoire

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.
McGee AI

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.
Live Mode

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.

Setlists & Repertoire

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 Demucs to separate vocals, drums, bass, guitar, piano, and other instruments.
  • Dynamic Time Warping (DTW): We use librosa to 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 pyin fundamental 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.
Rehearsal

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.
Integrations

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.

General

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.

Important Note: Creating a YouTube channel does not mean you have to create videos, stream, or share public content. It is simply the database entity Google uses to hold custom playlists and library data. It is completely free and takes 5 seconds to set up.

To resolve this error and enable playlist generation:

  1. Open your web browser and go to https://www.youtube.com/create_channel.
  2. Ensure you are signed in with the same Google account you authorized in SongDeck.
  3. Follow the short prompt to confirm your name/handle and click Create Channel.
  4. Return to SongDeck and click Generate Playlist. It will now work immediately!
Integrations

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.
Live Mode

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 loadedmetadata listeners and imperative React seekTo references.
Rehearsal

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.

Setlists & Repertoire

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.
Setlists & Repertoire

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.
Setlists & Repertoire

Songdeck includes modules for direct OAuth 2.0 authentication with major streaming networks:

  • Spotify: Auth runs through spotifyAuth.ts and syncs via spotifyPlaylist.ts.
  • YouTube: Connects via Google OAuth callback routes using youtubePlaylist.ts and matches tracks via youtubeTrack.ts.
  • Apple Music: Handled by appleMusicAuth.ts using Developer MusicKit tokens.

Songdeck searches streaming catalogs by comparing titles, artists, and durations to match and build playlists.

Integrations

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.
Setlists & Repertoire

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":

  1. The command parser identifies the styling properties.
  2. It modifies the style object values.
  3. The updated style configuration is checked by the Zod schema and merged into your layout settings, prompting a visual update on the preview canvas.
McGee AI

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 text are parsed via parseLRC, 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 .lrc file.
Lyrics & Teleprompter

The Lyric Teleprompter (LyricTeleprompter.tsx) is optimized for live stage readabilities:

  • Dynamic Scrolling: The teleprompter evaluates findActiveIndex against 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
Lyrics & Teleprompter

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.
Live Mode

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.
Rehearsal

The Rehearsal Appraisal Engine runs as a decoupled, multi-step asynchronous pipeline:

  1. Ingestion: The user records their session via the browser MediaRecorder API and posts it to the FastAPI backend.
  2. Separation: The backend delegates stem separation to a Hugging Face Space running Meta's Demucs v4 (specifically the 6-stem htdemucs_6s model).
  3. 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.
  4. Deviation Mapping: Pitch accuracy is measured using pyin, timing offsets using onset detection, and dynamics using RMS.
  5. Coaching: A structured data report is generated and processed by Gemini Flash to provide music producer-style coaching tips.
Rehearsal

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.
Lyrics & Teleprompter

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.
McGee AI
Track Player
Songdeck logo