Índice:

Estação de loop MIDI multi-track Arduino: 6 etapas
Estação de loop MIDI multi-track Arduino: 6 etapas

Vídeo: Estação de loop MIDI multi-track Arduino: 6 etapas

Vídeo: Estação de loop MIDI multi-track Arduino: 6 etapas
Vídeo: A DIY Arduino Sequencer Walk Through 2024, Julho
Anonim
Arduino Multi-track MIDI Loop Station
Arduino Multi-track MIDI Loop Station
Arduino Multi-track MIDI Loop Station
Arduino Multi-track MIDI Loop Station
Arduino Multi-track MIDI Loop Station
Arduino Multi-track MIDI Loop Station

Uma estação de loop, ou um looper, é essencialmente uma ferramenta para reproduzir em tempo real seus riffs instrumentais (loops). Não se destina a ser uma mídia de gravação, mas um instrumento para moldar a inspiração sem distração (e, eventualmente, tocar ao vivo …).

Existem muitas estações de loop de gravação de áudio por aí, tanto na forma de hardware dedicado (quase todo fabricante de pedal de guitarra tem seu próprio produto) ou software de computador (o excelente Linux Sooper Looper ou windows Mobius, para citar os mais conhecidos). Eu só consegui encontrar alguns projetos sobre DIY sem áudio, mas com loopers de MIDI, o que significa uma ferramenta para gravar eventos MIDI e reproduzi-los imediatamente em um loop; a maioria desses projetos (todos eles, devo dizer) estão abandonados ou perdidos … bom, aqui estamos com um projeto completo para todos!

Esta estação de loop Arduino MIDI simplesmente mantém o controle de eventos MIDI de entrada e os reproduz. Você só precisa pressionar o pedal de gravação, criar seu melhor riff e parar a gravação pressionando o pedal novamente. Super fácil:)

Este projeto é baseado em hardware aberto fácil de encontrar (Arduino DUE), software (meu próprio firmware e Arduino IDE) e pode ser personalizado para refletir suas preferências.

Vamos fazê-lo!

PS: sim, é super barato!

Etapa 1: Limites

Antes de começar a adquirir peças de hardware para o projeto, deixe-me dizer quais são os seus limites para que você possa decidir ir em frente ou parar por aqui.

- devido aos limites do hardware (memória Aduino DUE essencialmente), o comprimento máximo padrão da frase que você pode gravar é limitado a 46 segundos.

- os loops não podem ser armazenados e reproduzidos após o desligamento. No entanto, você pode enviá-los para um PC e salvá-los.

- não há quantização de notas.

- O relógio MIDI é suportado, mas em um estágio preliminar no momento.

- As mensagens MIDI gravadas são note on, note off, controle de mudanças e pitch bend; outras mensagens MIDI como after touch, program change, SysEx, etc. são desconsideradas.

- a polifonia máxima é definida como 10 por padrão (novamente, limites de memória Aduino DUE).

No lado positivo, streams MIDI de vários instrumentos diferentes, cada um transmitindo em seu próprio canal, são suportados; isso significa que você pode gravar vários instrumentos MIDI de uma vez, em camadas ou com sua própria trilha (mais prós na próxima etapa;)).

Se viver com essas limitações parece razoável (e é para mim), você vai se divertir muito com isso;)

Etapa 2: como funciona

A estação de loop MIDI aqui é muito simples de operar. Funciona de maneira semelhante às estações de loop de áudio de hardware que todo fabricante de pedal de guitarra tem em seu próprio catálogo.

1) Selecione a trilha na qual deseja gravar sua sequência MIDI. Por padrão, a faixa "um" é escolhida, mas você pode alterá-la pressionando um dos botões de faixas (um para cada faixa).

2) Quando você pressiona o interruptor / pedal "REC" pela primeira vez, o laçador é acionado. O LED verde acende. Ele vai esperar até que sua primeira nota seja recebida antes de começar a gravar a seqüência / riff real.

3) Ao terminar a sequência, pressione o botão / pedal "REC" novamente para definir o comprimento real do riff. O LED verde apaga-se. O looper começará a reproduzir sua seqüência MIDI imediatamente. Se você atingir o tempo máximo, a gravação será interrompida automaticamente e a sequência começará a ser reproduzida em loop.

