ArduinoPrX : Arduino Midi

ArduinoPrX

Developing for the world

Friday 18th of August 2017 10:19:36 PM
Wähle eine Sprache




Arduino Midi

Social
Add to Flipboard Magazine.
Inhalt
1 Downloads




Beschreibung

Unter MIDI versteht man ein Standardisiertes Protokoll welches einem erlaubt musikalische Geräte wie z.B. Synthesizer oder Effekt Geräte anzusteuern, MIDI steht dabei für Musical Instrument Digital Interface. Es kann auch dafür verwendet werden ein Software wie etwa Cubase, Nuendo oder Logic zu steuern oder zu kontrollieren. Entwickelt wurde MIDI von Dave Smith in Kooperation mit Ikutaro Kakehashi von der Roland Corporation, wofür beide im Jahr 2012 mit dem technischen Grammy ausgezeichnet wurden. MIDI Anschlüsse werden meist mit einem Din 5 Anschluss realisiert und kommen in der MIDI Welt in dieser Form auch am häufigsten vor. Die Anschlüsse sind mit den alten AT Tastatur Anschluss der frühen bis späten 90iger Jahre identisch. Um MIDI mit einem Arduino zu verwenden benötigt man nicht unbedingt ein MIDI shield, man kann den Stecker bzw. die Buchse auch direkt am Arduino anschließen und benutzen. Zum programmieren gibt es einen spezielle Arduino Lib die einem erlaubt MIDI Daten auf einfachste Weise zu empfangen oder zu versenden. Ich benutzte die Lib z.B. in meinen Projekten des Arduino MIDI Sequencer AM808 V2 und VX3. Viele der Parameter die es im MIDI Protokoll gibt sind bereits mit standardisierten Funktionen wie z.B. das ändern der Lautstärke oder des Panoramas belegt. Es gibt aber auch viele die nicht belegt sind und noch frei zur Verfügung stehen. Theoretisch kann man über diese Schnittstelle so Gut wie alles steuern und bedienen, wobei einem bei allen Parametern einen Maximale Auflösung von 128 Schritten zur Verfügung steht.

Midi Out Anschluß

Sendet Daten vom Arduino an ein MIDI Gerät

Beschreibung zur Benutzung der Library

Deklaration
#include "MIDI.h"

Setup
Serial1.begin(31250);

Befehle
MIDI.sendProgramChange(Wert,Kanal); 
MIDI.sendControlChange(CC,Wert,Kanal);   
MIDI.sendNoteOn(Note,Velocity,Kanal);
MIDI.sendNoteOff(Note,Velocity,Kanal);  

Midi In Anschluß

Empfängt Daten von einem anderen Gerät und verarbeitet sie im Arduino.


Beispiel Quellcode

#include <MIDI.h>
/*
  MIDI Input tutorial
  by Franky
  28/07/2009
  
  NOTE: for easier MIDI input reading, 
  take a look a the Callbacks example.
  
*/

#define LED 13   		// LED pin on Arduino board

void BlinkLed(byte num) { 	// Basic blink function
  for (byte i=0;idigitalWrite(LED,HIGH);
    delay(50);
    digitalWrite(LED,LOW);
    delay(50);
  }
}


void setup() {
  pinMode(LED, OUTPUT);
  MIDI.begin();            	// Launch MIDI with default options
				// (input channel is default set to 1)
}

void loop() {
  if (MIDI.read()) {                    // Is there a MIDI message incoming ?
    switch(MIDI.getType()) {		// Get the type of the message we caught
      case ProgramChange:               // If it is a Program Change
	BlinkLed(MIDI.getData1());	// Blink the LED a number of times 
					// correponding to the program number 
					// (0 to 127, it can last a while..)
        break;
      // See the online reference for other message types
      default:
        break;
    }
  }
}

Kommentare



Downloads (1)

Type Downloads
Midi Lib für Arduino