Вход

   Звукотехника

   Источники питания

   Измерительная техника

   Автолюбителям

   Радио-начинающим

   Электроника в быту

   Радио и связь

   Примочки для ПК

   Шпионские штучки

   Микроконтроллеры

   Об Arduino

   Проекты на Arduino

   Учебники и статьи

   Софт для Arduino

   ЛИТЕРАТУРА

     Справочники

     Начинающим

     Книги

   СОФТ

     Полезный софт

   ЖУРНАЛЫ

     Радио

     Радиоаматор

   ДОКУМЕНТАЦИЯ

     Справочный листок

Главная » Статьи » ARDUINO » Проекты на Arduino

Проигрыватель нот MIDI

Проигрыватель нот MIDI Arduino

Этот туториал показывает, как проигрывать ноты MIDI из Arduino.

MIDI, цифровой интерфейс музыкальных инструментов (Musical Instrument Digital Interface), является полезным протоколом для управления синтезаторами, секвенсорами и другими музыкальными устройствами. Устройства MIDI вообще сгруппированы в два широких класса: контроллеры (то есть устройства, которые генерируют сигналы MIDI, основанные на человеческих действиях), и синтезаторы (включая семплеры, секвенсоры и т.д.) Последние принимают данные MIDI и создают звук, свет или некоторый другой эффект.

MIDI — последовательный протокол, который оперирует 31,250 битами в секунду. Встроенный в Arduino последовательный порт (все они на Mega также) может посылать данные при том уровне.

Байты MIDI разделены на два типа: байты команды и байты данных. Байты команды всегда равняются 128 или больше, или 0x80 к 0xFF в шестнадцатеричном коде. Байты данных всегда меньше чем 127 или 0x00 к 0x7F в шестнадцатеричном. Среди команд есть такие, как высота ноты, велосити, громкость ноты и т.д. Байты данных включают такие вещи, как высота (питч) проигрываемой ноты, велосити или громкость ноты и т.д. Данные о MIDI обычно записываются нотами в шестнадцатеричном коде, потому что банки MIDI и инструменты сгруппированы по 16.

Необходимые аппаратные средства:

  • Плата Arduino
    1 гнездо MIDI
    1 резистор на 220 Ом
    Провод для подключения
    MIDI устройство (дополнительный, для тестирования)

Ниже показано, как подключать соединитель к Arduino:

  • Цифровой пин 1 Arduino соединяется с пином 5 MIDI гнезда 
    Пин 2 MIDI гнезда заземляется
    Пин 4 MIDI гнезда подключается к +5В через резистор на 220 Ом

Исходный код:

(скачать)

/*
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 30 Aug 2011
by Tom Igoe

This example code is in the public domain.
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);
}





Источник: Pobоt.ru | Категория: Проекты на Arduino | Добавлен: 22.10.2013 | Автор: electronic | Просмотров: 4214

Проверка тИЦ и PR
Яндекс.Метрика

РадиоГИД © 2010-2016 Обратная связь Сайты-партнеры
Бесплатный хостинг uCoz