Clase Midi Arduino - Hardware, códigos y accesos directos explorados: 11 pasos

Clase Midi Arduino - Hardware, códigos y accesos directos explorados: 11 pasos

Tabla de contenido:

Anonim

A través de Internet, hay una gran variedad de creadores que crean impresionantes instrumentos musicales utilizando la interfaz MIDI.

Usted podría estar pensando "Me gustaría tener un kit de batería electrónica". Simple hermano, constrúyelo tú mismo.

Podría estar pensando "Quiero tener una mesa de mezclas para controlar la banda de garaje, pero son demasiado caras".

¡Demasiado fácil! Un proyecto tan simple. Una vez que sepas cómo, podrías hacerlo en un fin de semana.

Podrías estar pensando "¡Si solo pudiera usar mis zapatos de baile para tocar otros sonidos!"

Simplemente coloque sensores piezoeléctricos en la parte inferior de sus zapatos de baile de claqué y envíe el ritmo en midi.

Podrías estar pensando "¡Me gustaría poder tocar la banda de rock con una guitarra real!"

Ponga sensores táctiles capacitivos en las cuerdas de su guitarra y envíe MIDI a su controlador de banda de rock.

Ahora podrías estar pensando: "¿Podría hacer que mi gato toque la batería y lame la leche de un recipiente de metal capacitivo y sensible al tacto?" ¡Sí tu puedes!

Podrías estar pensando, "¡¡Si solo pudiera tocar música usando las fuerzas de la naturaleza !!"

La respuesta a esto es sí, puedes! Coloque un sensor de humedad en el suelo, un sensor de lluvia, un sensor de viento, un sensor de luz, un sensor de temperatura, algunos sensores de flexión en las ramas de árboles delgados, algunos sensores de vibración o golpes en las ramas que se golpean entre sí. Haz que el Arduino lo convierta todo en señales midi … Los Arduino son geniales en ese tipo de cosas.

Si escribe midi en la barra de búsqueda de instructables, encontrará cientos y cientos de proyectos diferentes. Midi abre la música a una nueva gama de opciones. Y así comienza tu adicción a hacer instrumentos musicales extraños y maravillosos. (Disculpas a su pareja, hijos o compañeros de piso por el espacio utilizado para almacenar todos estos nuevos artilugios, pero no tienen que ser grandes).

Este instructivo está diseñado para ayudarlo a decidir dónde buscar y qué considerar al iniciar un proyecto midi.

Los dispositivos USB plug and play son excelentes para controlar todo tipo de programas musicales en computadoras, lo que le permite grabar una amplia gama de sonidos desde un solo teclado o dispositivo midi. Los dispositivos Midi abarcan desde mesas para mezclar hasta equipos de iluminación, pasando por los raspadores y botones de DJ a través de arpas Lazer, iPad y el teclado estándar. Midi es la forma en que cada uno de estos controladores puede hablar con las computadoras o entre sí y entender los mensajes musicales que se envían.

Recuerde que Midi no es un sonido, son las instrucciones para el sonido. Crear un controlador midi es una forma de crear música a través de una interfaz MIDI como un teclado, un kit de batería electrónico o una computadora con software midi (GarageBand, mainstage, logic, ableton live, fruityloops, etc.).

Para más información sobre MIDI, recomiendo este instructable.

También recomiendo encarecidamente visitar la página de Amandaghassaei y navegar a través de sus instructables muy completas. También recomiendo altamente el tutorial midi de sparkfun.

Arduino midi es un movimiento DIY de instrumentos digitales. Comienza con teclados básicos hechos literalmente desde bananas hasta algoritmos complejos que rastrean a los bailarines en el espacio 3D. Arduino agrega la capacidad para que una amplia gama de sensores se conviertan de repente en musicales. Doblar, girar, distancia, luz, temperatura, presión … arduino tiene una amplia gama de sensores con los que es compatible y agregar MIDI al arduino crea infinitas posibilidades musicales. Desde el uso de sensores de luz, sensores de temperatura, lluvia y sensores de humedad del suelo para mapear el clima en una canción, hasta tener un kit de batería para leer tus notas midi y tocar con motores. Este instructivo está aquí para darle consejos y hacer volar su imaginación.

Especificaciones técnicas en midi

También hay mucha información útil en este instructivo que no debe pasarse por alto.

