O ecossistema Manguebyte
Caecilia
Um órgão de tubos virtual de código aberto, escrito em Rust sobre o Manguebyte: programa próprio e plugins VST3 e CLAP.
Baixar para Windows (alfa) Código no GitHub
Alfa. Esta é a primeira versão pública, ainda em desenvolvimento ativo, e o som ainda está sendo trabalhado.
Ouça
Quatro demonstrações, também em playlist no YouTube. O vídeo só carrega quando você aperta o play.
-
Caecilia Pipe Organ: Demonstração I
Demonstração I
-
Caecilia Pipe Organ: Demonstração II
Demonstração II
-
Caecilia Pipe Organ: Demonstração III
Demonstração III
-
Caecilia Pipe Organ: Demonstração IV
Demonstração IV
O que é
A Caecilia é um órgão de tubos que você toca no computador, como programa próprio ou como plugin VST3 e CLAP dentro de uma DAW. O código é aberto, sob a licença Apache-2.0, e ela é desenvolvida por Alesson Queiroz.
Ela vem com o Caecilia Pipe Organ, no estilo francês: dois manuais e pedaleira (Grand-Orgue, Récit e Pédale) e 32 registros. Um órgão é um arquivo JSON que descreve someiros, fileiras, divisões, registros e acoplamentos, então outros órgãos podem ser carregados, e a troca acontece ao vivo, sem estalo.
O console é desenhado como um console de órgão: puxadores de registro, manuais com pistões, pedais de expressão e de crescendo, pedaleira e medidores de vento em milímetros de coluna d'água. Ela também toca sozinha, com peças que puxam os próprios registros, para você ouvir o órgão sem ter um teclado. E há seleção de registros por natureza (por exemplo, todas as cordas do Récit), desfazer e refazer com histórico, combinações nos pistões e MIDI learn: aperte um registro ou pistão e mova uma tecla, pedal ou controle.
Baixar
-
Windows
64 bits
Baixar a alfa -
Linux
x86_64 (Intel/AMD)
Em preparação -
macOS
Apple Silicon
Em preparação
A versão 2.0.0-alpha.0 tem um instalador para Windows de 64 bits, que instala o programa e os plugins VST3 e CLAP.
O instalador ainda não é assinado digitalmente, então o Windows SmartScreen pode avisar: escolha Mais informações e depois Executar assim mesmo. Os limites conhecidos e o SHA-256 estão nas notas da versão.
Como funciona o som
Nenhuma amostra gravada. Cada tubo é calculado em tempo real, como uma soma de parciais: senos que seguem o vento, cada um com a sua deriva lenta. Sem gravação, não há loop para o ouvido perceber repetindo.
O vento é o centro do modelo. Um reservatório, como o fole de um órgão, tem a pressão calculada a cada bloco de áudio conforme o ar que os tubos soando consomem, e cada someiro acompanha essa pressão atrás do próprio regulador. Um acorde cheio faz o vento ceder, e os tubos respondem em afinação, volume e brilho. O tremulante sacode a pressão do vento, não o volume de saída.
Cada fileira tem a sua voz. Os parciais não começam juntos, as misturas recuam de oitava ao subir pelo teclado (break-back), as palhetas têm formantes fixos em hertz, e os agudos têm a própria inclinação de timbre.
Do teclado à sala. Uma tecla é um único evento: o motor a transforma em uma voz para cada fileira puxada na divisão, mais as que os acoplamentos emprestam. Cada voz vai para o barramento do someiro da sua fileira, os someiros fechados passam pela caixa expressiva, e tudo se soma. Depois vêm o reverb (sala, câmara, salão, catedral ou placa) e um equalizador de cinco bandas, com oito temperamentos históricos em qualquer tom e a afinação do Lá à sua escolha.
O que ainda vem. O som continua em trabalho. Os próximos passos são a posição de cada tubo no espaço, as primeiras reflexões da igreja e um ataque mais realista.
Como foi desenvolvida
A primeira Caecilia foi escrita em C++ com o JUCE, com o console numa página web dentro de um WebView. A versão 2.0 é a reescrita completa em Rust: sem JUCE, sem WebView e sem JavaScript. O código antigo continua guardado na tag v1-cpp-final.
O que a versão 1.x media foi congelado como referência, e os testes da 2.0 comparam o som e o comportamento com essa referência, para o porte não perder nada no caminho. A referência é o piso, não a meta: a meta é ir além dela.
Nada copia outros órgãos: nenhum código do JUCE nem de projetos GPL, como o GrandOrgue e o Aeolus, é lido. Os espectros de cada família vêm da versão 1.x e são conferidos contra ela. A inclinação dos agudos, a deriva dos tubos e a folga por tubo foram refeitas a partir da literatura pública de acústica de tubos e de medidas nossas. E, no caminho do áudio, nada aloca memória, trava ou espera, inclusive durante a troca de órgão ou uma demonstração: testes com um alocador que conta chamadas provam isso.
Como usa o Manguebyte
O que é de órgão fica na Caecilia: o vento, as vozes, o motor, os registros e o console. O que serviria a qualquer programa de áudio vem do Manguebyte, e o que faltava foi construído lá, onde outros projetos também podem usar.
- As vozes
- O
PartialBankdomanguebyte-dspcalcula os parciais com instruções vetoriais do processador, com o mesmo resultado bit a bit nas que já rodaram: SSE2, AVX e AVX2. - Vários núcleos
- O
RenderPooldomanguebyte-coredivide as vozes entre os núcleos dentro do callback de áudio, sem mudar um bit do resultado. - Som e afinação
- O reverb, os filtros do equalizador, o limitador e os temperamentos, com escalas Scala, vêm do
manguebyte-dsp. - Plugin e programa
- O mesmo código vira CLAP e VST3 com
manguebyte-plugin,manguebyte-clapemanguebyte-vst3, e programa próprio commanguebyte-standalone, que cuida da placa de som e dos aparelhos MIDI. - O console
- Tudo o que se vê é desenhado de forma nativa, com
manguebyte-gfx,manguebyte-ui,manguebyte-guiemanguebyte-window. O instalador também é feito com esse mesmo kit. - MIDI
- O
manguebyte-midilê os arquivos MIDI das peças que o órgão toca sozinho.
O caminho também é de volta: a renderização em vários núcleos, a afinação, o streaming de amostras e o governador de CPU foram pensados também para ela; os dois primeiros já tocam na alfa, os outros ainda não. Os blocos de espaço por tubo e de ar e ataque por parcial nasceram de pedidos dela; estão prontos e testados, e já no código da Caecilia, mas ainda em nenhuma versão publicada.
Para falar sobre ela, escreva para alessonqueiroz.dev@gmail.com.
O ecossistema Manguebyte
Mais quatro projetos do Recife crescem do mesmo mangue, feitos para rodar sobre o Manguebyte.
-

Este framework
Manguebyte
O framework de áudio de código aberto para Rust, sob MIT ou Apache-2.0, publicado no crates.io. O Aratu já toca sobre o seu motor para o navegador, e o plugin Aratu Bridge toca essa mesma música numa DAW; a Caecilia e o Parabolic são construídos sobre ele.
-

Em desenvolvimento
Aratu
Uma linguagem de live coding que se lê como música: compassos, tempos e figuras em primeiro lugar, em português, espanhol e inglês. O editor roda no navegador e toca sobre o Manguebyte.
-

Alfa
Caecilia
Um órgão de tubos virtual escrito em Rust sobre o Manguebyte: programa próprio e plugins VST3 e CLAP.
-

Em desenvolvimento
Parabolic
Uma ferramenta para músicos transformarem os próprios sons em plugins e samplers sem escrever código.
-

Em desenho
MARÉ
Multi-device Audio Realtime Exchange: um protocolo aberto de áudio e MIDI de baixa latência, para substituir o ASIO. Vários programas num mesmo aparelho ao mesmo tempo, vários aparelhos como um só, MIDI 2.0 no mesmo relógio.