macOS native music player — Swift/SwiftUI

aldiss a383a577ed feat: bundle slskd as managed subprocess for zero-config Soulseek 2 månader sedan
.copilot d7edf76351 Initial commit: MixBoard macOS music player 3 månader sedan
.github 80550cca69 feat: upload state indicators and playlist upload UX 3 månader sedan
.orchestra 82770e1e94 UI revamp: browse panel, download service, queue view, cloud browser, export updates, agent configs 3 månader sedan
.swiftpm d7edf76351 Initial commit: MixBoard macOS music player 3 månader sedan
.vscode 82770e1e94 UI revamp: browse panel, download service, queue view, cloud browser, export updates, agent configs 3 månader sedan
Assets.xcassets 82770e1e94 UI revamp: browse panel, download service, queue view, cloud browser, export updates, agent configs 3 månader sedan
MixBoard.xcodeproj a383a577ed feat: bundle slskd as managed subprocess for zero-config Soulseek 2 månader sedan
Sources a383a577ed feat: bundle slskd as managed subprocess for zero-config Soulseek 2 månader sedan
Tests 3f029f4e37 feat: migrate cloud browse from right panel to center content area 2 månader sedan
UITests 3f029f4e37 feat: migrate cloud browse from right panel to center content area 2 månader sedan
XCUITest 3f029f4e37 feat: migrate cloud browse from right panel to center content area 2 månader sedan
briefs 80550cca69 feat: upload state indicators and playlist upload UX 3 månader sedan
.gitignore 82770e1e94 UI revamp: browse panel, download service, queue view, cloud browser, export updates, agent configs 3 månader sedan
INSTRUCTIONS.md d7edf76351 Initial commit: MixBoard macOS music player 3 månader sedan
Package.swift d7edf76351 Initial commit: MixBoard macOS music player 3 månader sedan
README.md 86e3a0a2f2 Update README: add Chad Music setup, API key instructions, current features 3 månader sedan
SPEC.md d7edf76351 Initial commit: MixBoard macOS music player 3 månader sedan
design-system.md 80550cca69 feat: upload state indicators and playlist upload UX 3 månader sedan
pm-log.md 82770e1e94 UI revamp: browse panel, download service, queue view, cloud browser, export updates, agent configs 3 månader sedan
project.yml d7edf76351 Initial commit: MixBoard macOS music player 3 månader sedan

README.md

MixBoard

A native macOS music player built with Swift 5.9 and SwiftUI, targeting macOS 14+ (Sonoma). Play local files, stream from a Chad Music cloud server, analyze BPM and key, build playlists, and export to your DAW.

Features

Music Library

  • Import audio files (MP3, WAV, FLAC, AAC, AIFF, M4A, OGG Vorbis, and more)
  • Scan directories recursively
  • Search and filter by title, artist, album, genre, BPM, or key
  • Sort by any column
  • Playlist folders for organization

Cloud Streaming (Chad Music)

  • Browse your cloud library by artist, album, genre, year, publisher, country
  • Stream tracks directly — no download required
  • Album artwork from the server
  • Drag albums or tracks into local playlists
  • Lyrics fetching via LRCLIB

Audio Analysis

  • BPM Detection — Energy-based onset detection with autocorrelation (Accelerate framework)
  • Musical Key Detection — Chromagram analysis with Krumhansl-Kessler key profiles, Camelot wheel codes
  • Waveform Visualization — High-resolution waveform display with efficient downsampling

Playback

  • AVAudioEngine for local files, AVPlayer for cloud streaming
  • Interactive waveform with seek
  • 3-band EQ (Low / Mid / High)
  • Volume control, media key support
  • 14 retro skins

Playlist & Mix Building

  • Create playlists and organize in folders
  • Drag and reorder tracks
  • Crossfade durations between tracks
  • Per-track gain adjustment, start/end trimming
  • Cue points and markers (Intro, Outro, Drop, Breakdown, Verse, Chorus, etc.)

DAW Export

Format Extension Compatible With
Adobe Audition Session .sesx Adobe Audition
DAWproject .dawproject Bitwig Studio, Studio One, REAPER
Edit Decision List .edl Pro Tools, Audition, DaVinci Resolve
Cue Sheet .cue Audacity, foobar2000, CD burners
M3U Playlist .m3u Any media player

Requirements

  • macOS 14 (Sonoma) or later
  • Xcode 15+ (for building)
  • Swift 5.9+

Building

Option 1: Xcode (Recommended)

open MixBoard.xcodeproj

Select the MixBoard scheme and press ⌘R.

Option 2: xcodegen + Xcode

If you prefer to regenerate the Xcode project from project.yml:

brew install xcodegen   # if not installed
xcodegen generate
open MixBoard.xcodeproj

Option 3: Command Line

xcodebuild -scheme MixBoard -destination 'platform=macOS' build

Chad Music Setup

MixBoard can connect to a Chad Music server to stream your cloud music library.

1. Get your API key

Chad Music uses Telegram-based authentication. To obtain an API key:

  1. Open the Chad Music web UI (e.g., https://music.your-server.com)
  2. Log in via the Telegram login widget
  3. Once logged in, your session token is your API key — copy it from the browser's developer tools (Application → Cookies or Network tab → Authorization header)

Note: Ask the server admin if they have a simpler way to issue API keys, as the method may vary by deployment.

2. Configure in MixBoard

  1. Open MixBoard → Settings (⌘,)
  2. Go to the Chad Music tab
  3. Enter your Server URL (e.g., https://music.tailnet.ts.net)
  4. Enter your API key
  5. Click Test Connection to verify

The API key is stored locally via UserDefaults. The connection uses Bearer token authentication over HTTPS.

API Endpoints Used

Endpoint Purpose
GET /api/stats Library statistics, connection test
GET /api/cat/:category Browse by artist, album, genre, year, etc.
GET /api/cat/album Full album listing with metadata
GET /api/album/:id/tracks Track list with stream URLs

Project Structure

MixBoard/
├── Package.swift              # SPM package definition
├── project.yml                # xcodegen project config
├── Sources/
│   ├── MixBoardApp.swift      # App entry point
│   ├── Models/                # SwiftData models
│   ├── Services/              # Audio engine, BPM/key detection,
│   │                          # Chad Music API, streaming, lyrics
│   ├── ViewModels/            # Player and playlist view models
│   ├── Views/                 # SwiftUI views
│   ├── Export/                # DAW export formats
│   └── OGG/                   # OGG Vorbis decoder (C bridge)
└── Tests/                     # Unit, integration, E2E tests

Running Tests

xcodebuild test -scheme MixBoard -destination 'platform=macOS'

License

MIT