MIDI

MIDI (англ. Musical Instrument Digital Interface, цифровий інтерфейс музичних інструментів) — стандарт передачі інформації між електронними музичними інструментами, розроблений 1983 року, що дає можливість електронним музичним інструментам взаємодіяти між собою чи комп'ютером та іншим MIDI-сумісним обладнанням, здійснювати з одного інструменту управління іншими.

Музичний діапазон стандарту MIDI

MIDI не передає та не генерує звук — натомість MIDI передає «повідомлення», такі як нота-вкл./нота-викл., висота (pitch) та динаміка взятої ноти на інструменті; контрольні сигнали (СС) для таких параметрів як гучність, панорама, сигнали відліку часу для синхронізації темпу, тощо. Музичний інструмент приймає такі повідомлення і генерує звук. Інструментом може бути як реальний пристрій, наприклад, синтезатор, так і віртуальний - програма на комп'ютері. Як електронний протокол, MIDI відзначається надзвичайно широким поширенням.

Принципи функціонування


MIDI описує апаратний інтерфейс, який дозволяє з'єднувати синтезатори різних виробників та комп'ютери, описує протоколи зв'язку для передавання даних від одного пристрою до іншого. MIDI-пристрої можуть взаємодіяти з програмами на комп'ютері. Запис та відтворення MIDI базується на пакетах даних, кожний з яких відповідає MIDI-повідомленню (англ. MIDI-events).

Пристрій для запису та редагування MIDI-повідомлень називається секвенсер (від англ. sequence — послідовність). MIDI-повідомлення можна вводити через MIDI-клавіатуру (в реальному часі або в покроковому режимі), або ж різноманітними способами з клавіатури чи мишкою у програмі-секвенсері. Послідовність MIDI-повідомлень може бути збережена як MIDI-файл (файл має розширення *.mid).

Найчастіше джерелом МІДІ-сигналів є електронна клавіатура. МІДІ повідомлення можуть бути направлені в синтезатор, що також знаходиться в середині цієї клавіатури або бути скерований кудись в інше місце, наприклад, в реальний чи комп'ютерний синтезатор.


Коли натискається клавіша, посилається повідомлення note-on. Це повідомлення складається з двох частин: перша-висота (note) і як швидко її натиснули (velocity). «Note» описує висоту (pitch, пітч) зі значенням між 0 та 127. «Velocity» теж має значення 0-127 і зазвичай описує гучність (gain). Чим більша velocity, тим гучніше. Інколи різна швидкість натиснення створює різний тембр. Або впливає на швидкість ататки звуку. Чим швидше натискаєш, тим різкіше починає звучати звук. Ці параметри залежать від того як налаштований звук на синтезаторі. Також не всі електронні клавіатури мають чутливість до швидкості натискання. Комп'ютерна клавіатура теж не має такої чутливості, тому коли її використовувати як джерело міді-повідомлень (за допомогою спецальних програм, наприклад MIDI YOKE), то секвенсер буде отримувати одне і теж саме значення velocity.

Коли клавіша відпускається, то створюється інше повідомлення note-off. Це повідомлення теж має частину «note», щоб переконатись, що повідомлення про закінчення звучання відноситься до потрібної ноти. Наприклад, якщо натиснути дві ноти, і відпустити одну, то друга продовжить звучання. Інколи note-off теж може містити повідомлення velocity, що надасть синтезатору інформацію про те, як закінчити звук.


На малюнках можна ознайомитись з тим, як відображають міді дані різні програми.

Деякі міді-клавіатури також можуть генерувати такі повідомлення: «Aftertouch» — це коли користувач ще більше натискає на клавішу після того, як її вже натиснув. Це може спровокувати якісь дотаткові зміни в звучанні синтезатора, наприклад, з'явиться вібрато чи поміняється тембр. Чи спрацює це повідомлення залежить від секвенсора чи синтезатора і їх налаштувань.

Також на міді-клавіатурі може розташовуватись pitchbend колесо-слайдер. Це повідомлення має значення від 0 до 127 і за умовчанням знаходиться в значенні 64, що означає «нема зміни висоти тону». Якщо ж його крутити вгору чи вниз, то буде змінюватись висота тону. Це можна використовувати як засіб для виразності під час гри. На скільки сильно буде збільшуватись висота звучання, на пів-тона чи на цілу октаву — залежить від налаштувань патчу синтезатора. Pitchbend не має значення note. А це означає що транпонування буде відбуватись одночасно для всіх нот, що звучать в даний момент. Бувають колесика висоти тону з підвищеною чутливістю, які мають значення 0-16383 (де 8192 — нема зміни висоти).

MIDI повідомлення можуть розсилатись на 16 каналів. Канали використовуються щоб посилати інформацію про різні ноти на різні інструменти. Наприклад, можна налаштувати електронну клавіатуру так, що ноти нижнього регістру (С0 - B2) будуть звучати як бас-гітара. А ноти верхнього регістру (C3 - B5) як піаніно.