En este instructivo, cada paso es independiente del resto. Puede mezclar y combinar pasos para su preferencia y proyecto. Ninguno de los pasos son obligatorios, hay muchas maneras diferentes de hacerlo.

Además, estoy muy dispuesto a colaborar en este instructivo, así que si desea editar, agregar o corregir algo en este instructivo, envíeme un mensaje y le agregaré como colaborador. El objetivo es crear una visión muy completa de arduino midi.

Suministros:

Paso 1: Tableros Arduino

Dependiendo de lo que quiera lograr, hay una serie de diferentes tableros de arduino a considerar. Los pines digitales leen las señales de encendido o apagado y también pueden enviar mensajes de apagado para encender motores, encender luces, enviar información a pantallas, etc.

El analógico lee un voltaje y esto es útil para cosas como la sensibilidad al tacto, transductores piezoeléctricos para almohadillas de batería, presión, luz o sensores de flexión (entre muchos otros sensores). Para un controlador de botón pulsador, estos no son un problema, pero si desea tener muchos mandos y controles deslizantes, necesitará una placa con suficientes pines analógicos.

El voltaje es útil para pensar. La mayoría de los pedales de guitarra funcionan con una fuente de alimentación de 9 voltios. Si quieres que tu pedal midi encaje bien con otros pedales de guitarra, algo que funcione a 9v podría ser útil. Además, 5v es el voltaje de la conexión de alimentación USB, de modo que cuando se usan tarjetas más pequeñas y se ajusta una conexión USB, es útil tener una que sea de 5v en lugar de 3.3v.

Aquí hay una lista completa de tableros Arduino, pero a continuación enumeré algunos de los más populares.

UNO - El estándar estándar, bastante barato de obtener, puede ser de arranque dual con Moco dual para crear un dispositivo midi usb bastante fácil. 6 pines analógicos. Si no eres un fanático de los soldados y quieres poder tener tomas MIDI estándar en lugar de MIDI a través de USB, hay montones de escudos que se recortan.

www.sparkfun.com/products/12898 Escudo Midi.

101 - Un uno con Gyro y Bluetooth incorporados … midi a través de Bluetooth es posible en iPads y Macs. El código sería más difícil, pero si estás preparado para el desafío, hay formas y medios.

Leonardo - Compatible con la biblioteca arcore midi para una fácil programación. 12 entradas analógicas

Pro Micro - Barato, pequeño y versátil. Compatible con la biblioteca Arcore Midi para una fácil programación. 6 entradas analógicas

Lilypad: ¿Quieres crear un instrumento portátil como drumpad jeans o algo así? Lilypad es el arduino usable.

Yun o MKR1000: ¿Quieres que tu dispositivo midi se conecte a tu ipad y computadora a través de wifi? Tal vez vaya por uno de estos.

Mega - pilas de entradas y salidas. 16 entradas analógicas. Montones de espacio para agregar montones de código. Genial para cosas como … tener un kit de batería electrónico que se ilumina en un montón de colores, haciendo un teclado sensible al tacto con 48 teclas. Proyectos más grandes como ese.

Paso 2: Tableros MIDI personalizados

Antes de ir arduino, hay una serie de otros tableros que tal vez quiera considerar, esto depende del tamaño de su proyecto, lo que quiere hacer y el presupuesto en el que debe hacerlo.

Makey Makey - super simple fácil de limpiar con. Muy poca curva de aprendizaje. No midi, sino entradas de teclado, para las que hay muchos convertidores de software en línea. Garageband y la lógica tienen un teclado que makey makey puede jugar. Solo presiona las tapas de bloqueo y juega lejos. Fácil de jugar, pero limitado y bastante caro. Técnicamente, Makey Makey es un Arduino Leonardo con enormes resistencias desplegables, por lo que también es completamente reprogramable y se puede convertir en un controlador midi utilizando la biblioteca arcore.

Teensy - Teensy es, con mucho, la placa compatible con Arduino más fácil de usar para MIDI. Una vez configurados, los códigos midi son bastante simples y los tutoriales en su sitio web proporcionan mucha información. Debido a que Teensy es compatible con USB Midi, es fácil codificar y luego probar. Hay maneras de hacer que un arduino normal haga lo mismo por mucho menos dinero, pero Teensy está a la vanguardia del juego para una fácil compatibilidad y facilidad de uso. La biblioteca Usb.midi es muy fácil de usar. Teensy viene con una pila de entradas analógicas que son muy útiles para construir kits de batería o mesas de mezclas. Debido a que es compatible con arduino, cualquier cosa que un arduino pueda hacer, un adolescente también puede hacer. El teensy 3.6 tiene 24 entradas analógicas que es enorme. También es más rápido que todas las tablas de arduino. Por este motivo, le he dado a Teensy su propio paso.

