Tabla de contenido:
- Suministros
- Paso 1: Construcción de la placa de pruebas
- Paso 2: carga del boceto
- Paso 3: Comprensión de los bucles MIDI internos y MIDI sin pelo
- Paso 4: Conexión a su DAW
- Paso 5: ¡Juega
Video: Controlador MIDI Arduino básico: 5 pasos
2024 Autor: John Day | [email protected]. Última modificación: 2024-01-30 08:42
Intro:
Soy nuevo en el trabajo con Arduino, pero espero ampliar mis conocimientos enseñando a otros y recibiendo comentarios. Este es un controlador MIDI muy básico con 4 botones y un potenciómetro. El esquema de este proyecto se ve así:
1. Construye la placa de pruebas
2. Sube el boceto al Arduino.
3. Comprender MIDI sin pelo y el bucle MIDI interno (loopbe1)
4. enrute su MIDI a una DAW (Ableton)
Suministros
1 x Arduino Mega 2560
1 x tabla de pan
1 x cable USB
1 x potenciómetro
4 x botones de tacto
4 resistencias de 120 ohmios
14 x cables de puente para protoboard
Paso 1: Construcción de la placa de pruebas
Conecte su tablero de modo que todos los componentes coincidan con la imagen 1 de arriba. Cada botón debe tener el mismo aspecto que en la imagen 2. Las entradas de los botones son 2, 3, 4 y 5 en el Arduino y el pin central del potenciómetro está conectado a la entrada ANALÓGICA A0.
Paso 2: carga del boceto
Copie y pegue el código a continuación en el IDE de Arduino. Seleccione la placa correcta en "herramientas" y cargue el boceto en el Arduino.
byte noteON = 144; // nota en el comando byte note; // almacenamiento para la nota que se está reproduciendo actualmente int buttonPin1 = 2; int buttonPin2 = 3; int buttonPin3 = 4; int buttonPin4 = 5; int potPin = A0; boolean currentState = LOW; // trazo para el estado actual del botón boolean lastState = LOW; // almacenamiento para el último estado del botón void setup () {pinMode (buttonPin1, INPUT); pinMode (buttonPin2, ENTRADA); pinMode (buttonPin3, ENTRADA); pinMode (buttonPin4, INPUT); // esta vez configuraremos el pin como INPUT Serial.begin (9600); // inicializar la conexión serial} void loop () {int PotVal = analogRead (potPin); velocidad de bytes = mapa (PotVal, 0, 1023, 0, 127); currentState = digitalRead (buttonPin1); if (currentState == HIGH && lastState == LOW) {MIDImessage (noteON, 60, velocity); // activa la nota 60 con un retardo de velocidad 127 (200); // forma burda de rebote de botón} else if (currentState == LOW && lastState == HIGH) {MIDImessage (noteON, 60, 0); // desactiva la nota 60 delay (2); // forma burda de rebote del botón} lastState = currentState; currentState = digitalRead (buttonPin2); if (currentState == HIGH && lastState == LOW) {// si se acaba de presionar el botón MIDImessage (noteON, 61, velocity); // activa la nota 60 con un retardo de velocidad 127 (200); // forma cruda del botón debouncing} else if (currentState == LOW && lastState == HIGH) {MIDImessage (noteON, 60, 0); // apaga la nota 60 delay (2); // forma cruda de botón antirrebote} lastState = currentState; currentState = digitalRead (buttonPin3); if (currentState == HIGH && lastState == LOW) {// si se acaba de presionar el botón MIDImessage (noteON, 62, velocity); // activa la nota 60 con un retardo de velocidad 127 (200); // forma cruda del botón debouncing} else if (currentState == LOW && lastState == HIGH) {MIDImessage (noteON, 60, 0); // apaga la nota 60 delay (2); // forma cruda de botón antirrebote} lastState = currentState; currentState = digitalRead (buttonPin4); if (currentState == HIGH && lastState == LOW) {// si se acaba de presionar el botón MIDImessage (noteON, 63, velocity); // activa la nota 60 con un retardo de velocidad 127 (200); // forma cruda del botón debouncing} else if (currentState == LOW && lastState == HIGH) {MIDImessage (noteON, 60, 0); // apaga la nota 60 delay (2); // forma cruda de botón antirrebote} lastState = currentState; } // enviar mensaje MIDI void MIDImessage (comando byte, byte data1, byte data2) {Serial.write (comando); Serial.write (datos1); Serial.write (datos2); }
Todavía soy muy nuevo en la escritura de código en general ….. aquellos con un poco más de experiencia probablemente podrían limpiar esto …
Paso 3: Comprensión de los bucles MIDI internos y MIDI sin pelo
El Arduino debe ejecutarse a través de un puente en serie como Hairless MIDI y luego a través de un bucle MIDI interno como loopbe1 (o bus IAC para Mac).
Nota: no puede cargar un boceto al Arduino mientras está conectado al puente serial MIDI sin pelo.
Seleccione su Arduino en el puerto serie MIDI sin pelo y loopbe1 o IAC Bus en la salida MIDI.
Nota: asegúrese de que el silencio no esté activado cuando utilice loopbe1.
Paso 4: Conexión a su DAW
Si está recibiendo señal en la aplicación Hairless MIDI cuando presiona un botón en la placa de pruebas (las luces parpadearán), debería poder enviar datos MIDI a una DAW. Usé Ableton pero cualquier DAW debería funcionar. Asegúrese de que su bucle MIDI interno (loopbe1) esté habilitado en las preferencias de su DAW (en Ableton desea que la "pista" esté habilitada). A continuación, seleccione una de sus entradas de pista MIDI para el bucle MIDI (loopbe1) como se muestra en la imagen de arriba.
Paso 5: ¡Juega
¡Los botones ahora funcionarán como cualquier otro controlador MIDI! El potenciómetro cambiará la velocidad de las notas que se envían a la DAW. El video (muy oscuro…) de arriba muestra un sonido de piano de cola en acción.
Recomendado:
Construya un controlador MIDI Arduino: 5 pasos (con imágenes)
Construya un controlador MIDI Arduino: ¡Hola a todos! En este instructivo, le mostraré cómo construir su propio controlador MIDI alimentado por Arduino. MIDI son las siglas de Musical Instrument Digital Interface y es un protocolo que permite que computadoras, instrumentos musicales y otro hardware se comuniquen
Construyendo un controlador MIDI Arduino: 9 pasos (con imágenes)
Construyendo un controlador MIDI Arduino: este instructivo se publicó originalmente en mi blog el 28 de junio de 2020.Disfruto construyendo cosas que incluyen electrónica, y siempre quise construir algo usando Arduino.Una de las compilaciones más comunes para principiantes que encontré fue una Controlador MIDI
Controlador de juegos de bricolaje basado en Arduino - Controlador de juegos Arduino PS2 - Jugar a Tekken con el gamepad DIY Arduino: 7 pasos
Controlador de juegos de bricolaje basado en Arduino | Controlador de juegos Arduino PS2 | Jugar a Tekken con DIY Arduino Gamepad: Hola chicos, jugar juegos siempre es divertido, pero jugar con su propio controlador de juego personalizado DIY es más divertido. Así que haremos un controlador de juego usando arduino pro micro en este instructivo
YABC - Otro controlador Blynk más - Controlador de temperatura y humedad en la nube de IoT, ESP8266: 4 pasos
YABC - Otro controlador Blynk más - Controlador de temperatura y humedad de la nube de IoT, ESP8266: Hola fabricantes, recientemente comencé a cultivar hongos en casa, hongos ostra, pero ya tengo 3x de estos controladores en casa para el control de temperatura del fermentador para mi cerveza casera, esposa también está haciendo esto de Kombucha ahora, y como termostato para calor
Controlador de tira de luces LED MIDI 5V para Spielatron u otro sintetizador MIDI: 7 pasos (con imágenes)
Controlador de tira de luces LED MIDI 5V para Spielatron u otro sintetizador MIDI: este controlador destella tiras de luces LED de tres colores por 50mS por nota. Azul para G5 a D # 6, rojo para E6 a B6 y verde para C7 a G7. El controlador es un dispositivo MIDI ALSA, por lo que el software MIDI puede emitir a los LED al mismo tiempo que un dispositivo de sintetizador MIDI