Desenvolvedor recriou o Winamp para Mac com agentes de IA e manteve o uso de CPU em 2–3%
O autor adiou por vários anos seu player no estilo Winamp para Mac, mas finalmente conseguiu lançá-lo com a ajuda de agentes de IA. O MacAmp usa Swift, SwiftUI e AppKit, sem Electron: no M1, consome cerca de 0,01% de CPU em pausa e 2–3% durante a reprodução com o analisador de espectro. Os agentes escreveram a maior parte do código, enquanto o desenvolvedor ficou responsável pela ideia, pela arquitetura e pela aprovação do resultado. O projeto tem código aberto sob a licença MIT.
Processado por IA de Habr AI; editado por Hamidun News
Uma história familiar: uma pasta abandonada com um projeto pessoal que, três ou quatro anos atrás, parou na primeira tela e na reprodução básica. O desenvolvedor Alexrel procurava um player simples para Mac, no espírito do Winamp, mas os atuais ou viraram suítes cheias de serviços de streaming, ou usam Electron e consomem CPU sem necessidade. Com a ajuda de agentes de IA, ele finalmente concluiu seu próprio player. O resultado é o MacAmp: uma recriação de código aberto do Winamp 2.95 em Swift, SwiftUI e AppKit, sem webviews, com uma versão universal para Apple Silicon e Intel. Ele exige macOS 14 ou mais recente.
O resultado final
O player reproduz o original nos mínimos detalhes, incluindo janelas, menus e atalhos de teclado. A janela principal, o equalizador e a playlist se encaixam magneticamente, e há modos Shade e Double Size. Qualquer skin do Winamp 2.x funciona. O player reproduz MP3, AAC, FLAC, Ogg, MIDI e outros formatos, além de oferecer suporte a rádio pela internet, extração de CDs e equalizador de dez bandas. Os recursos modernos ficam nos bastidores: por exemplo, o áudio muda automaticamente para um novo dispositivo de saída.
Para um utilitário que deve ficar num canto da tela, a principal métrica é o consumo de recursos. No M1, o player usa cerca de 0,01% de CPU em pausa e 2–3% durante a reprodução com o analisador de espectro. Quando nada está tocando, o mecanismo de áudio para, e o analisador deixa de enviar quadros após dois segundos de silêncio.
Detalhes de engenharia que valem uma olhada
Três NSWindow separadas e sem bordas precisam se mover como um conjunto, mas o macOS não oferece um recurso para agrupar janelas. O autor calcula a posição de cada janela a partir do ponto inicial do arraste, somado ao deslocamento comum. Se pequenos incrementos forem adicionados a cada movimento do mouse, os erros de arredondamento se acumulam e os encaixes se desalinham. A atração magnética pelas bordas é calculada uma única vez, com base nos contornos previstos, e o resultado é aplicado ao grupo inteiro.
O segundo detalhe envolve as skins. Elas são imagens rasterizadas em BMP, feitas para telas de baixa densidade de pixels. Com a renderização padrão no Retina, a fonte e os números do contador de tempo ficam borrados. Por isso, as próprias janelas fazem sua renderização com interpolationQuality = .none, e os sprites são recortados pelas coordenadas dos pixels originais. O equalizador usa AVAudioUnitEQ: as bandas são filtros paramétricos, e o pré-amplificador é implementado por meio de globalGain.
Como os agentes trabalharam neste projeto
Segundo o autor, agentes de IA escreveram a maior parte do código. Ele concebia as ideias, definia as tarefas, avaliava os resultados e decidia o que lançar. A abordagem funcionou porque o desenvolvedor entende como o produto deve ser e percebe quando a arquitetura se desvia do rumo, enquanto o agente conhece as chamadas específicas do AppKit.
Três coisas ajudaram:
- Documentação no repositório. Visão do produto, plano por etapas, checklist, guia de referência das dimensões e do comportamento do Winamp 2.x e capturas de tela do original. O agente lê tudo isso antes de trabalhar, sem que seja necessário explicar a cada vez que “igual ao Winamp” deve ser levado ao pé da letra.
- AGENTS.md e skills. Regras e instruções sobre como alterar o equalizador e a playlist com segurança impedem que o agente quebre o que já funciona.
- Testes com um único comando.
./build.sh testpermite verificar rapidamente cada alteração.
Não foi possível delegar aos agentes a avaliação da experiência: se o arraste parece natural, se algum campo treme, se a cor está certa, como soa o crossfade com faixas reais. Isso só se verifica com as mãos e os ouvidos.
Limitações e conclusão prática
O projeto tem lacunas reconhecidas. Não há visualizações Milkdrop, codificadores MP3 e Ogg para CDs, módulos de tracker nem scrobbler do Last.fm. O aplicativo não tem assinatura Developer ID por decisão do autor: o player substitui ícones de arquivos dentro do próprio bundle e refaz a assinatura localmente. Por isso, o Gatekeeper exibirá um aviso na primeira execução. É possível contorná-lo pelas configurações de segurança ou com o comando xattr -dr com.apple.quarantine. Além disso, o autor testou o player em apenas um Mac e com uma única biblioteca musical. Por isso, pede relatos sobre crossfade, CUE, rádio após quedas de rede, Bluetooth, suspensão do Mac e playlists grandes.
Para quem desenvolve, a conclusão é simples. É melhor entregar aos agentes um projeto com documentação, regras e verificação automatizada do que um pedido abstrato como “faça um player”. Assim, eles atuam como executores que conhecem as APIs, enquanto as decisões de produto e a aprovação final continuam com você. O código-fonte e a versão em DMG estão no GitHub sob a licença MIT.
- 12 de nov. de 2026Google leva o Gemini Intelligence ao Android Auto — por enquanto só para o Pixel
- 12 de nov. de 2026Adobe mostra no Max quatro protótipos de IA: 3D a partir de fotos, áudio em quadrado e copiar e colar de edições
- 12 de nov. de 2026A Apple vende IA além do limite: o Logic Pro ganha um pacote de US$ 50 sem assinatura
- 12 de nov. de 2026Apple vende pacotes de limites de IA por US$ 50 avulsos — e contorna o modelo de assinatura
Perguntas frequentes sobre a notícia
O que se sabe sobre O resultado final?
O player reproduz o original nos mínimos detalhes, incluindo janelas, menus e atalhos de teclado. A janela principal, o equalizador e a playlist se encaixam magneticamente, e há modos Shade e Double Size. Qualquer skin do Winamp 2.x funciona. O player reproduz MP3, AAC, FLAC, Ogg, MIDI e outros formatos, além de oferecer suporte a rádio pela internet, extração de CDs e equalizador de dez bandas. Os recursos modernos ficam nos bastidores: por exemplo, o áudio muda automaticamente para um novo dispositivo de saída.
O que se sabe sobre Detalhes de engenharia que valem uma olhada?
Três NSWindow separadas e sem bordas precisam se mover como um conjunto, mas o macOS não oferece um recurso para agrupar janelas. O autor calcula a posição de cada janela a partir do ponto inicial do arraste, somado ao deslocamento comum. Se pequenos incrementos forem adicionados a cada movimento do mouse, os erros de arredondamento se acumulam e os encaixes se desalinham. A atração magnética pelas bordas é calculada uma única vez, com base nos contornos previstos, e o resultado é aplicado ao grupo inteiro.
Como os agentes trabalharam neste projeto?
Segundo o autor, agentes de IA escreveram a maior parte do código. Ele concebia as ideias, definia as tarefas, avaliava os resultados e decidia o que lançar. A abordagem funcionou porque o desenvolvedor entende como o produto deve ser e percebe quando a arquitetura se desvia do rumo, enquanto o agente conhece as chamadas específicas do AppKit. Três coisas ajudaram: Documentação no repositório.
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.
O essencial da IA — uma vez por semana
Sete histórias que realmente importaram, escolhidas a dedo. Sem ruído nem releases.
Pronto! Verifique seu e-mail para a confirmação.