4) Agora, você pode decidir dobrar sua sequência na trilha atual ou selecionar uma nova trilha e gravar nela, pressionando o botão / pedal "REC". Em ambos os casos, o LED amarelo acenderá, mesmo se a nova trilha estiver vazia, porque é uma trilha "escrava" (escravizada à primeira trilha gravada). Pressione novamente para interromper a dobragem (o LED amarelo apaga).

Para aqueles que estão confortáveis com estações de loop de áudio, esta progressão MIDI é chamada de "REC / PLAY / OVERDUB" e é a única compatível.

Se, a qualquer momento, você sentir que seu overdub mais recente não está ok, você pode excluí-lo pressionando o botão / pedal "desfazer". Você pode limpar toda a faixa atual mantendo o pedal "REC" pressionado por mais de 3 segundos; você pode reinicializar o looper (reinicialização do software) pressionando os três primeiros botões de faixa ao mesmo tempo ou apagando todas as faixas usadas.

Você pode ativar / desativar o som de uma trilha pressionando o botão da trilha atual.

Você pode enviar um PÂNICO! mensagem pressionando o botão de pânico. Você pode até enviar um PÂNICO! mensagem pressionando os dois primeiros botões de faixas ao mesmo tempo.

O looper possui um metrônomo simples embutido: uma nota em mensagem MIDI para a nota número "64" é enviada a 100 BPM no canal 10 (o canal que você provavelmente está ouvindo em sua bateria eletrônica). Você pode aumentar ou diminuir o andamento girando o codificador ótico; pressionando o botão do codificador óptico, você pode ativar / desativar o metrônomo. Observe que sua bateria eletrônica deve ser configurada para tocar um som (caixa, baixo ou qualquer som de sua preferência) ao receber a nota MIDI "64" ou o metrônomo ficará mudo.

Uma versão barebone desta estação de loop MIDI pode ser feita com um único pedal para iniciar e parar a gravação. Manter o interruptor pressionado por mais de 3 segundos reinicializará a estação de loop.

Se você quiser investir algum tempo adicional no desenvolvimento do hardware, adicionar interruptores e botões tornará a estação de loop mais flexível. Na imagem é como eu configurei minha estação de loop completo de quatro faixas (até cinco são suportadas).

NOTA IMPORTANTE: o hardware em minhas fotos é um protótipo. Usei mais conectores do que o necessário, mas apenas quatro botões para faixas. Isso porque, quando comecei o projeto, não tinha certeza de quais seriam os requisitos finais.

Botões e pedais são eletronicamente equivalentes e você pode usar um em vez do outro; para minhas necessidades, sendo que sempre há pouco espaço no chão (pedais de efeito lindos;)), restrinja os pedais para a função REC única.

Etapa 3: Hardware

Hardware
Hardware
Hardware
Hardware
Hardware
Hardware
Hardware
Hardware

Lista de materiais:

Estação de loop MIDI de 5 faixas com todos os recursos

1x Arduino DUE

7x botões momentâneos

1x caixa de plástico (usei uma caixa de 150 x 110 x 70 mm)

2x conector de soquete MIDI de montagem em painel DIN fêmea de 5 pinos

1x tomada jack de montagem em painel de 6,3 mm

1x placa de perf de 50x70 mm frente e verso

LED 5x 3 mm (verde)

1 LED de 3 mm (amarelo)

1x codificador ótico

1x H11L1 optoacoplador

1x diodo 1N4148

3 resistores de 1000 ohms

3 resistores de 220 ohms

10x resistores de 470 ohms

Algum fio de solda, alguns cabos, estação de solda … e tempo livre:)

Tempo necessário para concluir o projeto: 6-9 horas

Por que não um UNO?

Os primeiros testes (e um código de trabalho inicial) foram escritos em uma placa arduino UNO "normal". Esta placa tem limites de RAM que me obrigaram a reduzir a polifonia para "4", comprimento máximo para menos de 4 segundos e resolução de 40 ms no máximo. Isso sem manipulação multicanal. Ao remover o rastreamento de velocidade também, fui capaz de aumentar o tempo de gravação para 7 segundos.

Com um UNO, você pode criar uma estação de loop MIDI "funcional", mas altamente limitada.

