Índice:

Sintetizador Micro Midi: 5 etapas (com imagens)
Sintetizador Micro Midi: 5 etapas (com imagens)

Vídeo: Sintetizador Micro Midi: 5 etapas (com imagens)

Vídeo: Sintetizador Micro Midi: 5 etapas (com imagens)
Vídeo: Como usar o SINTETIZADOR 2024, Julho
Anonim
Sintetizador Micro Midi
Sintetizador Micro Midi
Sintetizador Micro Midi
Sintetizador Micro Midi
Sintetizador Micro Midi
Sintetizador Micro Midi

Isso demonstra o uso do chip VLSI VS1053b Audio e Midi DSP em seu modo Midi em tempo real. Nesse modo, ele atua como um sintetizador GM (General Midi) Midi polifônico de 64 vozes. Um micro autônomo Arduino Uno controla um display OLED, três botões (Function Select e Up ou Down, e passa o fluxo de dados Midi para o DSP de áudio. A placa de música escolhida foi a placa de breakout do codec Adafruit VS1053, mas uma placa de breakout de música Sparkfun também foi testado com sucesso. As bibliotecas Adafruit VS1053b foram usadas em vez da biblioteca SFEMP3 muito maior (recomendada por Sparkfun, embora eles também tenham seu próprio conjunto de bibliotecas), porque eu achei o código Adafruit mais fácil de entender.

A maior parte do código usado para controlar o DSP de áudio / midi foi desenvolvida usando um Arduino Uno conectado à placa de breakout de áudio / midi por meio de uma placa de ensaio. Depois que as funções funcionaram satisfatoriamente, o Uno foi usado como um programador para um ATmega 328 autônomo que foi colocado em um pequeno Veroboard de tamanho 30x20 junto com o IC 6N139 opto-isolador necessário no soquete de entrada Midi (um DIN de 5 pinos). Também conectado estava um pequeno escudo OLED (64x48), três botões, um LED de atividade Midi e um conector de barril de +5 volts para alimentação e o conector de saída de áudio estéreo adicionado. Os requisitos de energia são muito modestos - cerca de 20 mA a 5 volts.

Etapa 1: Lista de peças

ATmega328 Micro 28 pinos DIP + 28 pinos DIP socket6N138 ou 6N139 optoisolator + 4 pinos DIP socketWemos 64x48 I2C Display OLED ou similarAdafruit VS1053b Codec breakout board3 miniaturas pushbuttons5 pinos DIN Midi socket PCB mount preferidoSmall LED qualquer cor. tomada para conectar a um amplificador ou fones de ouvido Resistores: 7 x 10k, 2 x 470 ohm, 2 x 220 ohmCapacitores: 0,1uF 50v de plástico, 10uf 25v eletrolítico, 2 x 27 pF de cerâmicaPequenas peças de Veroboard (30 tiras por 20 colunas e 4 tiras por 16 colunas), caixa de plástico ABS de cerca de 85x55x25mm, fiação e alguns parafusos, porcas e arruelas.

Etapa 2: construção

Construção
Construção
Construção
Construção
Construção
Construção

A tampa do gabinete abriga o display OLED, os três botões que são montados em outra pequena peça do Veroboard e o conector de alimentação em forma de barril. A placa de circuito principal do Vero tem dois orifícios para fixar a placa de breakout Music acima do ATmega328. Para obter detalhes de conexão, consulte o diagrama da placa de tira Fritzing.

O ATmega328 programado (consulte a próxima seção para o código) é então inserido em seu soquete seguido pelo 6N139 e tudo é conectado.

O LED é usado como um indicador de atividade Midi e foi montado na parte frontal do gabinete. Ele é conectado à saída D2 do ATmega328 por meio de um resistor de 470 ohms.

O display OLED usa a saída de 3,3 volts da placa Adafruit para alimentação - requer menos de 20 mA.

Tente trocar as duas conexões Midi Din se você não ouvir nenhum áudio quando usar o sintetizador pela primeira vez.

Etapa 3: Software

Os detalhes do esboço que deve ser carregado no ATmega328 são fornecidos em MidA.ino. Existem sete funções disponíveis:

Opção P: Alterar programa - alterar o instrumento GM Midi de 1 a 128 (usei 0 a 127), como um piano ou som de síntese. Opção B: alterar o banco do instrumento entre melódico (banco 0) e percussão (banco 1). Opção V: Ajuste o volume de 1 a 10. Opção C: Altere o canal Midi ao qual o Synth responderá. As opções são Canal 0, canal 1, canal 9 (percussão), canal 0 e 9 e canal 1 e 9. Opção R: liga ou desliga o efeito de reverberação. Opção S: Salve os parâmetros atuais na memória Eeprom (para cima) ou leia (baixe) da memória Eeprom. Isso ocorre porque as configurações não são salvas ao desligar. Opção X: Envie uma mensagem de todas as notas desligadas (Midi Reset).

Uma oitava opção ainda não foi implementada - isso contornará o ATmega como um filtro Midi e conectará a saída do optoisolador diretamente ao pino Rx da placa DSP.

Observe que o VS1053b inicializa em modo Midi em tempo real carregando um patch compactado de 1039 bytes durante a inicialização - isso também aumenta o tamanho do buffer Midi e filtra os bytes de dados Midi exclusivos do sistema. Os detalhes desse patch podem ser encontrados no site do VLSI.

Uma versão ligeiramente modificada da biblioteca Adafruit Graphics foi usada para fornecer a resolução de 64x48 pixels do display OLED - consulte os links fornecidos no final para o Sr. Mcauser. Uma lista das bibliotecas necessárias é fornecida no código do esboço.

É importante ressaltar que quando o esboço é executado pela primeira vez no ATmega328, seja em um Uno ou autônomo, o código carregará predefinições de parâmetros do ATmega328 Eeprom que podem não ser válidos. Nesse caso, você pode escrever todos os zeros no Eeprom usando a opção X com o botão para baixo ou comentar a linha na função de configuração de vazio que carrega valores do Eeprom quando é iniciado pela primeira vez, ajustar seus instrumentos etc. curtir e depois salve seus presets com a opção S botão Up.

O crédito é dado a todas as pessoas e entidades mencionadas por seu código e bibliotecas.

Etapa 4: Links

VLSI:

Adafruit:

Github VS1053b:

Github Graphics:

Oled:

Sparkfun:

Etapa 5: usando a placa Sparkfun com as bibliotecas Adafruit

Usando a placa Sparkfun com as bibliotecas Adafruit
Usando a placa Sparkfun com as bibliotecas Adafruit

A tabela na imagem explica como conectar o Adafruit ou o Sparkfun Music Boards para usar outra biblioteca.

Recomendado: