Cadence is a classic PHP theme with theme.json, built on DEV3's shared theme core and the DEV3 Theme Toolkit plugin. The theme owns presentation, the episode, release and tour templates, the audio layer and its 3D preset. The toolkit owns functionality: the episode, release, tour date, band and press quote post types, the Audio Player and Event List widgets with block twins, the DEV3 Motion controls, WooCommerce extras and the demo importer.
Key design decisions
- One player, everywhere. Only one audio plays at a time. When its player scrolls away, a mini dock takes over with play/pause, ±15 seconds and a seek bar, and it remembers the position across pages so a listener can open the tour dates without losing their place.
- Chapters and transcripts as plain fields. Chapters are typed one per line as a timestamp and a title and become seek buttons; the transcript is plain text with speaker labels in a native disclosure. If a trailer file is shorter than the stated duration, chapters map proportionally.
- Audio-reactive, but never silent. Levels are published as CSS variables that drive glows, equalisers, kickers and the vinyl. Self-hosted audio is analysed live; audio on another host follows its waveform instead, so cross-origin files still play.
- Tour dates search engines can read. Each date carries venue, lineup, status and tickets, and the tour widget can print MusicEvent structured data with performers and ticket offers. Tickets are either WooCommerce products or external links.
- A small 3D record. The vinyl spins at 33⅓ rpm and fires sound rings while music plays. It loads lazily near the viewport, pauses offscreen and falls back to a rendered poster.
- Original demo audio. Every preview clip, episode clip and visualiser video was synthesized offline for the theme, with no samples, so the demo can be shipped and shown freely.