Etapa 4: Software

O software depende fortemente da biblioteca de MIDI FortySevenEffects. Essa biblioteca é ótima e torna esse tipo de projeto viável até mesmo para geeks não programadores como eu.

O IDE do Arduino e sua comunidade são outra parte importante desse "sucesso".

Não vou entrar em detalhes sobre como fazer o upload do esboço para o seu arduino DUE. Se esta é sua primeira experiência com o IDE do arduino, leia primeiro.

Escrevi duas versões diferentes do código, com base em duas abordagens completamente diferentes.

O princípio de funcionamento da versão 1 é que, durante a gravação ou overdub, o Arduino DUE verifica e armazena em sua memória (volátil) os eventos MIDI suportados (nota ativada, nota desativada, alteração de controle e pitch bend); o eixo do tempo é quantizado em etapas de 20 ms e as mensagens recebidas são armazenadas nesses slots de acordo. Durante a reprodução, as mensagens MIDI armazenadas são enviadas de volta ao sintetizador respeitando a quantização do tempo.

O princípio de funcionamento da versão 2, em vez disso, é "simplesmente" registrar o evento midi e a hora em que o evento deve ser disparado. A versão 2 tem limites diferentes da versão 1 (listados em uma etapa anterior). experimente os dois e use o que funcionar melhor para você.

Também existe um controle preliminar do Clock, mas ele precisará de alguns ajustes para funcionar como deveria. O código assume que você grava um loop de 4/4 - 4 barras (16 batidas).

Você pode desativar o relógio externo mantendo pressionado o botão "pânico" ao ligar o looper.

Os códigos são carregados AQUI. Os comentários são colocados sobre eles, para que você possa dobrar o firmware à sua vontade;)

Etapa 5: Fiações

Fios
Fios
Fios
Fios
Fios
Fios

Os circuitos MIDI IN e MIDI OUT são relatados nas fotos em anexo. Observe que TX1 e RX1 são usados, não TX0 e RX0.

Os pinos de entrada do Arduino DUE não suportam 5 V, mas 3,3 V; é por isso que um optoacoplador H11L1 é usado em vez de um 6N138 mais comum. Tenho evidências de que usar um 6N138 acoplado a um divisor de tensão para reduzir a tensão do sinal indo para TX1, como no meu primeiro protótipo, pode funcionar de forma irregular em algumas configurações.

Os LEDs são conectados aos pinos de saída do Arduino DUE por meio de resistores de 470 Ohm. Você pode usar resistores de até 1K ohm para reduzir a corrente que vai para os LEDs e reduzir sua luminosidade.

Botões / interruptores / conectores são conectados diretamente aos pinos de entrada do Arduino graças aos resistores pullup de entrada, ativados no sketch. Não há necessidade de resistores externos (suspensos).

O codificador óptico está conectado ao GND e + 5V. Ele vai para os pinos de entrada do Arduino passando por 2 480 resistores ohm, um para cada saída de dados óticos.

O Arduino DUE é alimentado diretamente de um pino de 5 V e aterrado por meio de um hub de + 5 V CC.

Todos os motivos estão interligados.

Em anexo está uma tabela com conexões dos pinos do Arduino para o periférico IN / OUT. Os números de pinos do Arduino refletem aqueles em meu hardware de proptótipo e podem parecer (de alguma forma são …) aleatórios. Você pode modificar facilmente a localização do pino no esboço à sua vontade;)

Etapa 6: E se eu tiver mais de uma fonte MIDI?

E se eu tiver mais de uma fonte MIDI?
E se eu tiver mais de uma fonte MIDI?

Após uma breve pesquisa por uma fusão de MIDI, descobri que a solução mais prática (e barata) era um switcher de MIDI.

Um switcher MIDI é um dispositivo passivo que habilita uma fonte MIDI e desabilita todas as outras fontes. Simples assim.

O coração de um switcher MIDI é um switch multi-posicional (o meu é de 6 posições), de 2 pólos. É muito importante que o número de pólos seja "2" porque cada tomada MIDI deve ser completamente desligada se não estiver selecionada e não estiver em comunicação com as outras. Em anexo está uma foto do que descobri para meu próprio uso.

Neste LINK um esquema.

Recomendado: