~ Sezpad

Build Journal · Best in the Biz (Nikhil + Mishal) · TinkerHub Useless Projects, Sept 2026

Why we even started this

So basically, I was watching this Krish Shah video where he's messing around with the MacBook trackpad as some kind of creative input device. And I'm sitting there thinking wait, this thing can be an instrument no?

And the name Sezpad comes from "Sez on the Beat". That was the first producer I actually knew by name when I started listening to DHH. Everyone knew the rapper, but Sez was the one whose name stuck in my head. So the whole thing is a small tribute to that.

Hour 0: The Idea

"What if my MacBook trackpad was a Fisher-Price xylophone for adults?"

That was it. That was the pitch. 5 zones, each one plays a sound, fires a haptic pulse, and lights up the screen. Useless? Yes. Beautiful? Also yes.

Sezpad main UI

The final build — 5 zones, sidebar with live pressure, Sound/Haptics toggles.

1
Zone1
2
Zone2
3
Zone3
4
Zone4
5 / SPACE — Zone5
↑ try clicking these, or press 1–5 on your keyboard

Hour 1: First wall — no raw trackpad data

BUG Turns out macOS doesn't give raw finger coordinates to regular apps. Public API (NSEvent) only gives you the cursor position — not where your finger actually is on the trackpad.

Spent almost an hour reading about some private framework called MultitouchSupport that does give per-finger data. But then it needs Input Monitoring permission, keeps breaking on macOS updates, and Apple will never allow it on the App Store.

PIVOT Okay fine, use cursor position as a proxy. Fullscreen mode, cursor becomes the finger. Not perfect, but it works.

Sezpad data flow diagram

How a keypress or touch becomes sound + vibration + a lit-up zone.

Hour 3: The sandbox scene

BUG "Where did my sounds go?" The app was supposed to write to ~/Library/Application Support/Sezpad/Sounds/, but the folder was just not there. Terminal also saying "No such file or directory." Full tension.

An hour of digging later — turns out App Sandbox silently redirects everything to ~/Library/Containers/com.dev.instruuu.Sezpad/Data/.... The folder was there only, just hiding inside some deep path we didn't know about.

FIX Just bundle the sounds directly inside the app. No more Terminal, no more sandbox drama, done.

Hour 6: The Xcode massacre

BUG "Cannot find 'Zone' in scope." All 12 Swift files were compiling fine an hour back. Suddenly they can't see each other.

Files had somehow ended up in Copy Bundle Resources instead of Compile Sources. Basically Xcode was trying to ship our source code like it's some JPEG image.

FIX Drag every .swift file back into Compile Sources. Rebuild. Sorted.

Repo structure

Where everything lives — Models (rulebook), Services (workers), Views (dashboard).

Hour 8: Adding the keyboard layer

The click-and-hold thing looks mad awkward on stage. You're dragging the cursor around hoping to hit the right zone while also trying to talk. Nobody's going to enjoy that. Thanks to the feedback from the TinkerHub college team members.

FIX Added a keyboard layer. 1 through 5 trigger zones directly. space, ← ↑ → ↓ also work. Now you can drum on the keys like a MIDI pad, screen lights up, everything sings. Much better.

Sezpad UI detail 1

Zone lighting up in real time as a key is pressed.

Sezpad UI detail 2

Sidebar showing the active zone, pressure bar, and note label.

Hour 11: The win

Tapped 1 2 3 4 5 in rhythm. Each zone lit up. Sound played. Haptic fired.

It was stupid. It was beautiful. Exactly what we promised.

Sezpad final state

The final build, mid-performance.

Watch it in action

20-second screen capture — tapping 1–5 in rhythm, zones lighting up.

What we learned

Who did what