Ще деякі не дуже поширені повідомлення:

  • Patch change — дозволяє змінити звук в синтезаторі прямо з МІДІ-контролера (наприклад, переключитись з віолончелі на гітару);
  • Continuous controller — дозволяє задіяти MIDI-ефект що триває в часі за допомогою слайдера (реверберація, ділей, фільтр, гучність);
  • Channel pressure — діє як aftertouch, тільки впливає на кожну ноту даного каналу. Зазвичай використовується як дешевша весрія aftertouch, так як для авктивації потрібен тільки один сенсор для всіх нот, а не по одному сенсору для кожної ноти.

Переваги

  • Компактність. Ціла пісня може бути передана за допомогою декількох сотень міді-повідомлень (в порівнянні з аудіо-даними, які семплуються кілька тисяч раз на секунду);
  • Легко маніпулювати. Легко змінити або відредагувати ноти, їх висоту, тривалість без необхідності перезаписувати всю частину.
  • Змінити звук. Оскільки МІДІ просто описує яку ноту грати, то як саме буде звучати ця нота — обирає автор. Змінюючи інструменти можна змінити загальний звук композиції.

Комутація

Роз'єм для підключення MIDI
MIDI порти та кабель

Фізичний MIDI-інтерфейс використовує роз'єми DIN 5/180°. Оптронові роз'єми використовуються для запобігання замикання через землю між підключеними пристроями. Логічна схема функціонування MIDI являє собою кільцеву топологію з трансивером всередині кожного пристрою. Фізично та логічно трансивери відділяють вхідний та вихідний контури, завдяки чому MIDI-повідомлення, які отримує пристрій з мережі, не призначаються для їх ретрансляції у вихідний контур (MIDI-OUT). Така технологія спричиняє затримку, відчутною на слух у достатньо великих MIDI-мережах.

Сучасні MIDI-пристрої мають три роз'єми — вхідний роз'єм MIDI-IN, через який пристрій отримує повідомлення ззовні та два вихідних роз'єми — MIDI-OUT та MIDI-THRU. Різниця між портами MIDI-OUT та MIDI-THRU полягає в тому, що сигнал з MIDI-OUT генерується безпосередньо на самому інструменті, тоді як порт MIDI-THRU видає точну копію сигналу, який отримує пристрій через вхідний порт MIDI-IN.

Інтерфейс з трьома роз'ємами мають також деякі звукові карти, проте інші потребують зовнішнього інтерфейсу, це може бути ігровий порт, роз'єм DA-15, USB-порт, FireWire або ethernet.

Кодування MIDI-повідомлень

Формат MIDI розроблений таким чином, щоб будь-який секвенсор міг зберігати у файлах як стандартизовані команди, так і специфічні для тією чи іншої програми. При цьому при завантаженні файлів MIDI незрозуміла іншим програмам-додаткам інформація не призводить до непорозумінь, а просто ігнорується.

Кожна MIDI команда складається зі статусного байту і байту даних, або, в залеєжності від типу команди — кількох байтів даних. Для того, щоб пристрій міг безпомилково відрізнити статусний байт від байту даних — прийнято, що кожен старший біт статусного байту має значення «1», а кожний старший біт байту даних — «0». У байті даних решта 7 біт відведено для кодування значення того чи іншого параметру, що дозволяє закодувати 128 різних значень. У статусному байті наступні три біта кодують тип повідомлення, а останні 4 біта — один з 16 каналів повідомлення або тип системного повідомлення.

Види MIDI-повідомлень

Розрізняють два основних види MIDI-повідомлень — канальні та системні.

Канальні повідомлення

Канальні повідомлення безпосередньо впливають на характер звучання. Таких повідомлень 7:

код MIDI-повідомлення Значення Параметри
1001 Note-onНатиснення клавішіНомер клавіші (0—127),
сила натиснення (0—127)
1000 Note-offВідпускання клавішіНомер клавіші (0—127)
1100 Program ChangeВключення інструментуНомер інструменту (0—127)
1110 Pitch BendЗсув по висоти звуку (wheel)
(Використовуэться для ефектів glissando, частотного вібрато тощо)
Величина зсуву (-8191—8191)
1011 Control ChangeЗміна контролеруНомер контролеру (0—127) та значення (0—127)
1010 Key PressureТиск на клавішуСила тиску на клавішу
1101 Channel PressureТиск на клавіатуруСила тиску на клавіатуру

MIDI-повідомлення Note-on та Note-off визначають нотний текст музичного твору і можуть бути відображеними у вигляді музичної партитури. MIDI-повідомлення Control Change використовують для програмування тонких виконавських нюансів, усього їх передбачено 128, проте використовуються, як правило, лише декілька. Найуживанішими є наступні:


