Sobre o projeto

SyntaxWave é um ambiente experimental de programação de áudio voltado para performers de live coding e exploradores de música algorítmica. Em vez de uma DAW baseada em linha do tempo, ele trata o código como o instrumento: uma linguagem de domínio específico própria, com palavras-chave para osciladores, envelopes, filtros, linhas de atraso e síntese granular, compila para operações de áudio vetorizadas, com o README afirmando compilação em menos de cinco milissegundos para patches típicos. O runtime é descrito em quatro camadas. Uma camada de editor fornece uma IDE baseada em navegador com realce de sintaxe, autocompletar da DSL, documentação embutida e edição colaborativa via transformação operacional. Uma camada de compilação analisa a DSL em uma representação intermediária, compila JIT para WebAssembly e despacha a geração de buffers para a GPU. Uma camada de áudio usa backends da plataforma (WASAPI, CoreAudio, ALSA, Web Audio API como fallback) para agendamento preciso por amostra e roteamento multicanal. Uma camada de rede constrói uma malha WebRTC onde cada nó é tanto produtor quanto consumidor, com sincronização de estado baseada em CRDT para que edições concorrentes convirjam na mesma saída. A colaboração é um recurso de destaque: os participantes compartilham um grafo de áudio distribuído, podem compartilhar trechos, silenciar ou isolar as contribuições uns dos outros e mesclar fluxos em uma saída master. O README afirma latência abaixo de 15 ms entre nós e um orçamento de latência de rede abaixo de 30 ms entre nós de borda. Um navegador de linha do tempo master mostra as mudanças de código de cada participante como faixas com formas de onda abaixo delas. Um pipeline de análise neural extrai grades de batida, assinaturas de tom, padrões de onset e descritores timbrais do áudio ao vivo, alimentando espectrogramas, cromagramas e agrupamentos de forma de onda de volta no editor como feedback visual. O controle por gestos mapeia faders MIDI, acelerômetros ou posições de mãos rastreadas por câmera para qualquer variável da DSL. Uma arquitetura de plugins permite que unidades de síntese, efeitos e módulos de análise escritos em Rust ou C sejam compilados para WebAssembly e carregados a quente no meio da sessão. As especificações técnicas declaradas incluem taxas de amostragem configuráveis de 44,1 kHz a 384 kHz, tamanhos de buffer de 32 a 4096 amostras, até 512 vozes simultâneas por nó, uma ABI de plugin wasm32-wasi e suporte para Windows 10/11, macOS 12+, Linux (x86_64, aarch64) e Chrome/Firefox/Edge. O projeto é distribuído como um único executável que inicia um servidor web local e um backend de áudio, abrindo a interface no navegador. Um exemplo mínimo é `sine freq:440 gain:0.3`, executado com Ctrl+Enter. Recursos voltados para o palco incluem edição com múltiplos cursores, navegação pelo histórico de código, um modo de congelamento que mantém a saída atual enquanto prepara a próxima seção e uma visão de projetor que oculta a interface. A interface é responsiva em desktop, tablet e celular, com gestos de toque e um modo móvel de carga reduzida. Strings de interface, dicas de ferramentas e mensagens de erro são oferecidas em dezesseis idiomas, e a DSL aceita aliases de palavras-chave localizados (por exemplo `sinus` ou `正弦波`). O README também anuncia suporte humano 24 horas por dia por meio de um chat integrado e uma base de conhecimento. O projeto é lançado sob a Licença MIT e convida contribuições da comunidade de live coding, pesquisadores de DSP e entusiastas de linguagens; o README menciona um repositório de plugins com mais de duzentas unidades de síntese contribuídas pela comunidade e jams de código online regulares. Um aviso observa que o áudio em tempo real pode produzir sons altos ou inesperados, então os usuários devem monitorar os níveis de saída com cuidado.