TemperPlayer
A native macOS music player with Zig decoding and DSP.
Why I built it
I wanted a player that treated signal analysis as part of listening: useful meters, a compact menu-bar surface, and pitch control that did not smear transients or collapse the stereo image.
The approach
The app combines a responsive native interface with a deliberately small low-level audio boundary. Apple frameworks cover the application audio graph and common compressed formats, while the custom core owns the DSP where I wanted exact control.
What I built
I built the SwiftUI application, SQLite-backed library, queue and playlist flows, menu-bar player, waveform, spectrogram, and multiband goniometer. In Zig, I implemented FLAC/WAV decoding, mastering measurements, and an identity-phase-locked phase vocoder with transient resets and Kaiser-windowed sinc resampling.
Engineering focus
Swift/Zig C ABI design; realtime-safe analysis; bounded visual queues; sample-rate correctness; track-switch lifecycle; stereo phase correlation; native macOS packaging.
See it
Next
Finish hardening the current library and playback changes, test on more Macs and audio devices, and add formats only when their playback path is measured and reliable.