A Metronome with a Pulse
September 2026
Overview
The circle at the center of the screen pulses in time with each click, matching its intensity. I made an iPhone metronome with no ads, accounts, or settings screen.
I made it for my own tenor saxophone practice. Open the app and start it right away; the beat stays visible even when the clicks are hard to hear. I handled the planning, design, SwiftUI implementation, and click synthesis myself.
Controls: touch what you want to change
The controls are beat dots, a circle, and a tempo value. There are no menus or written instructions: touch what you want to change.
- ⓘ
- Open the support page.
- Beat dots
- Tap to add one beat, from one to seven beats per bar. Slide to add or remove beats.
- Circle
- Tap to start or stop. Press and hold, then tap along with a song to set the tempo.
- Tempo
- Drag to increase or decrease the tempo. Move slowly for finer adjustments. Tap − or + to change it by 1 BPM.
Pulse: matching the timing and intensity of each click
The circle’s pulse is timed to align with the click using the output latency reported by iOS. Bluetooth earphones can introduce a delay of roughly 0.1–0.3 seconds. The amount of expansion is proportional to the click’s volume: the first beat has a higher-pitched, louder click and a noticeably larger pulse.
The audio thread schedules each beat at sample-level precision. The timing calculation avoids cumulative error, keeping the drift within 0.5 samples even after an hour of continuous playback.
The scope and calculation conditions behind the 0.5-sample figure still need confirmation. It should not be read as a measure of when sound reaches the listener or of synchronization with the display.
Tap tempo: silence while you tap
Press and hold the circle to make it wobble like jelly. Tap along with a song or the tempo in your head: the circle dents where you touch it, wobbles, and springs back. Haptic feedback lets you feel the tempo.
The app deliberately stays silent while you tap. Playing a sound in response to each tap would introduce an audible delay over Bluetooth and overlap with the metronome’s clicks. When you stop tapping, clicks at the tempo you set begin almost inaudibly and fade up to their usual volume over six seconds.
Sound: choosing a pitch I can hear over the saxophone
The clicks are synthesized from sine waves, without recorded audio files. I built a comparison page and compared the sounds through the iPhone speaker three times while playing tenor saxophone. I chose 1875 Hz and 1250 Hz, 1.25 times the original frequencies. They sit above the range where the saxophone’s energy is strongest and below the range that tends to sound piercing.
Higher-pitched, longer sounds and versions with added harmonics were easier to hear. I still chose sounds that preserved a mellow, neutral electronic tone.
Keeping it simple: what I left out
I left out options that would make people hesitate. For each feature, I checked whether the app could work without it before removing it.
- Ads, tracking, and accounts
- I ruled these out from the start. The app does not initiate network requests.
- Settings screen
- Everything happens on one screen.
- Choice of tones
- Two sounds are enough: one for accented beats and one for unaccented beats. More options invite indecision.
- Volume slider
- The device’s volume buttons are enough.
- Light mode
- A single screen with a black background.
- Eight or more beats per bar
- Count 12/8 in four beats and 9/8 in three.
- Subdivisions (eighth notes, triplets, sixteenth notes)
- These are not essential to the app’s core function, but they are the first feature I would consider adding.
- Typing a tempo
- The −/+ buttons and dragging are enough.
Built in SwiftUI with no external libraries, the app runs on iPhones with iOS 17 or later. Its English name is No Ads Simplest Metronome. Full instructions and the privacy policy are on the support page.