Aratu música escrita para tocar e mudar enquanto toca

6. Os dados: o que sai do compilador

▶ Abrir no Aratu para ouvir e mudar os exemplos

A IDE conversa com o compilador por poucas funções exportadas pelo WebAssembly (aratu_compile, aratu_render, aratu_check, aratu_grid, aratu_voices), trocando texto em JSON. Compilar devolve as mensagens, as partes, os knobs, as listas, as séries e as linhas escritas ao vivo. Pedir compassos devolve os eventos. Um evento de nota se parece com isto:

{"bar": 3, "beat": 1.5, "time": 4.75, "dur": 0.24, "part": "bass",
 "line": "bass", "vel": 80, "note": 45, "from": 120, "to": 123}
Campo O que é
bar, beat o compasso e o tempo dentro dele, como escrito
time, dur quando soa e quanto dura, em segundos desde o começo
part, line a parte e a linha que o tocam
vel a força, de 0 a 127, como no MIDI
note a nota, como número MIDI (60 é o dó central)
drum no lugar de note, a peça da bateria: kick, snare, closed-hat…
acc 1 quando a nota foi escrita em maiúscula
param, value, glide no lugar da nota, uma mudança de parâmetro; glide são os segundos em que o som desliza até o valor
from, to onde o símbolo está escrito no texto, para acendê-lo quando soa

As mensagens também são dados: cada uma tem a gravidade (erro ou aviso), o trecho do texto e o texto na língua escolhida. Um erro não para a música: enquanto o texto tiver erro, continua tocando a última versão certa, como um hot reload que recusa uma versão quebrada.