Mcaster1Studio
Professional Broadcast Automation Suite — Documentation Home — v0.4.0-beta — 2026-03-19
Broadcast. Podcast. Worship. One Studio.
Mcaster1Studio is a modular broadcast control surface application built with C++20 and Qt 6.8.3.
Purpose-built workspaces — called Surfaces — provide tailored module layouts
for radio automation, live DJ performance, podcast production, church services, video streaming, and more.
Over 40 built-in modules cover every stage of the broadcast workflow, from audio mixing and
metadata management to live graphics switching, sermon transcription, and podcast distribution.
New in v0.4.0-beta: AuxDeck dual-bus audio routing (independent AIR and CUE outputs per deck),
AI-powered persona system with 15 presets and daypart scheduling, Artist Intel
research dialogs, and a full media library upgrade with FTS5 search and hierarchical categories.
Getting Started Guide
First-time user walkthrough: audio setup, surfaces, modules, broadcasting, church and podcast workflows.
Feature Reference
Detailed capabilities of every module, ribbon widget, theme, ICY protocol, SDK, and plugin system.
Project Plan & Status
Phase roadmap, deliverables, completion status, surface paradigm, module catalog, and build architecture.
AI Integration Features
AI providers, persona system, artist intel, DJ agent browser, playlist generator, daypart scheduler.
By the Numbers
9Surface Types
40+Built-in Modules
7Audio Codecs
3Themes
70+ICY 2.2 Fields
25Phases Complete
Surface Paradigm
Every workflow starts with a Surface — a preconfigured workspace with the right modules
for the job. Surfaces are tabbed, and each surface contains Sub-Surface Panels that can be
renamed and reorganized. Modules live inside drag-and-drop docks that can be rearranged, floated,
pinned, or closed. The entire layout persists automatically across sessions.
Alpha & Beta
5 / 3 modules
- Primary & backup radio broadcast
- VU meters, dual-deck, playlist, encoder, metadata
- Beta: lean 3-module fallback layout
DJ
4 modules
- Live performance with dual decks
- VU meters, effects rack, media library
- Crossfader, BPM matching, waveforms
Company & Social
4 / 3 modules
- Corporate & socialcast streaming
- Encoder, metadata, monitor, playlist
- RTMP, scheduled automation
Entertainment
3 modules
- TV/Video automation
- Video module, encoder, playlist
- QMediaPlayer + QVideoWidget
Church
17 modules (5 core + 12 church)
- Complete worship production
- Lyrics, scripture, graphics, video switcher
- Service rundown, stage monitor, mixer
- Sermon recording & transcription
Podcast
17 modules (4 core + 13 podcast)
- End-to-end podcast production
- Recording, editing, encoding, transcription
- RSS feed, publishing, analytics
- Soundboard, effects, remote guests
Church Surface — Live Worship Production
The Church surface provides a complete production environment for live services. The
GraphicsEngine renders themed visuals that feed into LyricsCaster,
ScriptureCaster, and AnnounceCaster. The SwitchCaster
aggregates all visual sources into a Program/Preview bus with broadcast-grade transitions.
ServiceRunner orchestrates the entire service rundown, coordinating timers,
video switching, transcription recording, and audio mixing automatically.
Church Module Wiring
GraphicsEngine
→
LyricsCaster
→
SwitchCaster
→
Program Out
GraphicsEngine
→
ScriptureCaster
→
SwitchCaster
GraphicsEngine
→
AnnounceCaster
→
SwitchCaster
ServiceRunner
→
TimerClock
+
SwitchCaster
+
TranscribeRec
+
AudioMix
StageMon
←
LyricsCaster
+
ScriptureCaster
+
TimerClock
TimerClock
- Master clock with 3D LCD-style painted digits
- Multiple named timers: countdown, count-up, or time-of-day target
- Per-timer warning (amber) and alarm (red) thresholds
- Dialog-driven timer creation with name, mode, and duration
- 100ms tick resolution, full state persistence
GraphicsEngine
- Theme-based rendering for all visual content
- Custom themes: background/text/accent colors, fonts, sizes, images
- Render types: lyrics, scripture, dual scripture, sermon point, lower third, title card, countdown, blank
- Live preview widget (960x540, 16:9 aspect)
- Vignette effect, logo placement, text wrapping
LyricsCaster
- Song library with search, add/edit/remove
- Song sections: Verse, Chorus, Bridge, Pre-Chorus, Intro, Outro, Tag
- Arrangement editor with drag-drop reordering
- Live transport: Previous / BLANK / Next with auto-advance
- Song metadata: key, BPM, CCLI number
ScriptureCaster
- Bible verse lookup — 66 books, 6 translations (KJV/NIV/ESV/NASB/NLT/NKJV)
- Autocomplete book names, verse range parsing
- Sermon queue: scripture, sermon points, blank slides
- Dual scripture side-by-side (two translations)
- ~20 seed verses cached; full SQLite Bible DB planned
AnnounceCaster
- Slide manager with title, body, image, and scheduling
- Date-range filtering: only show active announcements
- Loop playback with configurable interval
- Lower third overlay with text fields
- Priority ordering, full persistence
TelePrompter
- Scrolling script display for pastor/speaker
- Adjustable speed (10-200 px/sec), font size (16-72pt)
- Mirror mode for beam-splitter teleprompter rigs
- Section markers with jump-to navigation
- Configurable text and background colors
MediaCaster
- Video/image playback with drag-drop playlist
- QMediaPlayer + QVideoWidget + QAudioOutput backend
- Cue points with labels and fire window
- Loop mode, preview mode (video without audio)
- 9 media formats, volume control, seek slider
StageMon
- Confidence monitor for worship team and speakers
- Three modes: Worship, Sermon, Combined (side-by-side)
- Clock bar with current time + active timer countdowns
- Current section (large) + next section preview
- Key/BPM display, configurable font/clock/timer toggles
AudioMix
- 8-channel virtual mixing console
- Per-channel: volume, pan, mute/solo, gain, 3-band EQ (±12dB)
- Per-channel peak compressor (threshold + ratio)
- Stereo VU bars per channel + master bus
- Master mix recording to WAV (ring-buffer architecture)
- Default: Pastor Mic, Vocals, Band, Media
TranscribeRec
- Sermon recording from audio input via SPSC ring buffer
- Record/Pause/Resume/Stop with elapsed time display
- Manual transcript entries with timestamps
- Export: WAV (audio), TXT (plain text), SRT (subtitles)
- Speech-to-text planned (v2 — Whisper)
SwitchCaster
- Program/Preview video switcher
- 7 sources: Lyrics, Scripture, Announce, Media, Video, Logo, Black
- Transitions: CUT, DISSOLVE (200-5000ms), Fade to Black
- LIVE badge on program monitor, transition progress bar
- Lower third via AnnounceCaster binding
- 10fps preview, 60fps transitions
ServiceRunner
- Service order rundown with 11 segment types
- Welcome, Worship, Prayer, Scripture, Sermon, Offering, Announcement, Communion, MediaPlayback, Closing, Custom
- Per-segment: title, notes, duration, auto-advance
- Segment editor dialog for add/edit
- Color-coded progress bar (green/amber/red)
- TimerClock integration, JSON template save/load
Podcast Surface — End-to-End Production
The Podcast surface covers the entire production pipeline from recording through distribution.
Each module is self-contained — no cross-module wiring needed. Per-instance factories ensure
multiple Podcast surfaces can run independently.
Podcast Production Workflow
PodMixer
→
PodRecorder
→
PodEditor
→
PodEncode
→
PodTranscribe
PodShowNotes
→
PodRSS
→
PodPublisher
→
PodAnalytics
PodMixer
- 6-channel podcast mixer: Host, Guest 1-2, Soundboard, Music, Phone
- Per-channel gain, volume, pan, mute, solo, 3-band EQ, aux sends
- Stereo VU bars + master bus, headphone volume
PodPTT
- Enhanced Push-to-Talk: Hold, Toggle, AlwaysOn modes
- Cough button (momentary mute), talkback channel
- Voice Activity Detection (VAD) with threshold
PodRecorder
- Multi-track WAV recorder with SPSC ring buffer
- Show/episode metadata, named markers
- Take management: retake without restarting
PodSoundboard
- Sound pad grid with banks (Intro/Outro, SFX, Beds)
- Modes: OneShot, Toggle, Loop
- Custom colors, keyboard shortcuts, JSON persistence
PodFX
- 7-processor voice chain
- Noise Gate, Compressor, De-Esser, Parametric EQ, HPF, Limiter, LUFS Meter
- Per-processor bypass, reorderable, RT-safe DSP
PodEditor
- DAW-style waveform editor
- Timeline with regions, markers, cut/trim stubs
- Zoom in/out/fit, scroll, playback position
- QMediaPlayer + QAudioOutput backend
PodEncode
- Multi-format export: MP3, AAC, OGG, FLAC, Opus
- Bitrate/samplerate/channels config, ID3 metadata form
- LUFS normalization, job queue with progress
PodTranscribe
- Transcript editor with speaker labels
- Per-segment: time, speaker, text, confidence
- Export: SRT, VTT; chapter marker generation
- Whisper STT integration (v2)
PodShowNotes
- WYSIWYG show notes with formatting toolbar
- Templates: Standard, Interview, Solo
- Chapter markers, resource links, guest bios
- Export: HTML, Markdown, plain text
PodRSS
- RSS 2.0 + iTunes namespace feed generator
- Show settings + episode table, feed validation
- XML preview dialog, file export
PodPublisher
- Multi-target distribution
- Local Copy (v1), SFTP/FTP/HTTP (v2)
- Per-target progress tracking
PodAnalytics
- Episode statistics dashboard
- Downloads, subscribers, growth trend
- Bar chart, episode table, CSV export
PodRemote
- Remote guest manager for up to 4 guests
- Status indicators, audio level bars, mute/admit controls
- Join URL generation, WebRTC audio (v2)
Core Broadcast Modules
These modules form the foundation shared across all broadcast surfaces — audio playback,
encoding, metadata, monitoring, and effects processing.
| Module | ID | Capabilities |
| VU Meter | com.mcaster1.vumeter | Stereo peak + RMS bars, green/amber/red thresholds, clip indicator |
| Deck A & B | com.mcaster1.deck | Dual-deck player, waveform, crossfader, 3-band EQ, cue, loop, BPM, HTTP streams |
| Media Library | com.mcaster1.library | MySQL/SQLite, TagLib scanning, search, drag-to-deck, album art |
| Encoder | com.mcaster1.encoder | 7 codecs, 7-state machine, per-slot DSP chain, ICY push, reconnect watchdog |
| Effects Rack | com.mcaster1.effects | Virtual 19" rack, IEffectUnit C ABI, EQ31, Sonic, Compressor, AGC, MicPre, Stereo |
| Metadata | com.mcaster1.metadata | ICY 2.2 editor (70+ fields, 8 groups), ICY 1.x fallback, HTTP PUT |
| Playlist | com.mcaster1.playlist | Clock scheduling, rotation engine, broadcast log, auto-advance |
| Video | com.mcaster1.video | QMediaPlayer + QVideoWidget, playlist, RTMP stub |
| Monitor | com.mcaster1.monitor | Polls Icecast2/Shoutcast/DNAS stats; listeners chart, bandwidth, uptime |
| PTT | com.mcaster1.ptt | Push-to-Talk, Armed/Live/Off states, encoder duck attenuation |
| CartWall | com.mcaster1.cartwall | Hot-start audio pads, drag-from-library, one-shot/loop |
Technology Stack
| Component | Technology | Version |
| Language | C++20 (MSVC v143) | VS 2022 |
| UI Framework | Qt Widgets + Multimedia + Network + SVG | 6.8.3 |
| Build System | CMake + vcpkg + Visual Studio generator | 3.28+ |
| Audio I/O | PortAudio with ASIO support | 19.7 |
| Video | FFmpeg (avcodec, avformat, avutil, swresample) | 8.0.1 |
| Media Tags | TagLib | 2.1.1 |
| Database | SQLite (default) / MySQL-MariaDB (enterprise) | 3.51 / 8.0 |
| Audio Codecs | LAME, libopusenc, libvorbis, libFLAC, fdk-aac | various |
| HTTP | libcurl + Qt Network | 8.18 |
Mcaster1 Ecosystem
Mcaster1DNAS
- Streaming server (Icecast-derived)
- ICY 2.2 protocol, YAML config, admin XML API
Mcaster1DSPEncoder
- Standalone audio encoder
- Winamp, foobar2000, RadioDJ DSP plugins
Mcaster1TagStack
- Metadata composer + media library
- ICY 2.2 full editor, MySQL backend
Mcaster1CastIt
- Server stats monitor
- MariaDB analytics, libcurl polling