Repository navigation
Releases: nagualcode/th0nk3000
Release list
Th0nk v0.4.1 (macOS Apple Silicon) — novo ícone
Th0nk 0.4.1 — Jardim Sonoro (Apple Silicon)
🎨 Novo ícone
- O app standalone (
Th0nk.app) tem um ícone próprio no Finder, no Dock, no Launchpad e no Spotlight. - O ícone segue a grade de ícones do macOS (arte de 824 px numa tela de 1024 px, com cantos transparentes) e inclui todos os tamanhos, de 16 a 1024 px.
Nada mais mudou em relação à 0.4.0: mesmo motor, mesma interface e os mesmos formatos.
📦 Instalação (Apple Silicon / arm64)
thonk-0.4.1-macos.pkg: instalador.thonk-0.4.1-macos-arm64.zip: AU, VST3, CLAP, App Standalone e CLIthonk-render.
Se o Dock ou o Finder ainda mostrarem o ícone antigo depois de atualizar, arraste o app novo para /Applications substituindo o antigo. O cache de ícones do macOS se atualiza sozinho, ou após killall Dock.
Os binários têm assinatura ad-hoc e não são notarizados. Se o macOS bloquear, use xattr -dr com.apple.quarantine <arquivo>.
Th0nk v0.4.0 (macOS Apple Silicon) — nova interface, duração e sincronia com o DAW
Th0nk 0.4.0 — Jardim Sonoro (Apple Silicon)
Nova interface, controle de duração, sincronia com o DAW e render em segundo plano. O motor fiel ao original da 0.3.x continua o mesmo: no modo de duração "Original", os renders saem byte a byte idênticos aos da 0.3.1.
🎛️ Nova interface (inspirada no Ableton Live)
- Layout em faixa horizontal, como um dispositivo do Live, redimensionável.
- Barra superior: ▶/■, THONK, partitura, seed com Lock, duração e Render.
- Painel SAMPLE: forma de onda do som, com pontos mostrando ao vivo de onde os grãos estão lendo e para que lado do estéreo vão.
- Painel SCORE: a partitura desenhada como faixas de automação (densidade com mapa de calor das camadas, as quatro vozes de afinação, pan e posição na fonte). A cabeça de leitura é clicável e arrastável.
- Barra de status: estado do transporte, partitura que está tocando, posição/duração e progresso do render.
- Tema Classic (o verde fósforo antiorp) disponível como alternativa.
⏱️ Duração da obra
- Original (padrão): duração própria da partitura e final autêntico.
- Stretch: a partitura inteira é comprimida ou esticada para a duração escolhida (10 s a 60 min). O arco narrativo inteiro cabe no tempo pedido.
- Cut: a partitura toca no ritmo próprio e para na duração escolhida, como encerrar o original antes do fim.
- Nos modos Stretch e Cut, o arquivo termina exatamente na duração, com fade de 30 ms.
- Skip silences (opcional, fora do original): evita os silêncios de vários minutos que o relógio de grãos do original produz. Na Classic Flowing de teste, 391 s de silêncio caíram para zero.
🎚️ Uso no DAW
- Abre parado e em silêncio. O som que tocava ao abrir a 0.3.x era o som sintético de demonstração disparando automaticamente; agora ele só toca se você clicar em Demo.
- Host Sync: toca com o transporte do DAW, e o tempo da composição segue a linha do tempo (compasso 1 = 0:00). Bounces a partir da mesma posição e do mesmo seed saem idênticos.
- O som fica salvo no projeto. Embutido até ~3 min a 48 kHz; acima disso, guardado pelo caminho e recarregado do disco. Na 0.3.x, reabrir um projeto perdia o som.
- No standalone, a barra de espaço toca e para.
💾 Render
- Roda em segundo plano, com progresso e Cancel. Um render cancelado não deixa arquivo pela metade.
- 16-bit, 24-bit ou 32-bit float, em WAV ou AIFF/AIFC, com normalização opcional a −0,3 dBFS.
- 16-bit com wrap a 0 dB e sem normalizar continua bit-exato ao original.
- O CLI
thonk-renderganhou--length,--mode,--skip-silence,--formate--normalize.
✅ Qualidade
- Validação:
- AU v2 aprovado no
auvalda Apple; - VST3 aprovado no
pluginvalda Tracktion; - CLAP aprovado no
clap-validator. Três testes de reprodutibilidade de estado falham do mesmo jeito nos exemplos oficiais do framework Truce v6.3.0, então ficam excluídos.
- AU v2 aprovado no
- CI no GitHub (
.github/workflows/ci.yml): testes mais os três validadores a cada push. - Testes: 23 automáticos.
- Tempo real: ~0,8% de CPU por instância a 48 kHz com blocos de 128 amostras; nenhum bloco passa de metade do orçamento.
📦 Formatos e instalação (Apple Silicon / arm64)
thonk-0.4.0-macos.pkg: instalador; escolha os formatos.thonk-0.4.0-macos-arm64.zip: AU, VST3, CLAP, App Standalone e CLIthonk-render. Veja oREADME.txt.
Os binários têm assinatura ad-hoc e não são notarizados. Se o macOS bloquear, use xattr -dr com.apple.quarantine <arquivo>. Para o Logic carregar o AU novo: killall -9 AudioComponentRegistrar. Em Macs Intel, compile a partir do código (instruções no README) ou use a 0.3.1 universal.
Compatibilidade: projetos da 0.3.x abrem com os mesmos valores de parâmetros. O som precisa ser recarregado uma única vez, porque versões anteriores não o salvavam.
Th0nk v0.3.1 (macOS) — estabilidade em tempo real
Th0nk 0.3.1 — Jardim Sonoro
Versão de correção da 0.3.0, focada em estabilidade de áudio em tempo real. Recomendada para todos os usuários da 0.3.0. O som não muda: renders offline com o mesmo seed saem byte a byte idênticos aos da 0.3.0.
🩹 Correções
- Estalos (xrun) em blocos pequenos. Com buffers pequenos no DAW (por exemplo, 128 amostras a 48 kHz), o agendador podia processar várias dezenas de milissegundos de grãos num único bloco. Na Classic Hectic, um bloco chegou a levar 14,9 ms para um orçamento de 2,7 ms. Agora o trabalho é distribuído por igual entre os blocos, e o pior bloco medido fica em torno de 0,4 ms.
- Novo "Thonk" mais leve. Em vez de zerar o buffer inteiro de 8 MB, só o trecho já mixado à frente da reprodução é limpo. O custo cai de ~1 ms para poucos microssegundos, mais a geração da partitura.
- Gerador de números aleatórios do Mac OS ~2× mais rápido, sem divisão e com a mesma sequência (verificado em 1 milhão de passos). A geração da partitura Flash caiu de 1,4 ms para 0,6 ms.
✅ Verificação
- O Audio Unit passa no
auvalda Apple (render de 11 kHz a 192 kHz, blocos irregulares, parâmetros e agendamento). - 14 testes automáticos, mais um benchmark de tempo real (
cargo test --release --lib rt_budget -- --ignored --nocapture). Medido a 48 kHz com blocos de 128 amostras: CPU média de ~0,8% por instância e nenhum bloco acima de 50% do orçamento.
📦 Formatos e instalação
Os mesmos da 0.3.0: AU v2, VST3, CLAP e App Standalone (universais arm64 + x86_64), mais o CLI thonk-render no .zip.
thonk-0.3.1-macos.pkg: instalador.thonk-0.3.1-macos-universal.zip: instalação manual (veja oREADME.txt).
Os binários têm assinatura ad-hoc e não são notarizados. Se o macOS bloquear, use xattr -dr com.apple.quarantine <arquivo>. Para o Logic carregar o AU novo: killall -9 AudioComponentRegistrar.
Th0nk v0.3.0 (macOS) — motor reconstruído do binário original
Th0nk 0.3.0 — Jardim Sonoro
Motor reconstruído a partir do binário original. Nesta versão, o mecanismo de síntese e as 11 partituras do thOnk_0+2 foram reescritos como tradução direta do executável PowerPC. Constantes, pesos e laços foram lidos instrução por instrução. O processo completo está documentado em reverse_engineering/README.md.
🔬 Fidelidade ao original
- Partituras exatas. Antes, só a Classic Hectic estava próxima do original; Flowing, Flash, Slack, Shepard, Pentathon e os Stretches tinham valores inventados. Agora todas usam as constantes do binário:
- Flowing, Flash, Slack e Dis são variações do mesmo código da Hectic, com contagens e faixas próprias.
- Shepard é a construção real: vozes que entram no agudo, descem e reaparecem em silêncio, ficando mais graves e mais lentas a cada ciclo.
- Pentathon tem duas vozes em registros diferentes, com glides de 2,5 s e notas de duração aleatória.
- Octaves Stretch mistura 0, −24 e +12 semitons.
- Plain Stretch tem a imagem estéreo larga do original.
- Agendador original (
BreakPointsToSoundFile): densidade avaliada a cada 10 ms e um relógio de grãos independente. A lista "GFRnd" é jitter de início do grão em amostras, não ruído na taxa. - Grão inteiro como no original: interpolação linear truncada em 16 bits, tabelas de envelope cosseno de 1000 pontos, attack/decay de até 100 % do grão, pan com canais na orientação correta e leitura que nunca passa do fim do arquivo (antes dava a volta e gerava cliques).
- Wrap de 16 bits bit-idêntico. Os grãos são somados em 32 bits e convertidos para 16 bits na saída, o que equivale exatamente ao
short + shortdo original. - Sem limite artificial de 600 grãos. O "600 layers" do manual era o máximo teórico, não um teto.
- Taxa de amostragem correta. A síntese roda na taxa do arquivo de entrada, como no original; só a saída é reamostrada para a taxa do host. Antes, um arquivo a 48 kHz saía ~1,5 semitom agudo e o render saía sempre a 44,1 kHz.
- Descrições das partituras restauradas a partir do texto original do programa.
✨ Novidades
- Seed: 0 gera uma composição nova a cada Thonk, como o original fazia com o relógio. LOCK SEED fixa a composição que está tocando, para recall no DAW.
- Render em WAV ou AIFF de verdade, conforme a extensão. Antes, um arquivo
.aiffrecebia conteúdo WAV. thonk-render: renderizador de linha de comando, incluído no.zip(pastaCLI).- A audição encadeia uma nova composição ao fim de cada partitura.
⚙️ Desempenho e tempo real
- Nenhuma alocação na thread de áudio: a partitura é regenerada em memória pré-alocada e o buffer de áudio antigo é liberado na thread da interface.
- Grãos renderizados inteiros, à frente da reprodução (~2 ns por amostra de grão). Uma partitura densa de 20 minutos renderiza offline entre 110× e 260× o tempo real no Apple Silicon.
- 13 testes de regressão verificam as partituras contra as constantes do binário, o gerador de números aleatórios do Mac OS, as tabelas de envelope e a equivalência do wrap.
⚠️ Comportamentos autênticos que podem surpreender
- Algumas partituras (sobretudo Classic Flowing) podem ficar vários minutos em silêncio e passar dos 20 minutos. É o relógio de grãos do original saltando à frente num vale de densidade.
- Os níveis são os do original: com material de entrada quente, o wrap aparece.
📦 Formatos (binários universais: Apple Silicon arm64 + Intel x86_64)
- Audio Unit v2 (
Th0nk.component), VST3 (Th0nk.vst3), CLAP (Th0nk.clap) - App Standalone (
Th0nk.app) - CLI
thonk-render(só no.zip)
🚀 Instalação
thonk-0.3.0-macos.pkg: instalador; escolha os formatos.thonk-0.3.0-macos-universal.zip: instalação manual:AU/Th0nk.component➔~/Library/Audio/Plug-Ins/Components/VST3/Th0nk.vst3➔~/Library/Audio/Plug-Ins/VST3/CLAP/Th0nk.clap➔~/Library/Audio/Plug-Ins/CLAP/Standalone/Th0nk.app➔/Applications/
Os binários têm assinatura ad-hoc e não são notarizados. Se o macOS bloquear, use clique direito → Abrir, ou xattr -dr com.apple.quarantine <arquivo>. Se o Logic continuar carregando a versão antiga do AU, force a nova varredura com killall -9 AudioComponentRegistrar e reabra o Logic.
Projetos salvos na 0.2.0 abrem normalmente. A partitura tocada será a nova versão, fiel ao original, e não a aproximação anterior.
Th0nk v0.2.0 (macOS) — Jardim Sonoro
Th0nk 0.2.0 — Jardim Sonoro
Recriação moderna em Rust (via Truce Audio Framework) do clássico aplicativo de síntese granular artística do Mac OS 9 da Audio Ease: Th0nk (1995–1997, Arjen van der Schoot & antiorp).
🏷️ Organização na DAW
Nas DAWs (Logic Pro, Ableton Live, Reaper, Cubase, Studio One, Bitwig, FL Studio), o plugin é identificado sob a publicação e pasta do fabricante:
- Jardim Sonoro ➔ Th0nk
📦 Formatos Inclusos (Binários Universais: Apple Silicon arm64 + Intel x86_64)
- Audio Unit v2 (
Th0nk.component): Logic Pro, GarageBand, Ableton Live, etc. - VST3 (
Th0nk.vst3): Ableton Live, Cubase, Studio One, FL Studio, Reaper, etc. - CLAP (
Th0nk.clap): Bitwig Studio, Reaper, etc. - Standalone App (
Th0nk.app): Aplicativo independente para macOS.
🚀 Opções de Instalação no macOS
Opção 1: Instalador Automático (.pkg) — Recomendado
Baixe e execute thonk-0.2.0-macos.pkg. Ele permite escolher quais formatos instalar e instala automaticamente nas pastas padrão de áudio do sistema/usuário.
Opção 2: Instalação Manual (.zip)
Baixe thonk-0.2.0-macos-universal.zip, descompacte e copie para as pastas correspondentes:
AU/Th0nk.component➔~/Library/Audio/Plug-Ins/Components/VST3/Th0nk.vst3➔~/Library/Audio/Plug-Ins/VST3/CLAP/Th0nk.clap➔~/Library/Audio/Plug-Ins/CLAP/Standalone/Th0nk.app➔/Applications/
✨ Recursos e Síntese
- 12 Partituras ("Scores") Originais: Classic Flowing, Classic Hectic, Pentathon, Shepard, Dis, Octaves Stretch (1m/5m), Plain Stretch (1m/5m), Flash, Slack, Stochastic.
- Distorção 16-bit Autêntica: Recriação exata do overflow de aritmética de inteiros com sinal de 16 bits do Mac OS 9 de 1995.
- Live Input: Granulação contínua do sinal do microfone/entrada da DAW.
- Suporte de Áudio: Carregamento direto de arquivos WAV e AIFF (incluindo decodificação big-endian original).
- Interface Gráfica Fiel: UI minimalista retrô com medidores estéreo e indicador de densidade de grãos.
