Skip to content

Releases: nagualcode/th0nk3000

Th0nk v0.4.1 (macOS Apple Silicon) — novo ícone

Choose a tag to compare

@nagualcode nagualcode released this 17 Oct 17:39

Th0nk 0.4.1 — Jardim Sonoro (Apple Silicon)

ícone th0nk3000

🎨 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 CLI thonk-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

Choose a tag to compare

@nagualcode nagualcode released this 17 Oct 17:20

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.

th0nk3000

🎛️ 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-render ganhou --length, --mode, --skip-silence, --format e --normalize.

✅ Qualidade

  • Validação:
    • AU v2 aprovado no auval da Apple;
    • VST3 aprovado no pluginval da 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.
  • 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 CLI thonk-render. Veja o README.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

Choose a tag to compare

@nagualcode nagualcode released this 17 Oct 16:43

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 auval da 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 o README.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

Choose a tag to compare

@nagualcode nagualcode released this 17 Oct 16:36

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 + short do 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 .aiff recebia conteúdo WAV.
  • thonk-render: renderizador de linha de comando, incluído no .zip (pasta CLI).
  • 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

Choose a tag to compare

@nagualcode nagualcode released this 16 Oct 01:04

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.