Ferramentas · No ar

AudioLoop

Uma rádio que compõe música sem parar.

Rádio generativa no navegador: cinco estações de música sintetizada na hora, que não vira laço, com semente para tocar a mesma música de novo e link para compartilhar.

Sobre o projeto

O que é AudioLoop

O AudioLoop é uma rádio que compõe a música enquanto toca. Você liga, escolhe uma das cinco estações (Madrugada, Névoa, Neon, Pixel ou Jardim) e ela vai inventando acordes, baixo, melodia e batida compasso a compasso, sem fim. Não existe arquivo de áudio: cada nota é sintetizada no navegador com a Web Audio API.

A música nasce de uma semente, que é um texto qualquer. A mesma semente na mesma estação toca sempre as mesmas notas, no mesmo ritmo e com os mesmos timbres, então um link leva quem o recebe para a música que você ouviu. Sem semente, a rádio sorteia uma, e você guarda as que gostar.

Ela é irmã do Wave Radio: lá a trilha vem de vídeos de terceiros e o painel imita um rádio de madeira; aqui nenhum som existe antes de você apertar o botão.

Recursos

O que o AudioLoop faz

Cinco estações

Madrugada (lofi), Névoa (ambiente), Neon (synthwave), Pixel (chiptune) e Jardim (zen). Cada uma tem os seus andamentos, escalas, timbres e instrumentos.

Semente

Escreva uma frase, sorteie uma ou use a do dia. A mesma semente e a mesma estação tocam sempre as mesmas notas, em qualquer aparelho.

Não vira laço

A tonalidade, os acordes e os instrumentos mudam de seção em seção, e a melodia é nova a cada frase de dois compassos. Em 4.000 compassos de cada estação, nenhum trecho de 8 compassos se repetiu.

Link para a mesma música

O botão de copiar monta um endereço com a estação e a semente. Quem abrir o link toca a mesma música.

Músicas guardadas

O botão Gostei guarda a estação e a semente (até 30) no seu navegador, com a lista para tocar de novo ou apagar.

Timer de sono

Desliga em 15, 30, 60 ou 120 minutos, com o volume descendo nos últimos 20 segundos. O horário de fim vale mesmo com a aba escondida.

Baixar um trecho em WAV

Renderiza 30 segundos, 1 minuto ou 2 minutos da mesma música, no seu aparelho, e entrega um arquivo WAV de 16 bits.

Andamento e atalhos

O andamento vai de 80% a 120% sem perder o lugar na música, e o teclado liga a rádio, troca de estação e sorteia uma semente nova.

Tecnologias

Por dentro do AudioLoop

Web Audio API

Osciladores, filtros, reverberação por convolução e ruído sintetizam todas as vozes e a bateria. As notas são agendadas 8 segundos à frente no relógio do áudio, e não no do navegador, então uma aba escondida não faz a música falhar.

Compositor puro

A música é uma função da semente e do número do compasso, sem estado e sem Math.random. Por isso ela é infinita, igual em qualquer aparelho e dá para renderizar qualquer trecho sem tocar o que veio antes.

OfflineAudioContext

O arquivo WAV sai do mesmo palco que toca ao vivo, renderizado mais rápido que o tempo real, sem alto-falante.

Canvas e AnalyserNode

O visualizador desenha o espectro do que está tocando, com os freios de animação e de movimento reduzido do sistema.

Medido por script

O comando npm run audioloop:check renderiza cada estação no Chrome e mede pico, volume médio, silêncio e se duas renderizações coincidem. É medida, não audição.

Node, Express e Eta

A mesma base do resto do portfólio, sem etapa de build. O servidor só entrega a página e soma contadores anônimos.

FAQ

Perguntas frequentes

A música é gravada?

Não. Cada nota é sintetizada no navegador a partir de ondas e ruído. Não há arquivo de áudio.

Ela nunca se repete mesmo?

Ela não vira laço: a melodia é nova a cada frase e as seções mudam de tonalidade, de acordes e de instrumentos. A harmonia de uma seção pode voltar mais tarde, porque as combinações são poucas, mas a mesma sequência de 8 compassos não se repete (conferido em 4.000 compassos por estação).

O que é a semente?

Um texto de até 40 caracteres que decide a música: andamento, tonalidade, acordes e notas. Maiúsculas e minúsculas valem igual. A mesma semente na mesma estação toca as mesmas notas.

Soa igual em todo aparelho?

As notas, o ritmo e os timbres são os mesmos. O navegador arredonda a soma das ondas de um jeito um pouco diferente a cada vez, em diferenças muito abaixo do que se ouve, por isso o arquivo WAV de duas exportações não é idêntico bit a bit.

A semente vai para o servidor?

O app nunca a envia. A estação, a semente e as músicas guardadas ficam no seu navegador. A semente só aparece num endereço quando você copia o link para compartilhar, e quem abre o link manda esse endereço ao servidor, como qualquer página. O que o app envia são contagens anônimas (quantas vezes a rádio foi ligada, por exemplo), e nada é enviado com Não rastrear ou Global Privacy Control ligados.

Toca com a aba escondida?

O som é agendado com 8 segundos de antecedência, então a aba pode ficar em segundo plano. Alguns celulares pausam o áudio ao bloquear a tela; se acontecer, a página mostra um botão para continuar.

Qual é a diferença para o Wave Radio?

O Wave Radio toca vídeos de terceiros do YouTube em um painel de rádio retrô. O AudioLoop gera a música no seu aparelho, sem vídeos e sem arquivos de áudio.

Gostou do AudioLoop? Dá para apoiar o trabalho:

Continue explorando

Veja também

Todos os projetos