Pedal de Efeitos (Parte II): Teste de delay

Com o setup inicial montado parti esta semana para o teste do primeiro efeito: o Delay. Aqui vale contar a história da idéia para o pedal. Tudo começou quando vi o CI PT2399 a venda no site Solda Fria. Curioso que sou procurei pelo datasheet (já que eu não sabia pra que servia o CI) e fiquei indignado com a falta de informações por parte do fabricante. No manual não tem nem um diagrama em blocos do CI. É dito apenas que o CI possui 44k de memória e que possui conversores AD e DA trabalhando em uma alta freqüência de amostragem. Isso não significava muita coisa, pois faltavam dados, números palpáveis.

Então, procurando pela rede não se acha muito mais do que este datasheet. Como a maioria dos circuitos de eco/delay para pedais de guitarra usam este CI, resolvi conversar com um colega guitarrista sobre o assunto. Depois da conversa aprendi muito mais do que esperava, descobrindo um novo campo para fuçar. Isso foi no inicio do ano e vi muitos circuitos de pedais desde então. Acabei dizendo a meu colega que eu conseguiria fazer um pedal de delay usando um microcontrolador e não o PT2399. Ele gostou da idéia e pediu para que eu a colocasse em prática.

Comecei a pensar num circuito capaz de fazer o delay e cheguei a algo parecido com isso aqui (Clique para aumentar):
Esquema pedal de efeitos

O PIC18F4550 foi minha primeira opção não por causa da interface USB mas por ser relativamente fácil de encontrar e possuir um módulo conversor AD capaz de chegar a uns 100k Samples. Essa taxa, segundo meus cálculos, é a mínima para se conseguir amostrar o áudio e uma entrada extra para um potenciômetro de controle do efeito. Como pode ser visto no esquema eu usaria um DA de 8 bits pra começar. Eu já estava pronto pra montar tudo quando encontrei o kit da Freescale. Este kit acabou me poupando muito tempo, já que o Coldfire que vem nele possui 32kB de memória RAM e quase tudo pra começar. Além do fato de eu programar muito mais rápido com uControladores da Freescale do que num PIC.

Para criar o efeito de delay o microcontrolador amostra o áudio numa freqüência fixa e vai guardando na memória RAM. Esta memória é usada igual aos antigos delays de fita, com um loop de gravação. Um contador indica em qual posição da memória a próxima amostra deve ser gravada. Lendo as amostras anteriores e jogando no conversor DA temos o sinal atrasado. A diferença entre a posição das amostras atuais e as amostras atrasadas pode ser definida pelo valor de uma tensão num potenciômetro ligado a outra porta do conversor AD.

Esta semana fiz o código do delay usando 15000 amostras na memória RAM (30kB) e testei com o áudio vindo do PC. O resultado pode ser ouvido no vídeo abaixo. No vídeo dá pra notar a diferença dos tempos de delay. Usei um trecho de fala (que não foi escolhido por acaso) pra facilitar a identificação do efeito.

Como o teste foi bem sucedido tenho que passar agora para o projeto das partes de entrada e saída analógicas. Este circuito contará com um pré-amplificador de entrada para elevar o nível de um captador de guitarra que é bem baixo até uns 4.5V para a entrada do AD. Também colocarei um filtro passa-baixas na saída do DA para suavizar o sinal. E, claro, vou ver se coloco uma realimentação para obter o efeito de decaimento no sinal.

Por enquanto não vou colocar meu código aqui, pois ainda tem muito que melhorar. Quando estiver pronto coloco todo o projeto disponível para quem quiser testar também.

Pedal de efeitos (Parte I): Testes Iniciais...

Bom, sobrou um tempinho hoje e deu pra montar um setup de testes para o pedal de efeitos para guitarras que venho planejando faz tempo. A idéia inicial é criar um pedal de delay e reverb microcontrolado. Novos efeitos devem ser acrescentados depois, se tudo der certo, é claro...

Pedal de efeitos - setup de testes

Neste primeiro teste montei uma malha R2R de 12 bits com resistores de 1k com 1% de tolerância. Pode parecer pouco nestes tempos de conversores de 16 e 24 bits para áudio mas vale lembrar que o Boss RV-3 usa conversor AD e DA de 12 bits (e o DA é com R2R). Já trabalhei com áudio em microcontroladores anteriormente usando conversores de 10 bits (AD e DA) e não ficou tão ruim assim. Foi num trabalho para a faculdade em 2004 ou 2005 (não lembro mesmo) onde usei dois microcontroladores MC9S12NE64 num projeto de transmissão de áudio pela Ethernet. Um uControlador convertia os dois canais de áudio numa taxa de uns 60kHz em 10 bits, empacotava num UDP feito nas coxas em assembly e enviava pela rede. Do outro lado um NE64 desempacotava e passava o áudio para um conversor DA feito também com malha R2R com resistores de 5% (!!!). E pior que funcionou muito bem, ninguém reclamou da qualidade do áudio. Levando isso tudo em consideração montei o seguinte conversor DA para o pedal:

Pedal de efeitos - setup de testes

O MCF51AC256 usado no pedal possui 24 conversores AD de 12 bits logo essa parte não precisou de muita coisa externa. Montei apenas um divisor em VCC/2 para gerar o nível DC e um capacitor de acoplamento. O controle dos efeitos ficará a cargo de um trimpot de 5k que vem montado na placa de demonstração.

Fiz um software de testes rapidinho no CodeWarrior 6.2 para ler os dois AD’s (entrada do sinal e o trimpot) e gerei uma dente de serra no conversor DA:

Pedal de efeitos - setup de testes

Agora só falta ligar isso numa fonte de áudio (vou usar o PC com alguns samples de guitarra) e um amplificador e começar a codificar o software do pedal. Mas isso fica pros próximos dias...