Sparkfun hace una gran revisión de producto en tableros Teensy

Doepfer tiene una gama de diferentes instrumentos midi para digitalizar sintetizadores. Su USB64 tiene 64 entradas analógicas enormes para crear teclados sensibles al tacto o baterías electrónicas de 64 piezas. Es acres por encima de las capacidades del arduino. Doepfer se especializa en convertir órganos retro a midi, así que si eso es lo que estás considerando, vale la pena echarles un vistazo. Cualquier proyecto de teclado sensible a la velocidad a gran escala debe incluir definitivamente un vistazo a sus productos.

Los instrumentos lívidos tienen unas cuantas placas de control de MIDI Midi fáciles de usar. Parecen bastante simples de usar y, aunque son un poco más caros que el arduino, le ahorrarán mucho tiempo aprendiendo el código si tuviera en mente un instrumento musical, un kit de batería, un teclado o una mesa de mezclas bastante normal.

Tableros de diseño Midibox para proyectos midi que son capaces de una amplia gama de tareas. Sus tableros son capaces de grabar y reproducir midi para bucles midi en vivo y otras ideas.

Midifighter tiene kits de alta calidad (bastante caros, pero son bastante legítimos en cuanto a funcionalidad). Estos son específicamente

Bhoreal slim es un controlador midi de código abierto basado en botones que tiene entre 16 y 64 almohadillas de locura.

Arduino en otras fichas

Arduino se puede cargar en otros chips como chips independientes. Esto puede ser útil para reducir el tamaño, el costo o aumentar las funciones de su tablero.

El Arduino Playground tiene información sobre qué chips son compatibles y cómo hacerlo. El Pajaro Manitas ha escrito un instructivo sobre cómo atajar las enormes cantidades de hardware utilizando solo el chip de un arduino, o incluso experimentando con otros chips más pequeños como el Attiny85.

Aquí hay un ejemplo de un sintetizador midi plug que usa el chip attiny 2313.

Otras juntas de desarrollo

Siempre hay otras formas de hacer las cosas, eche un vistazo porque puede ahorrar dinero, tiempo o crear una calidad o funcionalidad diferente.

djtechtools.com/2011/06/21/diy-midi-still-m…

www.instructables.com/id/DIY-USB-DJ-Contro…

Intel Edison: básicamente una computadora pequeña … podría tener todos sus propios sonidos y programas precargados para usarlos como un instrumento independiente. Aquí hay un ejemplo de un proyecto midi usando Intel Edison.

Raspberry Pi: básicamente una pequeña computadora … podría tener todos sus propios sonidos y programas precargados para usarlos como un instrumento independiente

Paso 3: Usando un Teensy

Técnicamente, un adolescente es compatible con arduino, pero tiene algunas ventajas midi sobre el uso de un arduino.

1. Ya sabe hablar MIDI. Esta es una gran ventaja. No tiene que tener ningún entorno o codificación inteligente para que hable MIDI a través de su puerto USB. No tiene que desenchufarlo para probar su código, no tiene que usar ningún programador externo, no tiene que arrancarlo ni realizar otras ideas sofisticadas, solo habla midi. Usted escribe su código y lo prueba, lo edita, lo carga y vuelve a ir hasta que sea correcto. Una vez configurado, puedes conectarlo a cualquier computadora y lo reconocerá como un dispositivo midi.

www.pjrc.com/teensy/td_midi.html

2. Tiene una biblioteca MIDI fácil. No tiene que aprender a escribir números hexadecimales para llegar a la nota que desea, puede escribir en formato decimal con números normales y es fácil envolver su cabeza en torno al concepto.

Esencialmente, sus códigos son usbMIDI.sendNoteOn (nota, velocidad, canal);

Esto significa que es fácil decir lo que estás haciendo en el código y no te pierdes mucho.

3. Debido a que es fácil de usar para Midi, muchas personas lo usan para midi y hay montones de tutoriales sobre cómo usarlo.

