Whistle Synth es una aplicación de macOS que convierte el silbido en sonido de sintetizador en tiempo real. Los usuarios silban en un micrófono externo o auriculares (se recomiendan auriculares con cable para minimizar la latencia) y escuchan la nota correspondiente reproducida a través de una voz de sintetizador seleccionada. La aplicación evita retroalimentación al no usar el micrófono y los altavoces integrados del Mac juntos.

El proyecto comenzó hace años como una herramienta de línea de comandos, pero una reciente revisión asistida por la IA Claude trajo mejoras significativas. Kaufman le pidió a Claude que redujera la latencia, lo que implicó medir el tiempo de ida y vuelta apuntando el micrófono hacia los auriculares y experimentando con la API de callback de audio. Este esfuerzo redujo la latencia de ida y vuelta de audio de aproximadamente 80 ms a solo 5 ms, haciendo que el instrumento se sienta responsive. Claude también ayudó a refactorizar el código para separar la detección de pitch de la síntesis, eliminando los tartamudeos que habían aquejado versiones anteriores.

El desarrollo de voces fue otro enfoque. Claude prototipó numerosos sonidos de bajo, lo que resultó en una voz de bajo sin octava que desplaza su mezcla armónica para mantener la octava percibida constante a medida que aumenta el tono. Para el rango agudo, Kaufman optó por una voz de órgano Hammond drawbar, señalando que el altavoz Leslie rotante añade vida a las notas sostenidas — una calidad más difícil de lograr con formas de onda más simples. La lista en la App Store confirma que la aplicación ofrece doce voces: Bass, Sub Bass, Octaveless, Reese, 808, Pluck, FM, FM Sub, Grind, Square, Drawbar y Drawbar Hi, además de un Passthrough para control de nivel de entrada y puerta.

Pestaña de reproducción compacta de Whistle Synth
La pestaña pequeña de reproducción con selección de vozwww.jefftk.com

Esta imagen corresponde a la lista del artículo de doce voces (Bass, Sub Bass, Octaveless, Reese, 808, Pluck, FM, FM Sub, Grind, Square, Drawbar, Drawbar Hi, Passthrough) y la sección de desarrollo de voces.

Características adicionales de reproducción incluyen una opción "down a fifth" que traslada cada voz un intervalo justo hacia abajo (silbar D suena como G), un latch de sustain que mantiene una nota después de que el silbido se detiene, y mutado instantáneo mediante la tecla M. El editor de voces expone parámetros como ancho de pulso, inclinación espectral y resonancia, permitiendo a los usuarios aprender síntesis ajustando perillas.

Interfaz de reproducción ampliada de Whistle Synth
La pestaña de reproducción ampliada que muestra todas las opciones de controlwww.jefftk.com

Esta pestaña ilustra la descripción del artículo de las características adicionales de reproducción, como la opción "down a fifth", el latch de sustain, el mutado instantáneo mediante la tecla M y los parámetros ajustables de las voces.

La asistencia de la IA se extendió más allá del código. Gemini generó un ícono inicial de la aplicación, que Claude luego refinó en íconos generados por código de múltiples tamaños. Publicar la aplicación en la Mac App Store requirió una membresía de desarrollador y verificación de identidad; Apple inicialmente leyó mal el apellido de Kaufman como "Kaufhan," pero el Soporte de Apple corrigió el error. Claude guió a Kaufman durante el proceso de envío, incluyendo la preparación de capturas de pantalla y un video de demostración.

Ícono de Whistle Synth en la lista de la Mac App Store
Whistle Synth aparece en los resultados de búsqueda de la Mac App Storewww.jefftk.com

El artículo describe el lanzamiento de la app en la App Store, la lectura inicial equivocada del apellido de Kaufman como "Kaufhan," por parte de Apple y su corrección mediante el Soporte de Apple; esta imagen representa visualmente dicha listing.

Por debajo del capó, la aplicación de Mac utiliza un motor reescrito (zeros2.c) dividido en pitch.c, synth.c y engine.c, reemplazando PortAudio por CoreAudio y proporcionando salida estéreo. El código fuente está disponible abiertamente en GitHub, mostrando un detector de pitch basado en cruces por cero que alimenta una estructura PitchHint al sintetizador, que nunca lee directamente la entrada del micrófono.

La privacidad es un principio fundamental: la aplicación procesa el audio localmente, no recopila datos y no realiza actividad de red, según se indica en su sección de privacidad de la App Store.