e↗entertrainment
← All project stories
Sound & electronics / PROJECT STORY

AA Music

A standalone player and mixer with stems, groove, timing and exploratory audio processing. Explore its recorded development and native interface.

Native music application6 MIN READDEVELOPMENT ARCHIVE · OCT 2026
AA Music mixing room · build 70 UI fixture render. Real SwiftUI controls with synthetic levels; not a live song capture.
AA Music mixing room · build 70 UI fixture render. Real SwiftUI controls with synthetic levels; not a live song capture. Open full size ↗
AA Music · actual installed Groove / Timing interface, archived version 0.32.0.
AA Music · actual installed Groove / Timing interface, archived version 0.32.0. Open full size ↗
Development profile compiled from project source and retained records in October 2026. Dates and test results describe those records; they do not imply a new build, live acceptance test or public release.

Biography

AA Music began on 10 October 2026 as a working prototype outside AssistantApp with one job: make a YouTube song into a local album. The Python service runs yt-dlp for audio, MusicBrainz for release candidates and track order, and a conservative matcher that requires title, artist, duration and version agreement before it will call a video the right recording. Uncertain matches stay in their album slots with a Choose match button; missing songs are never hidden by shifting later tracks up. A Chrome extension, YouTube Quiet, hands links to the installed app over native messaging. That first release had 14 Python tests and a live acceptance on Stevie Wonder's "Creepin'" with all ten tracks of Fulfillingness' First Finale.

The project then moved fast through twenty-plus documented versions, each with its own validation doc. The turning point was 0.7: a native SwiftUI stem mixer using AssistantApp's ResearchControls sliders and meters, with separation by the same separate_helper.py AssistantApp's Acoustician uses, unchanged, loading the cached htdemucs_6s model in an existing virtual environment. The README is careful: these are estimated stems, piano is approximate, synths may land in Other, and it is not every-instrument isolation.

From there the native app grew into a listening instrument. 0.8 added a post-EQ spectrum, Imager's phase scope and SpectralProcessor's live EQ and HSEQ harmonic unit. 0.10 cached stems by source hash and model revision with a 2 GiB budget; 0.11 started separation when a track is selected and crossfaded from the original into six stems on one host clock without stopping playback; 0.12 drew real waveforms, added per-stem EQ and up to three AU inserts per stem, honestly labelling VST3 as unavailable because AssistantApp has no VST host. 0.14 ported Acoustician's beat grid and used a multichannel WSOLA adaptation of AssistantApp's pitch-preserving warp to cue a second song on the beat. 0.15 measured and compensated the HSEQ's 2,047-frame latency so the stereo-to-stems handoff aligns to the sample. 0.16 layered a second song's chosen instruments continuously on the leader's beat map, twelve channels sharing WSOLA grain choices; 0.17 to 0.19 added tap tempo, meter, downbeat capture matched to the audio's own transients, and a heartbeat pulse that follows the real playhead. 0.18's "Q" chooses which of two songs is the steady tempo master. 0.20 to 0.25 built a permanent analysis sidecar format on Swift-CBOR-LD, exact WavPack stem archives, chunked verified restore, and portable sessions with plugin versions recorded.

The Vocal Lab arrived at 0.42 and is where AssistantApp's audio research is most visible. 0.43 shipped de-reverberation with a blind RT60 estimate and a statistical late-reverb model (about 20 dB of tail removed for at most 1 dB on notes, measured at three RT60s); it rejected AssistantApp's own Unveil engine after finding a +6 dB bug and fixing it upstream. 0.44 ran Seed-VC singing voice conversion out of process in an isolated environment, consent-gated, with measured speaker similarity and a documented octave-slip cause. 0.45 added pitch correction (YIN, note plateaus, Kalman and RTS centring, song tuning and key, TD-PSOLA from SemanticCompute), honest that real vocals reach about half the synthetic accuracy. 0.46 added saved vocal versions restored from exact archives, a live-device acceptance mode that measures actual RMS through the production graph, and compact instrument modules with real metering. The docs for 0.47 and 0.48 were not read in this audit; the installed plist is the only evidence for those versions.

A concrete journey: open AA Music, paste a YouTube link, choose Add song & album. The seed song plays while the album assembles. Click the track later; the waveform shows beat ticks and a BPM. Open Mix stems; the original crossfades into six instruments. Double-click Vocals for its page: EQ, HSEQ, inserts, Vocal Lab. Choose de-reverb, audition original against processed, keep it. Open Layer library, pick another downloaded song, enable drums and bass, press play on the next bar. Tap the pulse on beat one to correct the grid. Save the session.

