Whistle Synth 是一款 macOS 应用程序,可将吹口哨实时转换为合成器声音。用户对着外接麦克风或耳机吹口哨(建议使用有线耳机以最小化延迟),并通过选定的合成器音色听到对应音符的播放。该应用通过不同时使用 Mac 内置麦克风和扬声器来避免反馈问题。
该项目最初几年前是一个命令行工具,但最近一次由 AI Claude 辅助的改版带来了显著改进。Kaufman 要求 Claude 降低延迟,这涉及将麦克风对准耳机来测量往返时间,并尝试音频回调 API。这项工作将音频往返延迟从大约 80 毫秒降至仅 5 毫秒,使乐器感觉灵敏。Claude 还帮助重构代码,将音高检测与合成分离,消除了困扰早期版本的卡顿问题。
音色开发是另一个重点。Claude 原型化了许多贝斯音色,最终形成一个无八度贝斯音色,随着音高上升会调整其谐波混合以保持感知八度恒定。对于高音范围,Kaufman 选择了抽头 Hammond 风琴音色,指出旋转的 Leslie 扬声器为持续音符增添了活力——这是用更简单的波形更难实现的品质。App Store 列表确认该应用提供十二种音色:Bass、Sub Bass、Octaveless、Reese、808、Pluck、FM、FM Sub、Grind、Square、Drawbar 和 Drawbar Hi,外加一个用于输入电平和门控的 Passthrough。

此图像对应文章列出的十二种音色(Bass、Sub Bass、Octaveless、Reese、808、Pluck、FM、FM Sub、Grind、Square、Drawbar、Drawbar Hi、Passthrough)以及音色开发部分。
额外的演奏功能包括一个“低五度”选项,将每个音色向下移动一个纯音程(吹 D 听起来像 G),一个在吹口哨停止后保持音符的延音锁,以及通过 M 键实现的即时静音。音色编辑器暴露了脉冲宽度、光谱倾斜和共振等参数,允许用户通过调整旋钮来学习合成。

该标签说明了文章对额外演奏功能的描述,如“低五度”选项、延音锁、通过 M 键即时静音以及可调整的音色参数。
AI 辅助超出了代码范围。Gemini 生成了初始应用图标,Claude 随后将其细化为多种尺寸的代码生成图标。将应用引入 Mac App Store 需要开发者会员身份和身份验证;Apple 最初将 Kaufman 的姓氏误读为“Kaufhan”,但 Apple Support 纠正了该错误。Claude 引导 Kaufman 完成提交过程,包括准备截图和演示视频。

文章描述了该应用的 App Store 发布、Apple 最初将 Kaufman 的姓氏误读为“Kaufhan”,以及通过 Apple Support 的纠正;此图像在视觉上代表该列表。
在底层,Mac 应用使用重写的引擎(zeros2.c),拆分为 pitch.c、synth.c 和 engine.c,用 CoreAudio 替换 PortAudio 并提供立体声输出。源代码在 GitHub 上公开,显示一个基于过零的音高检测器,向合成器提供 PitchHint 结构,合成器从不直接读取麦克风输入。
隐私是核心原则:该应用在本地处理音频,不收集数据,不执行网络活动,正如其 App Store 隐私部分所述。