
Índice:
2025 Autor: John Day | [email protected]. Última modificação: 2025-01-23 15:03

Introdução:
Eu sou novo no trabalho com o Arduino, mas espero expandir meu conhecimento ensinando outras pessoas e recebendo feedback. Este é um controlador MIDI muito básico com 4 botões e um potenciômetro. O esboço deste projeto é assim:
1. Construir a placa de ensaio
2. Faça upload do Sketch para o Arduino
3. Compreenda o MIDI sem pêlos e o loop interno de MIDI (loopbe1)
4. encaminhe seu MIDI para um DAW (Ableton)
Suprimentos
1 x Arduino Mega 2560
1 x tábua de pão
1 x cabo USB
1 x potenciômetro
4 x botões de tato
4 resistores de 120 ohm
14 cabos de jumper para placa de ensaio
Etapa 1: Construindo o breadboard


Conecte sua placa de ensaio para que todos os componentes correspondam à imagem 1 acima. Cada botão deve ser semelhante à imagem 2. As entradas dos botões são 2, 3, 4 e 5 no Arduino e o pino do meio do potenciômetro é conectado à entrada ANALÓGICA A0.
Etapa 2: enviando o esboço

Copie e cole o código abaixo no IDE do Arduino. Selecione a placa correta em "ferramentas" e carregue o esboço para o Arduino.
byte noteON = 144; // nota no commandbyte note; // armazenamento para a nota em reprodução int buttonPin1 = 2; botãoPin2 int2 = 3; botãoPin3 = 4; botãoPin4 = 5; int potPin = A0; boolean currentState = LOW; // stroage para o estado atual do botão boolean lastState = LOW; // armazenamento para o último estado do botão void setup () {pinMode (buttonPin1, INPUT); pinMode (buttonPin2, INPUT); pinMode (buttonPin3, INPUT); pinMode (buttonPin4, INPUT); // desta vez, definiremos o pino como INPUT Serial.begin (9600); // inicializar a conexão serial} void loop () {int PotVal = analogRead (potPin); velocidade de byte = mapa (PotVal, 0, 1023, 0, 127); currentState = digitalRead (buttonPin1); if (currentState == HIGH && lastState == LOW) {MIDImessage (noteON, 60, velocity); // liga a nota 60 com 127 velocity delay (200); // forma bruta do botão debouncing} else if (currentState == LOW && lastState == HIGH) {MIDImessage (noteON, 60, 0); // desativa a nota 60 delay (2); // forma bruta do botão debouncing} lastState = currentState; currentState = digitalRead (buttonPin2); if (currentState == HIGH && lastState == LOW) {// se o botão acabou de ser pressionado MIDImessage (noteON, 61, velocity); // liga a nota 60 com 127 velocity delay (200); // forma bruta do botão debouncing} else if (currentState == LOW && lastState == HIGH) {MIDImessage (noteON, 60, 0); // desligar a nota 60 delay (2); // forma bruta de botão debouncing} lastState = currentState; currentState = digitalRead (buttonPin3); if (currentState == HIGH && lastState == LOW) {// se o botão acabou de ser pressionado MIDImessage (noteON, 62, velocity); // liga a nota 60 com 127 velocity delay (200); // forma bruta do botão debouncing} else if (currentState == LOW && lastState == HIGH) {MIDImessage (noteON, 60, 0); // desligar a nota 60 delay (2); // forma bruta de botão debouncing} lastState = currentState; currentState = digitalRead (buttonPin4); if (currentState == HIGH && lastState == LOW) {// se o botão acabou de ser pressionado MIDImessage (noteON, 63, velocity); // liga a nota 60 com 127 velocity delay (200); // forma crua do botão debouncing} else if (currentState == LOW && lastState == HIGH) {MIDImessage (noteON, 60, 0); // desligar a nota 60 delay (2); // forma bruta de botão debouncing} lastState = currentState; } // enviar mensagem MIDI void MIDImessage (byte command, byte data1, byte data2) {Serial.write (command); Serial.write (data1); Serial.write (dados2); }
Ainda sou muito novo na escrita de código em geral … aqueles com um pouco mais de experiência provavelmente poderiam limpar isso …
Etapa 3: Compreendendo o MIDI sem pêlo e os loops internos de MIDI



O Arduino precisa passar por uma ponte serial como Hairless MIDI e, em seguida, por um loop MIDI interno, como loopbe1 (ou barramento IAC para Mac).
Nota: você não pode fazer upload de um esboço para o Arduino enquanto ele estiver conectado à ponte serial MIDI sem fio.
Selecione seu Arduino na porta serial Hairless MIDI e loopbe1 ou IAC Bus na saída MIDI.
Nota: certifique-se de que o mudo não esteja ativado ao usar o loopbe1.
Etapa 4: conectando-se à sua DAW

Se você estiver recebendo um sinal do aplicativo Hairless MIDI ao pressionar um botão no breadboard (as luzes piscarão), você poderá enviar dados MIDI para uma DAW. Eu usei o Ableton, mas qualquer DAW deve funcionar. Certifique-se de que seu loop MIDI interno (loopbe1) está habilitado em suas preferências DAW (no Ableton você deseja que a "trilha" seja habilitada). Em seguida, selecione uma das entradas de trilha MIDI para o loop MIDI (loopbe1), conforme mostrado na imagem acima.
Etapa 5: Jogue


Os botões agora funcionarão como qualquer outro controlador MIDI! O potenciômetro mudará a velocidade das notas enviadas para a DAW. O vídeo (muito escuro…) acima mostra o som de um piano de cauda em ação!
Recomendado:
Construir um controlador MIDI Arduino: 5 etapas (com imagens)

Construir um controlador MIDI Arduino: Olá a todos! Neste instrutível, mostrarei como construir seu próprio controlador MIDI com Arduino. MIDI significa Musical Instrument Digital Interface e é um protocolo que permite que computadores, instrumentos musicais e outros hardwares se comuniquem
Construindo um controlador MIDI Arduino: 9 etapas (com imagens)

Construindo um Arduino MIDI Controller: Este instrutível foi publicado originalmente em meu blog em 28 de junho de 2020. Gosto de construir coisas que incluem eletrônica e sempre quis construir algo usando Arduino. Uma das construções mais comuns para iniciantes que encontrei foi um Controlador MIDI
Lune - Controlador MIDI com Arduino (para DJ ou músico): 5 etapas (com imagens)

Lune - Controlador MIDI com Arduino (para DJ ou músico): Este é o meu primeiro arduino (microcontrolador) nome de projeto Lune. Eu queria aprender arduino com um projeto grande e útil, então decidi fazer um controlador midi DJ que tivesse todas as funções necessárias para ser autônomo para mixar. Cada tipo de sensor (potentio
Controlador Arduino MIDI para Aalto: 7 etapas

Arduino MIDI Controller para Aalto: Sendo um músico amador, costumo ir de Analog Synths para VST. Quando estou no " VST " humor, eu realmente gosto de um instrumento incrível: Aalto VST do Madronalab. Este incrível VST é muito flexível, gera sons muito bons e é muito
Controlador de jogo DIY baseado em Arduino - Controlador de jogo Arduino PS2 - Jogando Tekken com gamepad Arduino DIY: 7 etapas

Controlador de jogo DIY baseado em Arduino | Controlador de jogo Arduino PS2 | Jogando Tekken com DIY Arduino Gamepad: Olá pessoal, jogar é sempre divertido, mas jogar com seu próprio controlador de jogo DIY personalizado é mais divertido. Portanto, faremos um controlador de jogo usando arduino pro micro neste instructables