The audience is the author as a listener and producer, and anyone studying how stem separation, beat tracking and vocal processing behave on real recordings. This is not distributed: the Mac build is ad-hoc signed for Apple Silicon, the iOS build is a development install, and downloads are for recordings the user has permission to save.

The project is unusually well evidenced. Every version has a self-test command (--mixer-self-test, --continuity-self-test, --beat-mix-self-test, --stem-layer-self-test, --tap-tempo-self-test, --handoff-audio-self-test, --live-vocal-check), JSON receipts under test-output/, and real app renders of its SwiftUI views captured by those tests. The retained images on this page show the actual interface.

Features a visitor can see

  • Album import and ordering from a link or search; artwork from Cover Art Archive; full-album and soundtrack discovery. (Authored; yt-dlp, MusicBrainz, Apple catalogue metadata are external.)
  • Six-stem live mixer with per-instrument EQ, HSEQ, AU inserts, presets, meters. (Authored UI; separation model is Demucs via the Acoustician helper; HSEQ and scope are AssistantApp packages.)
  • Beat analysis, cue-as-next on the bar, continuous stem layers, Q tempo authority, tap tempo and downbeat capture. (Authored; beat grid ported from Acoustician; warp adapted from AssistantApp.)
  • Vocal Lab: de-reverb, pitch correction, singing conversion, lead/harmony separation prototype, saved versions. (Authored except Seed-VC and SemanticCompute families.)
  • Exact and compact stem archives, analysis sidecars, portable sessions. (Authored on Swift-CBOR-LD and the Codecs backend.)
  • iOS companion with TLS pairing file, offline albums, lock-screen transport. (Authored.)

Technical foundations

Python 3.9+ service bound to 127.0.0.1 with a per-process token; yt-dlp, FFmpeg/ffprobe; Swift Package in macos/ (AppKit/WebKit shell, SwiftUI mixer, VocalDSP, AcousticianDSP, ArchiveFormat, ArchiveTool); AVAudioEngine, AVAudioUnitTimePitch, AU/AUv3 hosting; PyTorch MPS for Demucs in the project archive; Seed-VC in the project archive with weights on external storage; local packages linked by path: ResearchControls, SpectralProcessor, Imager, Kalman (several products), FIRFilters, RemezEngine, NoiseColourDSP/Denoise, CBORLD, vendored SemanticCompute. Chrome native-messaging bridge com.aa_music.player. iOS: SwiftUI/AVFoundation, XcodeGen project.

Maturity

FeatureState
Installed app0.48.1 (83), macOS 26 floor, ad-hoc signed
Backend tests14 (0.1) → 47 (0.8) → 61 (0.20) Python tests; browser smoke tests
Native self-testsmixer, effects, continuity, beat-mix, stem-layer, tap-tempo, tempo-authority, handoff-audio, stem-detail, live-vocal-check, pitch-report, voices-report
Live acceptanceAlbum import 10 Oct 2026 (Creepin'); full-track separation cached 162.4 s audio in 20.93 s (0.10); live-device vocal RMS check build 64 (0.46.2)
Vocal Lab qualityDe-reverb measured; conversion similarity 0.77 vs control 0.62 on a full song; pitch correction "about half way" on real vocals; polyphonic voices prototype only
iOS companionBuilt and installed on a device for development; physical playback/AirPlay "need verification"
ReleaseNot distributed; not notarized; no store

Roadmap, limits, FAQs

Roadmap (documented): de-esser; polyphonic lead/harmony separation (prototype); SC batch 2 masks; harmonic mixing research ; media library metadata plan; possible AssistantApp adapter over the import API. Limits: downloads depend on YouTube availability and are for permitted recordings; stems are estimates; beat markers are not downbeats or phrase structure; tempo matching applies to the transition, not a continuous lock; AU only, no VST3; iOS has no stem playback; macOS 26 floor; single-user token is not an authorisation layer. FAQ: Does it stream? No; it downloads a local copy and plays from disk. Is the separation yours? The helper and model are the Acoustician/Demucs path from AssistantApp, reused unchanged; the live mixing, caching, archives and vocal tools are authored. Can I run it? Not distributed. Why Python and Swift? The service and matching are Python; everything that touches audio in real time is native Swift. What is "Q"? The control that lets the steadier of two songs own the shared tempo while both keep pitch.

Explore the connections.

Browse all project stories ↗