Aquí hay un ejemplo de controlador midi usando un chiquillo.

Aquí hay un instructivo más complejo, pero muy útil y comprensivo en midy teensy. Vale la pena consultar solo por ideas y consejos en general.

Aquí está un pedal de pie midi que hice con un teensy. Fue fácil de aprender y construir con.

Paso 4: Convertidores Serie a Midi

Entonces, has decidido que quieres ir con Arduino sobre las otras ideas, pero quieres hacer midi a través de USB. Hay una amplia gama de formas para hacer esto, el método que utilice dependerá de cómo desea que funcione.

Al comenzar, una forma simple y fácil de jugar con midi es a través de convertidores de serie a midi. No requiere una manipulación adicional de su chip, solo una simple descarga y listo. He probado algunas de estas ideas y pueden ser maneras útiles de comenzar, pero limitan su proyecto para usar con computadoras que tienen el programa instalado.

Esto puede ser en forma de un cable usb midi, o un convertidor de software como max, piano virtual, ardrumio o midi sin pelo.

Aquí hay un ejemplo usando un piano virtual.

Aquí hay un ejemplo usando Midi sin pelo

Paso 5: Reprogramando tu chip

El arduino es un chip muy versátil porque es de código abierto y los hackers juegan mucho con él. Así que un arduino no siempre tiene que ser un arduino. Puede ser reprogramado como un controlador midi. Hay algunas maneras diferentes de hacer esto. Los he enumerado en orden de facilidad.

Arcore

Esta es una biblioteca Midi que es compatible con las tarjetas Leonardo y Pro Micro para USB midi. Una vez que se instala esta biblioteca, el IDE de Arduino puede programar el Leonardo o Pro Micro como un dispositivo USB de manera similar al uso del Teensy. Esto reprograma su chip instantáneamente sin la necesidad de programación DFU (ver más abajo).

Musico Nerd tiene un tutorial impresionante sobre cómo usarlo.

Biblioteca USBMidi

losBiblioteca usbmidipermite que una placa Arduino con capacidades USB actúe como un instrumento MIDI a través de USB. Esto funciona igual que Arcore, pero no necesita ser instalado como una nueva opción de hardware. Más información aquí.

Biblioteca midi

Esta biblioteca de Midi ahora incluye un complemento para USB Midi.

MocoLufa Dual

Si quieres hacer MIDI a bajo costo, este es un proceso un poco más difícil de entender, pero significa que puedes tener USB MIDI en un Arduino UNO o Mega sin ningún otro software. Arranca doble el arduino para que pueda codificarlo, cargarlo, cambiar algunas conexiones y usarlo como un dispositivo MIDI USB nativo, probarlo y, si no está del todo correcto, simplemente desenchúfelo, vuelva a conectar las conexiones, conéctelo y recodificarlo Este método no requiere ningún otro programador sofisticado, simplemente puede cambiar entre ellos.

Lufa es el original, fue desarrollado como un formato de programación para hacer un montón de diferentes tipos de dispositivos USB utilizando chips atmel. Moco Lufa fue desarrollado como una versión de arranque dual del controlador midi de Lufa y el gestor de arranque arduino estándar.

Dual Moco es un programa midi nativo que incluye el gestor de arranque arduino y arranca como un arduino cuando dos pines del ISP están conectados entre sí. Una vez instalado en su arduino, su arduino puede ser un arduino normal o un dispositivo midi compatible con la clase con solo tocar un interruptor. Este instructivo explica cómo cargar otros programas en su arduino usando la programación DFU. En el sitio web de arduino y en el sitio web de Dual Moco se encuentra disponible una guía más completa sobre Dual Moco.

Este sitio web muestra cómo construir una hormona utilizando esa técnica Moco.

Este tipo utiliza la técnica moco lufa con su propio tablero para crear un dispositivo Midi reprogramable.

Hiduino

Personalmente no soy fan de Hiduino. A menos que tenga un programador, parece una gran cantidad de trabajo al reprogramar, pero de todos modos verifique esto como una opción. La ventaja de Hiduino es que su chip solo funcionará como un controlador Midi y no tendrá la compatibilidad con arduino también incorporada en el código. Esto significa que puede tener un programa más grande ejecutándose en el chip y es probable que el chip se ejecute más rápido y tenga menos retrasos, ya que se enfoca en ser solo un dispositivo MIDI.

