Whistle Synth

Hacker News Top 产品

摘要

这款通过口哨声控制合成器的Mac应用Whistle Synth现已在App Store免费开源发布,通过AI辅助优化,降低了延迟并提升了音质。

暂无内容
查看原文
查看缓存全文

缓存时间: 2026/09/07 15:31

# 哨声合成器 Mac 应用 来源:https://www.jefftk.com/p/whistle-synth-mac-app 我开发的这款利用口哨声控制合成器的程序现已登陆 Mac 应用商店(https://apps.apple.com/us/app/whistle-synth/id6807012579): [](https://www.jefftk.com/whistle-synth-in-app-store-big.png) 完全免费、无广告且开源(https://github.com/jeffkaufman/whistle-synth)。如果你拥有 Mac 又喜欢吹口哨,不妨试试?你需要外置麦克风、耳机(有线,以最小化延迟(https://www.benkuhn.net/wireless/)),或两者兼备;我推荐前者。 [](https://www.jefftk.com/whistle-synth-play-tab-big.png) 身处这个 AI 助手时代(https://www.jefftk.com/p/revived-lightweight-transit-predictions-page),我让 Claude 对实现进行了大刀阔斧的重构,现在它延迟更低、不再卡顿,并且有更多音色可供选择。此外如前所述,它现在是 Mac 原生应用了。 降低延迟是最简单快捷的一步:我把麦克风对准耳机,让 Claude 帮我把延迟降下来。这给了它测量往返延迟所需的一切条件,它尝试了几种不同方法后,最终发现需要使用回调 API 并进行一些其他调整(https://github.com/jeffkaufman/whistle-synth/commit/fe9e82c08ccab84a6b210992837a5f45923265ff)。这使音频往返时间(不包括音高检测和合成)从 80 毫秒降到了 5 毫秒。 解决卡顿问题的关键是将逻辑拆分为一个检测器和一个合成器。颇具讽刺意味的是,这次重构让我们回到了我最初的设计思路(https://www.jefftk.com/p/real-time-bass-whistling),也就是五年前我因为一个听起来更好但后来被证明非常受限的奇怪想法(https://www.jefftk.com/p/better-whistle-synth)而放弃的方案。 新系统下编写音色变得容易多了。或者,至少我假设是这样,尽管完全是 Claude 在编写。我让它构思各种类型的贝斯音色,写出原型,然后我们一起反复迭代直到我满意为止。这包括一个无八度贝斯(https://www.jefftk.com/p/wrapping-bass-implementation),音高越高,它就越缓慢地改变谐波混合,从而保持感知到的八度不变。 我也终于得到了一个让我满意的高音音色。这是我从一开始就努力尝试的东西,但我讨厌我尝试过的所有效果。这对 Claude 来说也更难:虽然它原型设计的贝斯音色有 70% 我都喜欢,但高音音色至今只有一个值得一玩。它是一个拉杆风琴(Hammond(https://en.wikipedia.org/wiki/Hammond_organ))。我们的耳朵在高音域确实要挑剔得多。还有一个因素是贝斯声部更简单(更不容易出错),而且音准能更快被识别出来(在别人注意到之前,它能更快地稳定在音符上)。 *youtube (https://www.youtube.com/v/_1-In1pITu0)* 我想添加更多高音音色,但主要障碍在于弄清楚什么样的音色(a)听起来不错并且(b)Claude 能够实现。我花了很长时间试图让它写出好的长笛音色,包括给它真实长笛的声音样本作为参考,但即使它在物理建模上花了很长时间,也没有得到让我满意的效果。我还尝试了各种合成器领奏音色和电钢琴(Rhodes(https://en.wikipedia.org/wiki/Rhodes_piano))音色,但都没有成功。 当我思考为什么拉杆风琴音色听起来不错时,我觉得很大一部分原因是旋转扬声器(Leslie(https://en.wikipedia.org/wiki/Leslie_speaker))为长音增添了许多通常会缺失的生动感。为了寻找类似的效果,我还让 Claude 制作了一个手风琴音色,虽然还不错,但我仍然不太满意。 我还增加了一个设置,让它播放比你口哨声低五度的音(D -> G),这意味着你的口哨声会填充三次谐波的倍数。这个想法我来自 Ugo Conti(https://www.jefftk.com/p/ugo-contis-whistle-controlled-synthesizer),令人惊讶的是,只要音量足够大,你的大脑能非常快地适应这种控制方式。这让你可以在原本不适合你音域的调子上吹奏旋律。 我以前从未通过 Mac 应用商店分发过应用,部分原因是 Apple 著名的严格审核流程。我决定看看 Claude 能否引导我完成整个流程。但在此之前,我需要一个图标。我让 Gemini 来制作一个,经过几次后续提示后得到了: [](https://www.jefftk.com/gemini-draft-whistle-synth-icon-too-busy-big.jpg) 作为这个创意的表达还不算糟,但确实太花哨了。我让它尝试做得更简洁一些: [](https://www.jefftk.com/gemini-simplified-whistle-synth-icon-big.jpg) 然后我让 Claude 用代码(https://github.com/jeffkaufman/whistle-synth/blob/master/mac/tools/make-icon.swift)复制这个设计,该代码可以生成各种尺寸和细节递减的图标。这对 Claude 来说非常困难,我需要大量帮助它。它始终没能完全做对,我还需要稍微简化一些,但我觉得已经足够好了: [](https://www.jefftk.com/final-whistle-synth-icon-big.png) 在 128x128 尺寸时,显示内容失去了波形: [](https://www.jefftk.com/final-whistle-synth-icon-128-big.png) 在 32x32 尺寸时,它失去了控制元素,只留下一个亮绿色哨子的印象: [](https://www.jefftk.com/final-whistle-synth-icon-32-big.png) 将它上架应用商店需要支付开发者会员费(我显然是比以前更舍得花钱了)并验证身份。我没注意到,但 Apple 将我的身份证姓氏读成了“Kaufhan”。我需要联系 Apple 支持,但他们修正了这个问题。Claude 引导我完成了剩下的流程,包括截图和制作演示视频: *youtube (https://www.youtube.com/v/MXMyoyQ4hg4)* 这是 AI 作为补充工具的绝佳例证:如果所有事情都需要我自己写,我可能永远都搞不定。我们能够协作完成一些东西,它比手写的合成器听起来好得多,功能更强大,而且可以从应用商店安装。我要充分利用这个窗口期,趁着它足够好用能帮上大忙,但又不至于好到让我不再有任何可贡献的空间。

相似文章

OpenWhispr iOS 版

Product Hunt

OpenWhispr 推出 iOS 应用,提供 100% 开源的设备端 AI 语音转文字功能,本地运行,无需账户、订阅或使用限制。

Coddo 出品的 Whisper Island

Product Hunt

Coddo 出品的 Whisper Island 是一款 macOS 应用,可将语音转录功能直接集成于 Mac 的刘海区域。

Whistle

Product Hunt

Whistle 是一款 AI 驱动的健身教练,提供个性化锻炼计划。