назва призначення значення
1 Modulationамплітудне вібрато0 — повністю відключає вібрато
127 — максимальне вібрато
5 PortamentoЧас глісандування (працює при включенному режимі глісандування (контролер № 65)0 — мінімальне,
127 — максимальне значення
7 Volumeгучність звуку0 — повністю виключає звук
127 — максимальна гучність
10 Panпросторова локалізація звуку0 — локалізація зліва
64 — локалізація по центру
127 — локалізація справа
11 ExpressionВиразність виконання
(як правило діє аналогічно контролеру № 7)
0 — мінімальне,
127 — максимальне значення
64 SustainЗатримка звуку (Ефект, аналогічний правій педалі фортепіано)127 — ефект включено
0 — еффект виключено
65 Portamento SwitchРежим глісандування
(відтворення починається від звуку попередньої натиснутої клавіші, поступово глісандуючи до натиснутої в цей час клавіші
Час глісандування визначається контролером № 5
127 — ефект включено
0 — еффект вимкнено.
72 Release timeЧас затухання звуку0 — мінімальне,
127 — максимальне значення
73 Attack timeЧас атаки звуку0 — мінімальне,
127 — максимальне значення
74 BrightnessЯскравість звуку (як правило, корелює частоту зрізу фільтра)
121 All controlers offВідновлює значення всіх контролерів за замовчуванням

Час реалізації того чи іншого MIDI-повідомлення може бути представлений в форматі реального часу — SMTPE (хвилини: секунди: долі секунди) та в форматі музичного часу (такти: долі такту: «тікі»), які пов'язані між собою значенням музичного темпу. З точки зору музичної практики зручнішим для використання є формат музичного часу. Величина PQRN (Pulses per quarter note) (або PPQ - Pulses Per Quarter чи TPQN -Ticks Per Quarter Note) визначає кількість «тіків» — найдрібнішої одиниці часу в долі.

Іншими словами це означає, що якщо відтворити MIDI файл, то він може відтворюватись залежно або незалежно від поточного тему твору чи проекту. Це потрібно враховувати, якщо використовувати МІДІ файли створені іншими виконавцями у своїх проектах. Наприклад, файл був створений для пісні у темпі 120BPM, а ви його хочете використати у пісні з темпом 130BPM. В такому випадку вам потрібно пристосувати тривалість нот чи темп файлу до темпу вашого проекту.

MIDI-повідомлення може передаватися по одному з 16 MIDI-каналів, або по всіх каналах одночасно. Наявність 16 MIDI-каналів дає можливість одночасного незалежного управління 16 різними інструментами.

Системні повідомлення

У статусному байті системних повідомлень 4 старші байти мають значення «1», 4 молодші визначають тип системного повідомлення. Системні повідомлення слугують головним чином для керування роботи програмою, вони не поділяються на канали і стосується всієї системи і мають вищий пріоритет ніж канальні.

Усього передбачено 16 системних повідомлень, проте використовуються з них лише 11:


назва призначення
F0 System ExclusiveSysEx, ексклюзивне повідомлення
F1 резерв
F2 Song Position Pointerпокажчик місця в п'єсі
F3 Song Selectвибір п'єси
F4 резерв
F5 резерв
F6 Tune Requestзапит підстроювання
F7 EOXКінець SysEx, кінець системного виключного повідомлення
F8 Timing Clockсинхронізація за часом
F9 резерв
FA Startзапуск гри по партитурі
FB Continueпродовження гри по партитурі
FC Stopзупинка гри по партитурі
FD резерв
FE Active Sensingперевірка з'єднань MIDI-мережі
FF System Resetскидання всіх пристроїв мережі

Стандарт GM

Стандарт General MIDI (GM) розроблено в 1991 році (MMA) з метою уніфікації музичних інструментів, які визначаються повідомленням Program Change. Цей стандарт містить 128 інструментів та 47 звуків ударних інструментів на 10-му каналі MIDI.

Підтримка стандарту General MIDI передбачає також відповідність інструмента наступним вимогам:

  • Пітримка одночасного звучання до 24-х голосів (мінімум 16 мелодичних і 8 ударних)
  • Підтримка динаміки (velocity)
  • Підтримка одночасно до 16 незалежних каналів (10-й зарезервовано для ударних)
  • Підтримка поліфонії на кожному каналі

Розширеним стандартом є так званий стандарт GS, що дозволяє підключати до 128 банків звуків, що теоретично передбачає використання до 16 384 інструментів.

Література

  • Николенко Д. В. MIDI — язык богов. — СПб.: Регата, 2000. — 144 стр.
  • В. Белунцов. Новейший самоучитель работы на компьютере для музыкантов — Москва: «ТехБук», 2003. — 560 с., илл. ISBN 5-93650-035-7

Посилання

This article is issued from Wikipedia. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.