Paso 6: Bibliotecas

Hay una serie de bibliotecas midi que hacen que la codificación midi sea un poco más fácil. Sin embargo, no son obligatorios … son prácticos.

Arcore

Esta es una biblioteca Midi que es compatible con las tarjetas Leonardo y Pro Micro para USB midi.

MidiUSB

Esta es una biblioteca Midi que es compatible con la mayoría de los modelos Arduino para midi USB.

Biblioteca midi

Esta biblioteca midi ahora incluye un complemento para USB Midi.

Paso 7: Hardware físico

Hay una serie de componentes que le convendría aprender al hacer un controlador midi.

Entradas digitales

Las primeras son las entradas digitales. Estas son entradas que envían mensajes a los pines de entrada digital. El más obvio de estos es un botón o interruptor, pero las opciones se extienden con otros componentes y bibliotecas. Estos pueden incluir sensores de distancia, sensores de frecuencia o sensores de pulso PWM, receptores IR (para usar cualquier control remoto como controladores MIDI).

La desventaja de las entradas digitales es que solo leen los mensajes de encendido o apagado y nada en el medio. Algunos sensores evitan esto activando y desactivando los pulsos y utilizando un código para contar el tiempo entre los impulsos.

La mayoría de los teclados Midi utilizan esta idea para crear un tacto sensible a la velocidad. Cuando la tecla se presiona ligeramente, presiona el primer botón y comienza a contar, cuando se presiona por completo, detiene la cuenta y establece la velocidad. Aunque está ahí para leer qué tan fuerte ha sido presionada la tecla, en realidad se lee la velocidad que se presiona. Por lo general, esto es bastante impecable, ya que la tecla generalmente se presiona más rápido cuando el jugador quiere jugar más duro con el teclado.

Entradas analógicas

La segunda entrada es un sensor analógico. Esto lee un voltaje que se envía a un pin. Esto se utiliza para medir una gran cantidad de cosas por una amplia gama de sensores. Sensores de gas, sensores táctiles capacitivos, sensores de luz, sensores de lluvia, sensores de vibración, potenciómetros, sensores de presión, sensores de flexión, etc. Esta entrada analógica podría usarse para controlar el volumen de una nota midi, qué nota se está reproduciendo, qué canal es se está reproduciendo en o una gran variedad de efectos interesantes utilizando los valores de control midi.

Obteniendo entradas analógicas extra …

¿Qué pasa si quieres leer un teclado completo?

¿Qué sucede si necesita algo más que las 6 entradas analógicas en un Arduino Uno?

Mux Shield: hasta 48 entradas analógicas.

Escudo de expansión análogo Blueberry 24

Paso 8: Codificando con Arduino

Los códigos adjuntos están escritos para un Arduino Uno que ejecuta Moco Lufa.

También se pueden usar en un arduino con el cable midi conectado al pin tx como se muestra arriba. Esta imagen fue tomada desde el patio de recreo de arduino, que tiene un tutorial útil y un primer proyecto.

Los códigos de Arduino comienzan introduciendo los pines de arduino y dándoles un nombre.

const int ButtonPin = 2;

Esto significa que una entrada está en el pin digital 2 del arduino. Lo hemos llamado botón. "const" significa que ButtonPin será constantemente 2. No cambiará a nada más.

El siguiente paso proporciona una variable para almacenar información sobre ButtonPin.

int ButtonState = 0;

Cuando lo introducimos como 0, la variable significará 0 por defecto.

La siguiente etapa es la configuración. En la configuración, le decimos al chip que envíe los datos a una cierta velocidad para que se pueda leer a una cierta velocidad y que el receptor los entienda. Esto se llama la tasa de baudios.

La velocidad en baudios de MIDI es 31250.

También le dejamos saber al chip cómo va a usar los pines. Como los chips se pueden usar como salida que envía energía para encender Leds, encender motores, etc. o entradas donde se lee si hay energía que entra desde un botón u otra entrada.

Le dejamos saber al chip que ButtonPin será una entrada.

configuración vacía () {

Serial.begin (31250);

pinMode (buttonPin, INPUT);

}

En el código de arriba, puedes notar un par de cosas. Primero, el código dentro de la etapa de configuración está limitado por paréntesis {}. Esto le dice al chip cuando se termina ese trabajo. Si un código tiene problemas, compruebe que todos los paréntesis marcan las etapas correctas.

