Swift, Metal and a bit of Rust
About 39,000 lines of Swift (SwiftUI, AppKit where needed, AVFoundation), a thousand lines of Metal shaders through MetalPetal, and ntsc-rs in Rust for the VHS pass. Apple silicon only, for now.
A native Mac app, built as an instrument first. What it's made of, and where it could go.
About 39,000 lines of Swift (SwiftUI, AppKit where needed, AVFoundation), a thousand lines of Metal shaders through MetalPetal, and ntsc-rs in Rust for the VHS pass. Apple silicon only, for now.
Not the code: the binary is under 20 MB. The rest is four reels of real VHS noise the analogue compositor samples as it goes, so no two passes look alike.
Its own analysis, offline: an onset curve, a tempo fitted to the kicks, a downbeat vote with a backbeat filter that keeps snares off the one. Tap tempo and nudges for the rest.
Every tape gets a 720p HEVC proxy with a keyframe every half second, so cutting between dozens of long files on every beat stays smooth. Export reads the originals.
One Cloudflare Worker with D1 and R2. Mailed sign-ups behind a bot check. Updates are a signed manifest the app verifies with a key it carries. No account, nothing sent but a version ping and the feedback you choose.
Curious, or want to help? info@beatknife.app