Sasi Moorthy
all projects

STUDIO 74

now recording: Spades Audio

a macOS utility by Sasi (engineering, Vienna) & Karthik (design, Melbourne)

🎧 this room makes sound — only when you press things
1/4sam is one audio sample. a song needs 48,000 of him. per second.
2/4macOS: “everyone exits through the same speaker. rules are rules.”
3/4but the meeting is on the headphones and the game is not.
4/4spades: “then we become a device.” (this is legal. barely.)

THE WALL

how sam gets home

drawn on the first napkin we didn't lose

our code is a guest in Apple's house (coreaudiod). crash here → the WHOLE MAC goes silent.
the driver is dumb ON PURPOSE. all the smart stuff lives outside, in the engine.
the app & the AI only pass notes (XPC). nobody touches sam.
mind the deadline

⏱ 10.7 ms

DO NOT BE LATE

banned on the audio thread: locks · malloc · file IO · Swift/ObjC · surprises.
miss the deadline once → everyone hears it. there are no good frames to drop in audio.

do not press

glitches caused:

this button blocks the thread for 90 ms. that's what a lock does. press it and hear the crime.

THE CLOCK ARGUMENT

press play to hear two clocks argue. flip the switch to hear the engine's whole job.

every clock lies a little. two “48 kHz” devices disagree by ~1 sample every few seconds → clicks.
speaker groups = several outputs pretending to be one. every member is one more drummer to keep honest.

how spades keeps them in time → see THE SAFE.

THE BOOTHS

the session players are robots

driver-bot

worktree/driver

C++ only. RT rules. no UI talk.

engine-bot

worktree/engine

DSP & clocks. stay in the booth.

app-bot

worktree/app

SwiftUI only. don't touch the driver.

yolo-bot

yolo-bot — “fixes” things across booths. MUTED, week 1.

research · architecture · review — everything passes this desk. the thinking stays human. — s.

house rules (the robots inherit these)

#1never allocate on the audio thread
#2hardware test before any merge
#3stay in your worktree
#4when unsure, stop & ask the human

every mistake i caught twice got written down once. the robots don't get tired; the rulebook gets wise.

LIVE ROOM

capacity: 1 build

now testing

driver · take 14

engine build

take 9 · waiting…

app build

take 23 · waiting…

three worktrees build in parallel. then everything queues — one Mac, one coreaudiod, one pair of ears.
CI can't hear clicks. i can. midnight, airpods ⇄ projector, again.

THE SAFE

trade secrets inside (really)

THE RELEASE SHELF

out now-ish

our devices, beside the real ones. the system can't tell.
our devices, beside the real ones. the system can't tell.
speaker groups — the clock argument, productized.
speaker groups — the clock argument, productized.
a Work focus fires → zoom to airpods, everything fun muted till five.
a Work focus fires → zoom to airpods, everything fun muted till five.
the popover, living in the menu bar
the studio radio
Drums.app
Bass.app
Chime.app

the pitch, as sound: three apps, three sliders. mix them. macOS won't let you do this — spades will.

core built · early users listening · one engineer, nights & weekends

engineered in Vienna · designed in Melbourne · no samples were harmed