jueves, 11 de julio de 2019

Introducción al mundo del MIDI usando arduino


Como un proyecto MIDI basado en arduino puede resultar complejo si no tienes los conocimientos y experiencia previa con estas tecnologías e decidido crear este tutorial a modo de introducción.

Con este fin desarrollaremos el código que viene de ejemplo en el IDE (aplicación para programar) de arduino. Este pequeño programa es capas de general una señal que pueden entender otros dispositivos MIDI.

También compartiré algunos de los problemas y errores que nos podemos encontrar al intentar sacar adelante este proyecto.

Materiales Necesarios

- Placa arduino (puede ser cualquiera)
- un terminal MIDI embra
-Protoboar
-Cables 
-1 Resistencia 220 ohms
-Una interfaz MIDI si lo quieres conectar al computador o Un cable midi simple si lo vas a conectar a un dispositivo MIDI como lo puede ser un teclado.
Para mi proyecto seleccione el arduino nano 3 por ser compacta y porque posee su propio conector USB (aquí comenzaron mis problemas) Resulta que los fabricantes chinos para comunicar el chip de arduino con la interfaz USB usan un chip CH340G que es mas económico pero que no se instalan los drivers por defecto.

Aquí les dejo un Link donde pueden descargar los Drives para que reconozca la placa arduino


Para encontrar nuestro codigo fuende de ejemplo debemos abrir el IDE de arduino click en "Archivo" luego en "Ejemplos" luego en "04.Communication" porque MIDI es un sistema de comunicación y por ultimo "MIDI"

Aqui voy a publicar el codigo de arduino pero les recomiendo que lo busquen en el IDE y no lo copien desde el blog porque le puede provocar algunos errores por los formatos y los caracteres que usa blogger .

/*
  MIDI note player

  This sketch shows how to use the serial transmit pin (pin 1) to send MIDI note data.
  If this circuit is connected to a MIDI synth, it will play the notes
  F#-0 (0x1E) to F#-5 (0x5A) in sequence.

  The circuit:
  - digital in 1 connected to MIDI jack pin 5
  - MIDI jack pin 2 connected to ground
  - MIDI jack pin 4 connected to +5V through 220 ohm resistor
  - Attach a MIDI cable to the jack, then to a MIDI synth, and play music.

  created 13 Jun 2006
  modified 13 Aug 2012
  by Tom Igoe

  This example code is in the public domain.

  http://www.arduino.cc/en/Tutorial/Midi
*/

void setup() {
  // Set MIDI baud rate:
  Serial.begin(31250);
}

void loop() {
  // play notes from F#-0 (0x1E) to F#-5 (0x5A):
  for (int note = 0x1E; note < 0x5A; note ++) {
    //Note on channel 1 (0x90), some note value (note), middle velocity (0x45):
    noteOn(0x90, note, 0x45);
    delay(100);
    //Note on channel 1 (0x90), some note value (note), silent velocity (0x00):
    noteOn(0x90, note, 0x00);
    delay(100);
  }
}

// plays a MIDI note. Doesn't check to see that cmd is greater than 127, or that
// data values are less than 127:
void noteOn(int cmd, int pitch, int velocity) {
  Serial.write(cmd);
  Serial.write(pitch);
  Serial.write(velocity);
}


El codigo parte con una introduccion que baseicamente explica lo que hace el programa es hacer un barrido de notas desde la tecla "Fa" en la octava cero a la tecla "Fa" en la octava cinco y volvera a repetir una y otra vez.

Luego explica como realizar un cableado básico desde el arduino al terminal midi

Yo aquí les dejo unas imágenes para que no se confundan porque es un poco enredado.

Ahora solo falta que lo conectes a algun dispositivo que entienda lenguaje MIDI que puede ser un teclado o un computador o un celular siempre y cuando dispongas de un cable UTG y una interfaz MIDI a USB

Aquí les dejo el vídeo donde explico algunas cosas mas y muestro como funciona el programa





1 comentario:

  1. Hola quiero saber si me puedes ayudar para poner la entrada y salida MIDI, es decir dónde irá conectado

    ResponderEliminar