En vivo 18.11 · Cohorte 318 nov, 19:00 MSK — taller práctico gratuito de agentes IA · Cohorte 3 en vivo inicia 23.11Taller 18 nov →Cohorte 3 (23.11)
LanzamientoAnálisis · En radarHabr AI→ original

Un desarrollador recreó Winamp para Mac con agentes de IA y mantuvo el uso de CPU en un 2–3%

El autor llevaba varios años posponiendo su reproductor para Mac al estilo de Winamp y por fin lo lanzó con ayuda de agentes de IA. MacAmp está escrito en Swift, SwiftUI y AppKit, sin Electron: en un M1 consume alrededor del 0,01% de CPU en pausa y un 2–3% durante la reproducción con el analizador de espectro activo. Los agentes escribieron la mayor parte del código, mientras que el desarrollador se encargó de la idea, la arquitectura y la validación final. El proyecto es de código abierto y tiene licencia MIT.

Procesado por IA desde Habr AI; editado por Hamidun News
Un desarrollador recreó Winamp para Mac con agentes de IA y mantuvo el uso de CPU en un 2–3%
Fuente: Habr AI. Collage: Hamidun News.
Escuchar artículo
Ficha técnica y cifras clave
ParámetroDatos
Fuente originalHabr AI ↗
Editor jefe
Dato clave #1El agente lee la visión del producto, el plan y la guía de Winamp 2.x antes de empezar a trabajar
Dato clave #2AGENTS.md, las skills y las pruebas con un solo comando, ./build.sh test, mantienen al agente dentro de los límites definidos
Dato clave #3No se puede confiar en los agentes para evaluar las sensaciones de uso: el crossfade y el arrastre se comprueban a mano

Una historia familiar: una carpeta abandonada con un proyecto personal que, hace tres o cuatro años, se quedó en la primera pantalla y la reproducción básica. El desarrollador Alexrel buscaba un reproductor sencillo para Mac al estilo de Winamp, pero las opciones actuales o se habían convertido en aplicaciones que lo integran todo, incluidos servicios de streaming, o funcionaban con Electron y consumían CPU innecesariamente. Por fin terminó su propio reproductor con ayuda de agentes de IA. El resultado es MacAmp: una recreación de código abierto de Winamp 2.95 escrita en Swift, SwiftUI y AppKit, sin vistas web, con una compilación universal para Apple Silicon e Intel. Requiere macOS 14 o posterior.

El resultado final

El reproductor reproduce el original hasta en las ventanas, los menús y los atajos de teclado. La ventana principal, el ecualizador y la lista de reproducción se acoplan magnéticamente, y están disponibles los modos Shade y Double Size. Admite cualquier skin de Winamp 2.x, reproduce MP3, AAC, FLAC, Ogg, MIDI y otros formatos, y ofrece radio por internet, extracción de CD y un ecualizador de diez bandas. Las funciones modernas quedan integradas de forma discreta: por ejemplo, el audio cambia automáticamente al nuevo dispositivo de salida.

La métrica clave para una utilidad que debe quedarse en una esquina es su consumo de recursos. En un M1, el reproductor consume alrededor del 0,01% de CPU en pausa y un 2–3% durante la reproducción con el analizador de espectro activo. Cuando no se reproduce nada, el motor se detiene y, tras dos segundos de silencio, el analizador deja de enviar fotogramas.

Detalles de ingeniería que merece la pena estudiar

Hay que mover tres NSWindow independientes y sin marco como si fueran una sola, pero macOS no ofrece una forma de agruparlas. El autor calcula la posición de cada ventana a partir del punto de inicio del arrastre y un desplazamiento común. Si se suman pequeños incrementos con cada movimiento del ratón, los errores de redondeo se acumulan y las uniones se desalinean. El ajuste magnético a los bordes se calcula una sola vez a partir de los límites previstos, y el resultado se aplica a todo el grupo.

El segundo detalle tiene que ver con las skins. Son imágenes BMP rasterizadas para pantallas de baja densidad de otras épocas, y el renderizado estándar en Retina difumina la tipografía y los dígitos del temporizador. Por eso las ventanas se dibujan a sí mismas con interpolationQuality = .none, y los sprites se recortan según los píxeles del original. El ecualizador utiliza AVAudioUnitEQ: sus bandas son filtros paramétricos, y el preamplificador se implementa mediante globalGain.

Cómo trabajaron los agentes en este proyecto

