General MIDI Level 1: що стандартизує GM1

Схема General MIDI Level 1 із 128 програмами, 16 каналами та каналом ударних.
Схема General MIDI Level 1 із 128 програмами, 16 каналами та каналом ударних.
Зображення створено за допомогою генеративного ШІ для MIDITAUR. Концепція, композиція та текстове наповнення — MIDITAUR

Зміст публікації

General MIDI System Level 1, або GM1, створили для більш передбачуваного відтворення MIDI-файлів на різних сумісних синтезаторах. До GM номер програми сам по собі не гарантував, що на іншому пристрої під цим номером буде схожий тип інструмента.

Що стандартизує GM1

General MIDI Level 1
GM1 визначає стандартний набір із 128 мелодичних програм і карту ударних. Він також задає мінімальні можливості сумісного генератора звуку: роботу з 16 MIDI-каналами, можливість використовувати різні тембри на каналах і базові вимоги до одночасного відтворення голосів.

Ударна партія в GM використовує MIDI-канал 10, де різні номери нот вибирають різні ударні звуки замість висоти одного мелодичного інструмента.

Мінімальні можливості GM1-сумісного генератора

Офіційна GM1 specification визначає мінімальну конфігурацію sound generator. Ключові вимоги з первинного матеріалу: підтримка всіх 16 MIDI-каналів; percussion на channel 10; щонайменше 128 melodic presets відповідно до GM Sound Set; щонайменше 47 percussion sounds відповідно до GM Percussion Map; а також мінімальна поліфонія — або 24 динамічно розподілювані голоси для melody/percussion разом, або 16 для melody плюс 8 для percussion.

Це мінімум сумісності, а не межа можливостей сучасного синтезатора.

Чого GM1 не гарантує

GM не визначає конкретний алгоритм синтезу чи семпли. Тому «Acoustic Grand Piano» на двох GM-сумісних пристроях може звучати помітно по-різному. Стандарт гарантує насамперед роль і категорію тембру, а не однаковий аудіорезультат.

128 програм GM1 за групами

GM1 стандартизує 128 мелодичних program numbers. У довідкових таблицях для людей їх зазвичай показують як 1–128, тоді як у самих MIDI Program Change даних використовуються значення 0–127. Нижче — групування інструментів із первинного матеріалу, приведене до чистої data table.

Prog # Group Українською Prog # Group Українською
1-8 Piano Фортепіано 65-72 Reed Дудки
9-16 Chromatic Percussion Хроматична перкусія 73-80 Pipe Свист
17-24 Organs Органи (акордеон і гармоніка) 81-88 Synth Lead Сольні синтетичні тембри
25-32 Guitar Гітара 89-96 Synth Pads Синтезовані підкладки
33-40 Bass Бас 97-104 Synth Effects Синтезовані ефекти
41-48 Strings Струнні (литаври) 105-112 Ethnic Етнічні інструменти
49-56 Ensemble Ансамбль 113-120 Percussive Не хроматична перкусія
57-64 Brass Мідні духові 121-128 Sound Effects Звукові ефекти

Ця таблиця задає категорії й номери, але не змушує різні синтезатори використовувати однакові семпли або однаковий алгоритм синтезу. Тому два GM1-сумісні пристрої можуть відрізнятися за характером звучання.

Нумерація програм

У таблицях для людей зазвичай використовують 1–128. Значення даних Program Change у MIDI 1.0 — 0–127. Це одна з найчастіших причин помилки на одиницю під час програмування.

Базові Control Change у GM1

Серед повідомлень, які важливі для сумісного GM1-відтворення, первинний матеріал окремо виділяв такі контролери. Їхні номери й назви збігаються з актуальною MIDI 1.0 Control Change reference table.

Controller # Назва Що робить
1 Modulation Глибина частотної модуляції
7 Volume Гучність звучання в каналі
10 Pan Панорама
11 Expression Експресія – виразність.
64 Sustain Тривале звучання взятої ноти
121 Reset All Controllers Скинути всі контролери певного каналу до початкового стану
123 All Notes Off Вимкнути всі ноти, які звучать на каналі

Controller 121 і 123 належать до Channel Mode messages: вони використовують простір Control Change, але керують станом каналу, а не звичайним безперервним параметром.

GM1 і GM2

General MIDI 2, затверджений у 1999 році, розширив можливості GM1, але GM1 не зник. Старі й нові .mid файли досі часто орієнтуються саме на базовий GM sound set.

Базові RPN у GM1

Registered Parameter Number (RPN) дає змогу обирати стандартизований параметр, а потім задавати його значення через Data Entry. Для базової GM1-сумісності особливо важливі такі параметри:

RPN Назва Що робить
0 Pitch Bend Sensitivity Чутливість зміни висоти тону
1 Fine Tuning Тонке підстроювання
2 Coarse Tuning Грубе підстроювання

В актуальній MIDI 1.0 reference table ці функції зберігаються як RPN 0 — Pitch Bend Sensitivity, RPN 1 — Channel Fine Tuning і RPN 2 — Channel Coarse Tuning.

Які повідомлення важливо розрізняти

GM System On — системне SysEx-повідомлення, яке переводить сумісний пристрій у GM1-режим. Окремо існують channel messages, наприклад Aftertouch і Pitch Bend, що керують виконанням уже під час гри. Це різні рівні MIDI: GM System On задає режим системи, а channel messages змінюють параметри конкретного MIDI-каналу.

Пояснення простими словами

General MIDI Level 1 можна уявити як спільний набір правил для музичних пристроїв. Без такого набору один синтезатор міг би трактувати номер програми як фортепіано, а інший — як зовсім інший інструмент. GM1 зменшує таку плутанину: він задає спільну структуру тембрів і базові вимоги до відтворення MIDI-файлів.

Важливо розрізняти дві речі: однакова команда і однаковий звук. GM1 допомагає двом пристроям однаково зрозуміти призначення команди, але не змушує їх мати однакові семпли, акустику чи алгоритми синтезу. Тому композиція зберігає загальну інструментовку, хоча тембр може відрізнятися.

Як це побачити на прикладі

Уявіть MIDI-файл, у якому одна партія повинна виконуватися фортепіано, а інша — басом. GM1 потрібен для того, щоб сумісний програвач не переплутав ці ролі. Це схоже на шкільний розклад: номер кабінету допомагає знайти потрібне місце, але сам кабінет у різних школах може виглядати по-різному.

Окремо стежте за нумерацією Program Change. У довідковій таблиці люди часто бачать 1–128, тоді як у самих MIDI-даних використовуються значення 0–127. Якщо механічно перенести число з одного представлення в інше, можна отримати зміщення на одну позицію.

Мініпрактика

Складіть коротку таблицю з трьох рядків: «що задає GM1», «чого GM1 не гарантує», «де можлива помилка на одиницю». Заповніть її без підглядання, а потім звіртеся з матеріалом.

Перевірте себе

  • Навіщо взагалі потрібен GM1?
  • Чому два GM-сумісні пристрої можуть звучати не однаково?
  • Яку помилку легко зробити під час переходу між нумерацією 1–128 і 0–127?
  • Чому поява GM2 не робить GM1 непотрібним для старіших або базових MIDI-файлів?

Джерела