banner
Lar / blog / Criando um DCO
blog

Criando um DCO

Jun 09, 2023Jun 09, 2023

Adoro música e também adoro eletrônica. Durante anos, venho construindo dispositivos eletrônicos musicais, principalmente para servir à minha guitarra elétrica. Depois de construir e modificar alguns amplificadores valvulados e pedais de efeitos, decidi entrar no campo da síntese de áudio. Sempre sonhei em criar meu próprio sintetizador Eurorack, um módulo de cada vez, mas para meu primeiro projeto de sintetizador decidi começar com um teclado independente. Meu produto final – um teclado de brinquedo modificado – é mostrado na Figura 1.

Neste projeto, removi os componentes eletrônicos existentes e os substituí por um sintetizador de áudio baseado em oscilador controlado digitalmente (DCO) com um Arduino Nano em seu coração. Embora eu tenha usado um Arduino Nano, um Arduino Uno também pode ser usado. Vamos mergulhar em como podemos fazer um sintetizador baseado em DCO. Porém, antes de ir longe demais, vamos primeiro falar sobre o uso de um oscilador em um sintetizador.

O elemento chave de qualquer sintetizador é o circuito oscilador. Os sintetizadores analógicos geralmente possuem dois ou mais osciladores controláveis ​​independentemente. No entanto, qualquer pessoa que tenha entrado na toca do coelho da Internet com os esquemas de um oscilador analógico controlado por tensão (VCO) sabe que eles geralmente são complicados e desordenados. Parte da confusão vem de recursos que podem ser descartados normalmente, como múltiplas entradas de tensão de controle. No entanto, mesmo quando o circuito oscilador mais simples é isolado dentro de um esquema, o que resta ainda é complicado por truques de feedback térmico para manter o oscilador em sintonia à medida que seus componentes aquecem.

A complexidade e a desordem dos circuitos VCO sempre foram um obstáculo para mim quando considerei criar meu próprio sintetizador e, embora eu adore a síntese analógica, não consegui superar seu ponto fraco eletrônico confuso. Tudo mudou quando comecei a apreciar a linha de sintetizadores Roland Juno.

O Juno-6 da Roland chegou ao mercado em 1982 como uma alternativa mais acessível a outros sintetizadores polifônicos disponíveis na época. Também foi o primeiro sintetizador a utilizar DCOs em vez dos VCOs tradicionais. Isso melhorou drasticamente a estabilidade de sintonia do instrumento em comparação com alternativas porque os DCOs usam circuitos digitais para controlar a frequência do sinal analógico do oscilador. Com isso em mente, certamente há compensações no uso de DCOs em vez de VCOs, é claro. Muitas pessoas adoram o som “quente” de dois VCOs ligeiramente desafinados tocando em uníssono, o que é difícil de emular com um sintetizador baseado em DCO. No entanto, efeitos de modulação podem ser aplicados ao sinal de saída seco de um DCO para produzir sons bonitos e exuberantes.

No geral, a onipresença e o baixo custo das placas de desenvolvimento Arduino Uno e Nano, juntamente com o fato de que essas plataformas digitais vêm pré-equipadas com osciladores de cristal de 16 MHz, tornam a criação de um DCO barato incrivelmente fácil.

Consulte a folha de dados de qualquer microcontrolador moderno e você encontrará um módulo temporizador entre seus periféricos. Um módulo de temporizador permite que um projetista embarcado configure um contador em execução no fundo de um sistema embarcado que é independente da CPU (unidade central de processamento). Além disso, os módulos temporizadores podem interromper a CPU sob inúmeras condições, como quando transbordam seu registro de contagem ou quando atingem uma determinada contagem. As condições de interrupção podem ser configuradas pelo projetista embarcado para atender às necessidades de sua aplicação específica.

Para este projeto, os módulos temporizadores do ATMega328P – o cérebro do Arduino Nano e Uno – atuam como DCOs do sintetizador. Ao configurar a fonte do relógio e o valor máximo de contagem para um módulo temporizador, as interrupções do módulo temporizador podem ser acionadas em frequências de áudio. A saída DCO é obtida manipulando os pinos GPIO do microcontrolador durante as rotinas de serviço de interrupção (ISRs) para essas interrupções periódicas.

Nas seções seguintes, discutirei o design de hardware e software por trás deste projeto e, em seguida, apresentarei alguns clipes de áudio deste sintetizador caseiro.