Según el autor, los agentes de IA escribieron la mayor parte del código. Él ideaba, asignaba tareas, revisaba el resultado y decidía qué publicar. El método funcionó porque la persona entiende cómo debe ser el producto y detecta cuándo la arquitectura se desvía, mientras que el agente conoce las llamadas concretas de AppKit.

Ayudaron tres cosas:

  • Documentación en el repositorio. La visión del producto, un plan por etapas, una lista de comprobación, una guía de las dimensiones y el comportamiento de Winamp 2.x y capturas de pantalla del original. El agente lee todo esto antes de trabajar, así que no hace falta explicarle cada vez que «como en Winamp» debe interpretarse literalmente.
  • AGENTS.md y skills. Las reglas e instrucciones para modificar de forma segura el ecualizador y la lista de reproducción evitan que el agente rompa lo que ya funciona.
  • Pruebas con un solo comando. ./build.sh test permite comprobar rápidamente cada cambio.

Lo que no se pudo delegar en los agentes fueron las sensaciones: cómo se siente el arrastre, si el área tiembla, si el color es el correcto o cómo suena el crossfade con pistas reales. Eso solo se comprueba a mano y de oído.

Limitaciones y conclusión práctica

El proyecto tiene carencias que el autor reconoce abiertamente. No incluye visualizaciones Milkdrop, codificadores MP3 y Ogg para CD, módulos de tracker ni scrobbler de Last.fm.

La aplicación no está firmada con Developer ID por decisión expresa: el reproductor sustituye iconos de archivos dentro de su propio bundle y vuelve a firmarse localmente, por lo que Gatekeeper mostrará una advertencia en el primer inicio. Se puede sortear desde los ajustes de seguridad o con el comando `xattr -dr com.apple.

quarantine`. Además, el autor probó el reproductor en un solo Mac y con una sola biblioteca musical, por lo que pide informes sobre el crossfade, CUE, la radio tras un corte de red, Bluetooth, la suspensión del Mac y las listas de reproducción grandes.

Para quien quiera aplicar este método, la conclusión es sencilla. Conviene dar a los agentes un proyecto con documentación, reglas y comprobaciones automáticas, en lugar de una petición abstracta como «haz un reproductor». Así trabajan como un ejecutor que conoce las API, mientras que las decisiones de producto y la validación final siguen en tus manos. El código fuente y la compilación DMG están en GitHub bajo licencia MIT.

Historia

Preguntas frecuentes sobre la noticia

¿Qué se sabe sobre El resultado final?

El reproductor reproduce el original hasta en las ventanas, los menús y los atajos de teclado. La ventana principal, el ecualizador y la lista de reproducción se acoplan magnéticamente, y están disponibles los modos Shade y Double Size. Admite cualquier skin de Winamp 2.x, reproduce MP3, AAC, FLAC, Ogg, MIDI y otros formatos, y ofrece radio por internet, extracción de CD y un ecualizador de diez bandas.

¿Qué se sabe sobre Detalles de ingeniería que merece la pena estudiar?

Hay que mover tres NSWindow independientes y sin marco como si fueran una sola, pero macOS no ofrece una forma de agruparlas. El autor calcula la posición de cada ventana a partir del punto de inicio del arrastre y un desplazamiento común. Si se suman pequeños incrementos con cada movimiento del ratón, los errores de redondeo se acumulan y las uniones se desalinean. El ajuste magnético a los bordes se calcula una sola vez a partir de los límites previstos, y el resultado se aplica a todo el grupo.

Cómo trabajaron los agentes en este proyecto?

Según el autor, los agentes de IA escribieron la mayor parte del código. Él ideaba, asignaba tareas, revisaba el resultado y decidía qué publicar. El método funcionó porque la persona entiende cómo debe ser el producto y detecta cuándo la arquitectura se desvía, mientras que el agente conoce las llamadas concretas de AppKit. Ayudaron tres cosas: Documentación en el repositorio.

ZK
Zhemal Khamidun — CPO de Alpina Digital, product manager de AlpinaGPT. Crea productos de IA desde 2019. Hamidun News es un proyecto personal que creció hasta ser un agregador en producción con más de 6.000 lectores.
✦ Hands-On AI Engineering · Hamidun Academy

Build & Ship Production AI Agents Without Boilerplate Code

Start your free 72-hour trial at Hamidun Academy (academy.hamidun.com) — interactive lessons on Claude Code & Cursor, live Tech Radar, and production agent templates.

Start 72h Free Trial →Vibe-Coding Intensive
¿Qué te parece?
Cargando comentarios…