Lo segundo que notará es que después de cada línea de código hay un punto y coma;. Esto le dice al chip que el comando está hecho. Si te lo pierdes, el código no funcionará.

La siguiente parte del código contiene un montón de cosas que el chip hará una y otra vez. Esto se llama el bucle. En el siguiente bucle, el botón se leerá, si se presiona, enviará una nota MIDI. Si se libera, enviará midi.

bucle de vacío () {

ButtonState = digitalRead (ButtonPin);

if (ButtonState == HIGH) {Serial.write (0x80); Serial.write (36); Serial.write (127); // canal, nota, velocidad}

if (ButtonState == LOW) {Serial.write (0x90); Serial.write (0x25); Serial.write (0x00); // canal, nota, velocidad}

retraso (1000);

}

En el código anterior, he añadido un retraso. Debido a que el código está circulando a una velocidad increíble, enviará una tonelada de información Midi a su computadora. Una vez que se presiona el botón, el código girará inmediatamente la nota miles de veces por segundo. Cuando se suelta el botón, el código se apagará mil veces por segundo. He puesto un retraso de 1000 milisegundos (1 segundo) en el código para ralentizar esto y evitar que el chip se congele su computadora.

Sin embargo, hay otra manera de hacer esto. Al agregar una variable para almacenar la última lectura, puede obtener el chip para verificar cómo quedó el botón y pedirle que haga algo solo cuando está leyendo algo diferente. Recuerde introducir la variable al inicio de su código (int lastButtonState = 0;). Aquí está la etapa de bucle con la última comprobación de botón y un retraso de 10 milisegundos (por si acaso).

bucle de vacío () {

ButtonState = digitalRead (ButtonPin);

if (ButtonState == HIGH && lastButtonState == LOW)

{Serial.write (0x80); Serial.write (36); Serial.write (127); // canal, nota, velocidad}

if (ButtonState == LOW && lastButtonState == HIGH)

{Serial.write (0x90); Serial.write (0x25); Serial.write (0x00); // canal, nota, velocidad}

lastButtonState = ButtonState;

retraso (10); }

Otros códigos para probar

Cada uno de los códigos adjuntos tiene diferentes componentes que fueron probados con ellos. Algunos están escritos para botones, otros para sensores piezoeléctricos, sensores de distancia o controles remotos IR. Cada código diferente requerirá que los componentes se establezcan según cualquier otro tutorial sobre el uso de esos componentes. La diferencia en estos códigos son los códigos midi incorporados y algunas funciones básicas que son útiles en los controladores midi.

Midi_Basic se escribe como una prueba para 4 botones.

Los botones están cableados con un extremo a 5v y un extremo a los pines arduino 2, 3, 4 y 5. Cada pin se conecta al suelo mediante una resistencia de 10k. Esto se llama desplegable ya que el pin normalmente se leerá.

AnalogMidi lee un voltaje en el pin analógico 0 y envía un mensaje midi. Puede leer potenciómetros, sensores de flexión o presión, sensores de temperatura o discos piezoeléctricos.

Distance_sense lee un sensor de distancia de 4 pines y emite un mensaje midi.

IR Midi lee un sensor inferido. Se asigna a un remoto desde un paquete de inicio arduino. Los códigos hexadecimales pueden diferir de su propio control remoto y deberá descargar e instalar la biblioteca IR para que funcione.

El interruptor CC lee el estado de un interruptor que cambia las entradas de ser notas a cambios de control.

Drum Presets lee discos piezo y un botón. Cuando se presiona el botón, al golpear los discos piezo seleccionará un nuevo grupo de notas para cada disco.

Paso 9: enviando notas y otros mensajes

Este ejemplo de Arduino es un gran ejemplo de un código de prueba.

Las especificaciones de Midi para todos los diferentes tipos de mensajes se pueden encontrar aquí. Copié gran parte de esa información en esta página.

SerialWrite (0x80 + canal); // nota en

SerialWrite (nota); // nota entre 0-127

SerialWrite (velocidad); // velocidad entre 1-127

SerialWrite (0x90 + canal); // nota desactivada

SerialWrite (nota); // debe ser igual a la nota en la nota

SerialWrite (0x00); // la velocidad de 0 desactiva la nota

SerialWrite (0xC0 + canal); // cambio de programa

SerialWrite (programa); // número de programa entre 0-127

SerialWrite (0xD0 + canal); // Presión del canal aftertouch

SerialWrite (velocidad); // velocidad entre 1-127

SerialWrite (0xE0 + canal); // pitchbend

SerialWrite (doblar); // este es un número de 14 bits con un máximo de 16384 y un mínimo de 0, donde 8192 representa la posición centrada o sin inclinación de inclinación.

Los mensajes de cambio de control tienen diferentes tipos de mensajes que los convierten en mensajes de modo de canal.

SerialWrite (0xB0 + canal); // Control de mensaje de cambio

SerialWrite (nota); // nota entre 0-119

SerialWrite (velocidad); // velocidad entre 1-127

Mensajes de modo de canal.

Este es el mismo código que el cambio de control, los valores de las notas seleccionan mensajes específicos.

120 = Todo el sonido apagado. Cuando se recibe Todo el sonido apagado, todos los osciladores se apagan y sus envolventes de volumen se ponen a cero tan pronto como sea posible. c = 120, v = 0:

121 = Restablecer todos los controladores. Cuando se recibe Restablecer todos los controladores, todos los valores del controlador se restablecen a sus valores predeterminados. (Ver las prácticas recomendadas específicas para los valores predeterminados). c = 121, v = x: el valor solo debe ser cero a menos que se permita lo contrario en una práctica recomendada específica.

.

c = 122, v = 0: Control local desactivado: cuando el control local está desactivado, todos los dispositivos en un canal dado responderán solo a los datos recibidos a través de MIDI. Los datos reproducidos, etc. serán ignorados.

c = 122, v = 127: Control local activado: Control local activado restaura las funciones de los controladores normales

Todas las notas desactivadas. Cuando se reciben todas las notas desactivadas, todos los osciladores se apagarán.

c = 123, v = 0: todas las notas desactivadas (consulte el texto para obtener una descripción de los comandos del modo real).

c = 124, v = 0: Modo Omni desactivado

c = 125, v = 0: modo Omni activado

c = 126, v = M: Modo mono activado (Poli apagado) donde M es el número de canales (Omni apagado) o 0 (Omni encendido)

c = 127, v = 0: Modo poli activado (Mono apagado) (Nota: estos cuatro mensajes también causan todas las notas desactivadas)

Paso 10: MIDI IN y motores de sonido.

Si quieres leer midi desde una computadora, teclado u otro controlador midi y hacer algunas cosas divertidas con esto, aquí hay algunas cosas divertidas que hacer con eso.

Reproductor WAV: este escudo te ayuda a reproducir archivos de audio activados por … bueno, lo que quieras que activen. Midi es una cosa que podrías usar. Esto se puede usar para hacer una batería electrónica, agregar sonidos a un teclado midi para atascos portátiles o enviar midi desde su teléfono para hacer un ruido de pedo debajo del sofá.

Sintetizador o efectos: este escudo ha incorporado sonidos y sintetizadores. Por lo tanto, puede usar midi para dar forma a las formas de onda y enviarlas a un amplificador. Esto podría ser a través de midi o directamente desde su controlador.

Plataformas de iluminación: Midi es una forma increíble de controlar muchas cosas. Puede escribir un código de midi para acompañar su interpretación en el escenario y configurar un arduino para leer la entrada de midi y los relés de control y apagar y encender las luces en diferentes partes de su danza o interpretación musical.

Banda controlada por Midi: Aquí hay un instructivo sobre cómo construir un kit de batería robótico. El arduino lee midi y escribe a los motores que tocan los tambores. Podrías duplicar esta idea con toda una gama de instrumentos. Aquí hay un artículo sobre la historia de los instrumentos robóticos para una inspiración divertida.

Paso 11: MIDI a través

Midi thru está diseñado para encadenar instrumentos midi. Midi thru es el mismo que la línea de salida, excepto que también incluye una copia directa de la línea de entrada. Todo lo que entra en la entrada pasa directamente.

Esto significa que puede enchufar un instrumento a la entrada, usarlo para controlar los efectos en un dispositivo midi, pero también enviar la información de midi directamente al instrumento siguiente en una cadena.

También puede utilizar midi thru como efectos múltiples. Si tiene una sola entrada enrutada a múltiples puertos, puede tocar un solo teclado que emita para controlar múltiples sonidos. Una caja de interruptores en la caja podría apagar diferentes puertos para controlar esto.