{"slug": "whistle-synth", "title": "Whistle Synth", "summary": "Jeff Kaufman released Whistle Synth 1.0 on the Mac App Store on September 1, 2026, a free, open-source app that turns whistling into synthesized bass and treble sounds, with Claude AI assisting in the implementation to reduce audio round-trip latency from 80ms to 5ms and add new voices. The app is available for macOS and requires an external mic and wired headphones for optimal performance.", "body_md": "|\nSeptember 1st, 2026 |\n,\n|\n\n[available in the Mac App Store](https://apps.apple.com/us/app/whistle-synth/id6807012579):\n\nIt's free, no ads, and [open source](https://github.com/jeffkaufman/whistle-synth).\nIf you have a mac and like to whistle, give it a try? You need an\nexternal mic, headphones ([wired, to minimize\nlatency](https://www.benkuhn.net/wireless/)), or both; I recommend the former.\n\nLiving in this [age\nof genies](https://www.jefftk.com/p/revived-lightweight-transit-predictions-page) I've had Claude heavily redo the implementation, and it\nis lower latency, no longer stutters, and has more voices to choose\nfrom. Plus, as above, it's now a Mac App.\n\nLatency was the easiest and fastest: I pointed the mic into the\nheadphones and asked Claude to bring the latency down. This gave it\neverything it needed to measure round trip latency, and it tried a few\ndifferent things before figuring out that it needed the [callback\nAPI and a few other tweaks](https://github.com/jeffkaufman/whistle-synth/commit/fe9e82c08ccab84a6b210992837a5f45923265ff). This got audio rount trip time\n(ignoring pitch detection and synthesis) down from 80ms to 5ms.\n\nFixing the stutters was a matter of splitting\nup the logic into a detector that gave instructions to a synth.\nIronically, this refactor brings us back to how I [originally\ndesigned it](https://www.jefftk.com/p/real-time-bass-whistling) before throwing that away five years ago for [a weird idea](https://www.jefftk.com/p/better-whistle-synth)\nthat did sound better but turned out to be very limiting.\n\nWith the new system voices were a lot easier to write. Or, at least,\nI assume they were, though Claude did all the writing. I had it\nbrainstorm various kinds of bass, code up prototypes, and then we\niterated together until I was happy. This included an [octaveless\nbass](https://www.jefftk.com/p/wrapping-bass-implementation), where as you go higher it slowly changes the harmonic mix to\nkeep the perceived octave constant.\n\nI also finally got a treble voice I was happy enough with. This has\nbeen something I've worked at since the beginning, and I've hated\neverything I've tried. This was also harder for Claude: while I liked\n70% of the bass voices it prototyped, I've still only ended up with\none treble voice that's worth playing. It's a drawbar ([Hammond](https://en.wikipedia.org/wiki/Hammond_organ)) organ.\nOur ears are just so much more discerning at higher pitches. There's\nalso some factor of bass lines being simpler (harder to screw up) plus\ntuning registering more quickly (less time to fully land on the note\nbefore someone notices).\n\n[youtube](https://www.youtube.com/v/_1-In1pITu0)\nI would like to add more treble voices, but the main blocker has been\nfiguring out what kinds of voices would (a) sound ok and (b) be\nimplementable by claude. I spent a long time trying to get it to\nwrite a good flute sound, including giving it examples of a real\nflute's sound, but even after it spent a long time on physical\nmodeling it never got anything I was happy with. I also tried various\nsynth\nleads and a tine piano ([Rhodes](https://en.wikipedia.org/wiki/Rhodes_piano)) without\nsuccess.\n\nWhen I think about why the drawbar sounds ok, I think a lot of it is\nthat the rotating speaker ([Leslie](https://en.wikipedia.org/wiki/Leslie_speaker)) adds a\nlot of life that would normally be missing for a sustained note.\nThinking about what might be similar I've also had Claude make an\naccordion sound, which is decent but I'm not yet happy enough with.\n\nI also added a setting where it plays a fifth down from where you're\nwhistling (D -> G) which means your whistle fills in a multiple of the\nthird harmonic. This is an idea I got from [Ugo\nConti](https://www.jefftk.com/p/ugo-contis-whistle-controlled-synthesizer), and it's amazing how quickly your brain gets used to\ncontrolling the sound (as long as you have it loud enough).\nThis lets you whistle tunes in keys that would otherwise be a poor fit\nfor your range.\n\nI'd never distributed something through the Mac App Store before, partly because Apple's review process is famously fussy. I decided to see if Claude could walk me through the process. Before I could do that, though, I needed an icon. I asked Gemini to make one, and after a couple follow-up prompts got:\n\nThis is not terrible as a representation of the idea, but is really very busy. I had it give a go at something much simpler:\n\nThen I had Claude replicate this with [code](https://github.com/jeffkaufman/whistle-synth/blob/master/mac/tools/make-icon.swift)\nthat made icons of various sizes and decreasing detail. This was\nvery hard for Claude, and I needed to help it a lot. It never got it\nquite right, and I needed to simplify it a little, but I think it's\ngood enough:\n\nAt 128x128 the display loses its wave:\n\nAnd at 32x32 it loses the controls and becomes just an impression of a garish green whistle:\n\nGetting it on the App Store required paying for a developer membership (I'm apparently less cheap than I was) and verifying my identity. I didn't notice, but Apple read my ID having the last name \"Kaufhan\". I needed to talk with Apple Support, but they were able to fix it. Claude walked me through the rest of the process, including taking screenshots and making a demo video:\n\n[youtube](https://www.youtube.com/v/MXMyoyQ4hg4)This is a good example of AI as a complement: I was never going to get around to doing any of this if I needed to write it all myself. We were able to work together to make something that sounds a lot better than my hand-coded synth, is a lot more versatile, and can be installed from the App Store. I'm going to make the most of this window where it's good enough to be very helpful but not so much that there's nothing left for me to add.\n\nComment via: [facebook](https://www.facebook.com/jefftk/posts/pfbid02vx9nwbNjQw21mFYVKH3xmAGQBKjidd8C1H5hPZUGcXNHfkGRz84is8C8yaYwWcMzl), [lesswrong](https://lesswrong.com/posts/vtBKZHqM2vxxXAkme), [mastodon](https://mastodon.mit.edu/@jefftk/117198604124930149), [bluesky](https://bsky.app/profile/jefftk.com/post/3muiof7z7322w)", "url": "https://wpnews.pro/news/whistle-synth", "canonical_source": "https://www.jefftk.com/p/whistle-synth-mac-app", "published_at": "2026-09-04 09:44:45+00:00", "updated_at": "2026-09-04 10:23:56.944313+00:00", "lang": "en", "topics": ["ai-tools", "ai-products", "generative-ai"], "entities": ["Jeff Kaufman", "Whistle Synth", "Claude", "Mac App Store", "Hammond organ", "Leslie speaker", "Ugo Conti"], "alternates": {"html": "https://wpnews.pro/news/whistle-synth", "markdown": "https://wpnews.pro/news/whistle-synth.md", "text": "https://wpnews.pro/news/whistle-synth.txt", "jsonld": "https://wpnews.pro/news/whistle-synth.jsonld"}}