Синхронізація MIDI

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

Лістинг 2212 Обчислення стандартної кількості відліків на тик

if (_timeFormat <0) {/ / Формат часу SMPTE.

} Else {/ / Музичний формат часу

}

Синхронізація на основі SMPTE

Товариство інженерів кіно і телебачення (Society of Motion Picture and Television Engineers, SMPTE) використовує стандартний метод точного визначення часу За цим методом підраховуються минулі години, хвилини, секунди ікадриКадр це тривалість одного кадру кінофільму або телевізійного зображення, він варіюється в діапазоні від 1/24 до 1/30 секунди Даний метод

широко використовується відео та звукоінженерами і є важливим інструмен-

тому точної синхронізації при відтворенні відеоі аудіозаписів

Для застосування синхронізації SMPTE нам спочатку необхідно визначити використовуване кількість кадрів в секунду Після цього час SMPTE виражається у вигляді чотирьох значень, зазвичай записуваних у формі 01:23:43:21 (1:00,

23 хвилини, 43 секунди, 21 кадр), що визначають минулий час

Існують три основні формати SMPTE: 24 кадру в секунду використовується Кінообладнання, 25 кадрів в секунду телевізійним обладнанням PAL і SECAM (у Європі та Азії) і 30 кадрів в секунду телевізійним чорнобілим обладнанням NTSC (в Північній Америці і Японії) Залишилося ще кольорове телебачення NTSC Коли Національний комітет з телевізійних систем (National Television Systems Committee, NTSC) прийняв стандарт кольорового телебачення, з технічних причин довелося злегка змінити швидкість проходження кадрів Було вибрано значення 29,97 кадрів в секунду Так як це не ціле значення, ми не зможемо представити час у вигляді «година: хвилина: секунда: кадр» доти, поки не будуть зроблені будь-які коректувальні дії SMPTE стандартизовано метод коригування для синхронізації кольорового NTSC B кожної секунді 30 кадрів, але перша секунда хвилини містить всього 28 кадрів, а перша секунда кожної десятої хвилини знову містить 30 кадрів B результаті за 1:03:58:29 відразу слід 1:03:59:00, але за значенням 1:03:59:29 відразу ж слід 1:04:00:02 (викинути два кадри на початку кожної хвилини) Цей метод підрахунку часу називають форматом з відкиданням кадрів (Технічно довжина одного кадру завжди однакова Формат часу з відкиданням кадрів SMPTE змінює довжину секунд і хвилин так, щоб в середньому час SMPTE відповідало «часу на настінних годинах », тому його ще називають форматом з компенсацією кадрів)

Синхронізація SMPTE у файлі MIDI задається шляхом розміщення відповідного 16-бітного коду формату часу в заголовку Старші 8 біт представляють негативне число (щоб показати, що використовуються угоди SMPTE) Точне значення визначає формат загальноприйнято, що 29 позначає формат з відкиданням кадрів Молодші 8 біт визначають кількість тиків на кадр

Лістинг 2213 Обчислення стандартної кількості відліків на тик з використанням угоди SMPTE

int frameCode = (-_timeFormat) &gt&gt 8 float framesPerSecond switch(frameCode) {

case 24: framesPerSecond = 240 break

case 25: framesPerSecond = 250 break

case 29: framesPerSecond = 2997F break / / C відкиданням

/ / Кадрів .

case 30: framesPerSecond = 300 break

default:

cerr &lt&lt &quotIllegal SMPTE frame code\n"

/ / Неприпустимий код

/ / Кадру SMPTE

framesPerSecond = 300

break

}

int ticksPerFrame = _timeFormat &amp 0xFF

samplesPerTick =

SamplingRate () / / відліку в секунду

/ framesPerSecond

/ ticksPerFrame

Синхронізація, основаннаяна музичному темпі

B той час як синхронізація SMPTE традиційна для кіно і телебачення, більшість музикантів вважають за краще використовувати темп, зазвичай вимірюваний в yдapax в хвилину (Beats per minute, bpm) Удар часто відповідає четвертний ноті Темп звичайно варіюється від 80 до 220 bpm значення MIDI за замовчуванням 120 bpm

При використанні цього формату в заголовку MIDI задається позитивне значення, що визначає кількість тиків на удар

Лістинг 2214 Обчислення стандартної кількості відліків на тик з використанням музичних угод

samplesPerTick =

600 / 120

//

За замовчуванням 120 чвертей у хвилину

* SamplingRate()

//

Відліків в секунду

/ _timeFormat

//

Тиків на чверть

Перевага цього формату для музикантів полягає в тому, що темп можна змінити зсередини твори, використовуючи метасобитія завдання темпу Дані для метасобитія завдання темпу представляють собою З-байтное число, що визначає кількість мікросекунд (мільйонних часток секунди) на удар

Лістинг 2215 Обробка події завдання темпу

if ((pEvent-> status == 0xFF) / / Метасобитіе

&& (PEvent-> data [0] == 0x51)) {/ / Метасобитіе темпу

/ / Аргумент мікросекунд

/ / На удар

float beatsPerSecond = 10E6

/ BytesToIntMsb(pEvent-&gtmetaData-&gtdata,3)

if (_timeFormat> 0) {/ / Музичне

/ / Визначення часу

samplesPerTick =

SamplingRate () / / відліку в секунду

/ beatsPerSecond

/ _timeFormat / / Тиків на удар

}

}

Одна з найбільш вразила особливостей синхронізації MIDI біль-

ШОЕ кількість різних термінів:

‰ тик MIDI Значення дельти часу усередині стандартного файлу MIDI за-

даються в тиках

‰  тактові імпульси MIDI Тактовий імпульс MIDIдорівнює 1/24 четвертний

ноти MIDI

‰  четвертна нота MIDIТривалість четвертний ноти MIDI (в мілісекунд-

Кундієв) визначається метасобитіем завдання темпу (див вище) Тема стандартного файлу MIDI встановлює звязок між четвертними нотами MIDI і тиками MIDI

‰  музична четвертна нота Четвертна нота MIDI це просте злагоди-

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

‰  темп Музичний темп, за традицією, вимірюється в ударах в хвилину

Зазвичай удар відповідає музичної четвертний ноті

‰  метроном Відповідна швидкість метронома для твору визна-

деляется подією завдання музичного розміру (див вище)

Стандарт General MIDI

Як правило, не варто очікувати, що різні синтезатори будуть однаково реагувати на команди Це дозволяє постачальникам розрізняти свої інструменти (наприклад, у кого-небудь з виробників синтезатор може мати характерний звук фортепіано), але викликає у музикантів деяке розчарування

General MIDI спроба вирішити основні проблеми сумісності Продукти MIDI (програмні та апаратні), виробники яких заявляють, що вони сумісні з General MIDI, повинні задовольняти певним вимогам:

 ‰  Рº Ð ° Ð ½ Ð ° Ð »Ñ <Ñ 1-Ð ³ Ð ¾ Ð ¿Ð ¾ 9-Ð ¹ Ð ¸ Ñ 11-Ð ³ Ð ¾ Ð ¿Ð ¾ 16-Ð ¹ Ñ Ð ² л Ñ ÑŽÑ, Ñ Ñ мелодійними каналами General MIDI Ці канали повинні реагувати на подію зміни програми, вибираючи один з 128 інструментів, наведених у табл 225

 ‰  Рº Ð ° Ð ½ Ð ° Ð »10-Ð ¹ (Каналрітма) повинен підтримувати звучання 47 інструментів,

заданих в табл 226 всі ці звуки є результатом зміни програм-

ми на інструмент 1

 ‰  Р¿Ñ € Ð ¾ ÐуРº Ñ,  ÐÐ ¾ Ð »Ð ¶ ÐμÐ ½  Р¿Ð ¾ ÐÐÐμÑ € Ð ¶ Ð ¸ Ð ² Ð ° Ñ, ÑŒ  Р¾ ÐÐ ½ Ð ¾ Ð ² Ñ € ÐμÐ ¼ ÐμÐ ½ Ð ½ Ð ¾ Ðμ  Р² Ð ¾ Ñ Ð ¿Ñ € Ð ¾ Ð ¸ Ð · Ð ² ÐμÐÐμÐ ½ Ð ¸ Ðμ  16  Р½ Ð ¾ Ñ,  Р½ Ð °

мелодійних каналах і 8 нот на каналі ритму

 ‰  Р¿Ñ € Ð ¾ ÐуРº Ñ, Ñ < General  MIDI  Ð'Ð ¾ Ð »Ð ¶ Ð ½ Ñ < Р¾ Ð ± ÐμÑ Ð ¿ÐμÑ ‡ Ð ¸ Ð ² Ð ° Ñ, ÑŒ Â Ñ € Ñ Ð ' Ð' Ñ ​​€ уР³ Ð ¸ Ñ ...  Р² Ð ¾ Ð · Ð ¼ Ð ¾ Ð ¶ Ð ½ Ð ¾ Ñ Ñ, ÐμÐ ¹,

включаючи використання певних елементів управління (модуляція, гучність, панорама, експресія, підтримка, повторна ініціалізація всіх елементів управління і вимикання всіх нот), зміна параметрів (чутливість до зміни висоти, точна і груба настройка), канал послекасания та зміну висоти

Зверніть увагу на те, що мелодійний і ритмічний канали використовують абсолютно різні набори інструментів Щоб встановити інструмент мелодійного каналу, ви посилаєте подія зміни програми MIDI для вибору інструменту, а потім подія, активирующее ноту, і подія, дезактивують ноту, для програвання нот цього інструменту Однак такий підхід безглуздий, якщо мова йде про ударних інструментах, які мають всього одну ноту Для відтворення

Таблиця 225 Мелодійні інструменти General MIDI

Фортепіано Язичкові музичні інструменти

1 Акустичний рояль 65 Сопрано-саксофон

2 Яскраве акустичне фортепіано 66 Альт-саксофон

3 Електричний рояль 67 Тенор-саксофон

4 Засмученим фортепіано 68 Баритон-саксофон

5 Електропіано 1 69 Гобой

6 Електропіано 2 70 Англійський ріжок

7 Клавесин 71 Фагот

8 Клавінета 72 Кларнет

Хроматичні ударні Труби

9 Челеста 73 Пікколо

10 Металофон 74 Флейта

11 Шарманка 75 Блок-флейта

12 Віброфони 76 Пан-флейта

13 Маримба 77 Пляшки

14 Ксилофон 78 Shakuhachi

15 Трубчасті дзвіночки 79 Свисток

16 Тарілки 80 Окарина

Органи Synth Lead (синтезатор соло)

17 Педальний орган 81 Lead 1 (косинець)

18 Перкусійний орган 82 Lead 2 (зуб пилки)

19 Рок-орган 83 Lead 3 (Калліопа)

20 Церковний орган 84 Lead 4 (chiff)

21 Язичкова орган 85 Lead 5 (charang)

22 Акордеон 86 Lead 6 (голос)

23 Гармоника 87 Lead 7 (квінта)

24 Танго акордеон 88 Lead 8 (бас + lead)

Гітари Synth Pad

25 Акустична гітара (нейлон) 89 Pad 1 (нове століття)

26 Акустична гітара (сталь) 90 Pad 2 (теплий)

27 Електрогітара (джаз) 91 Pad 3 (polysynth)

28 Електрогітара (чиста) 92 Pad 4 (хор)

29 Електрогітара (приглушена) 93 Pad 5 (викривлений)

30 Гітара з перевантаженням 94 Pad 6 (Металевий)

31 Гітара «метал» 95 Pad 7 (астро)

32 Гармоніки гітари 96 Pad 8 (хитний тон)

Таблиця 225 Мелодійні інструменти General MIDI (Закінчення)

БасовіSynth ефекти

33 Акустічесій бас 97 Ефект 1 (дощ)

34 Електричний бас (палець) 98 Ефект 2 (фонограма)

35 Електричний бас (щипок) 99 Ефект 3 (кристал)

36 Безладова бас 100 Ефект 4 (атмосфера)

37 Шльопати бас 1101 Ефект 5 (прозорість)

38 Шльопати бас 2102 Ефект 6 (гобліни)

39 Synth бас 1103 Ефект 7 (луна)

40 Synth бас 2104 Ефект 8 (наукова фантастика)

Струнні Національні

41 Скрипка 105 Ситар

42 Альт 106 Банджо

43 Віолончель 107 Самісен

44 Контрабас 108 Кото

45 Струнні тремоло 109 Калімба

46 ​​Струнні пиццикато 110 Волинка

47 Оркестрова арфа 111 Сільська скрипка

48 Литаври 112 Санаї

Ансамбль Ударні

49 Струнний ансамбль 1113 Звенящие дзвіночки

50 Струнний ансамбль 2114 Agogo

51 SynthStrings 1115 Сталеві барабани

52 SynthStrings 2116 Деревяний брусок

53 Хорове ахання 117 Барабан taiko

54 Голосові зітхання 118 Мелодійний тому

55 Synth голос 119 Synth барабан

56 Оркестровий удар 120 Зворотні тарілки

Духові Звукові ефекти

57 Труба 121 Шум від перебору струн гітари

58 Тромбон 122 Шум дихання

59 Туба 123 Шум прибою

60 Труба з Сурдинка 124 Щебет птахів

61 Французький ріжок 125 Дзвінок телефону

62 Духова секція 126 Шум вертольота

63 Synth Brass 1127 Оплески

64 SynthBrass 2128 Постріл

Таблиця 226 Ритмічні інструменти General MIDI

Нота Опис Нота Опис Нота Опис

35

Акустичний бас-барабан

51

Скачуть тарілки 1

67

Високий agogo

36

Бас-барабан 1

52

Китайські тарілки

68

Низький agogo

37

Бічна паличка

53

Їздовий дзвіночок

69

Кабаса

38

Акустичний малий барабан

54

Тамбурин

70

Маракас

39

Бавовна в долоні

55

Бризок тарілок

71

Короткий свист

40

Електричний малий барабан

56

Дзвіночок

на шиї корови

72

Довгий свист

41

Низький

підлоговий там-там

57

Гуркіт тарілок 2

73

Короткий guiro

42

Закритий hi-hat

58

Vibraslap

74

Довгий guiro

43

Високий

підлоговий там-там

59

Скачуть тарілки 2

75

Ключ

44

Педальний hi-hat

60

Високий bongo

76

Висока колода

45

Низький там-там

61

Низький bongo

77

Низька колода

46

Відкритий hi-hat

62

Приглушена верхня Конга

78

Приглушена cuica

47

Средненізкая там-там

63

Відкрита висока Конга

79

Відкрита cuica

48

Середньовисокі там-там

64

Низька Конга

80

Приглушений трикутник

49

Гуркіт тарілок 1

65

Висока timbale

81

Відкритий трикутник

50

Високий тому

66

Низька timbale

гри на ударному інструменті необхідно вибрати перший інструмент для ритм-

чеського каналу і відтворити відповідну ноту

Зацікавленість у подальшій стандартизації вимог General MIDI не зникає General MIDI називає всього 175 стандартних інструментів спроба завдання більш точної класифікації не робиться Крім того, цей стандарт не визначає, яким чином інструменти повинні обробляти ноту або інформацію про швидкість каналу Наприклад, один синтезатор може інтерпретувати швидкість каналу лінійно, другий логарифмічно Проте, MMA випустила документ General MIDI Developer Guidelines and Survey (Основні керівні принципи та огляди для розробника MIDI), в якому проводиться дослідження загальної практики застосування і дається безліч рекомендацій всім зацікавленим у реалізації специфікації General MIDI

Офлайн семпли

Новий стандартDownloadable  Samples  Standard  Level  10  (Стандарт рівня 10 на семпли з можливістю завантаження, DLS-1) визначає спосіб зберігання звучання інструментів у файлі Цей файл, званийфайлом DLS,зберігає один або кілька семплів поряд з обширною інформацією, визначальною, як саме

повинні відтворюватися ці зразки Даний формат файлу базується на форматі WAVE

Одна частина стандарту DLS-1 заслуговує окремої уваги Файловий формат DLS визначає безліч параметрів, що деталізують спосіб належного відтворення семпла Тим самим неявно визначається точна модель відтворення звучання семпла Основна ідея еквівалентна тій, яку я використовував для класу SampledInstrument в попередньому розділі, однак в моделі DLS введені деякі удосконалення:

 ‰  ÐÐ ¸ Ð ° Ð ¿Ð ° Ð · Ð ¾ Ð ½ Ð ¿Ð ° Ð ½ Ð ¾ Ñ € Ð ° Ð ¼ Ð ¸ Ñ € Ð ¾ Ð ² Ð ° Ð ½ Ð ¸ Ñ ÐÐ »Ñ Ñ Ñ, ÐμÑ € ÐμÐ ¾ (Ð ² л ÐμÐ ² Ð ¾-Ð ² Ð ¿Ñ € Ð ° Ð ² Ð ¾) Ð ¿Ð ¾ Ð · Ð ¸ Ñ † Ð ¸ Ð ¾ Ð ½ Ð ¸ Ñ € Ð ¾ Ð ² Ð ° Ð ½ Ð ¸ Ñ Ð ² Ñ <Ñ ... Ð ¾ Ð'Ð ½ Ð ¾ Ð ³ Ð ¾ Ñ Ð ¸ Ð ³ Ð ½ Ð ° Ð »Ð °;

‰  низькочастотний генератор, забезпечує керування вібрато і тре-

моло

 ‰  Р³ ÐμÐ ½ ÐμÑ € Ð ° Ñ, Ð ¾ Ñ € Ð ¾ Ð ³ Ð ¸ Ð ± Ð ° ÑŽÑ ‰ ÐμÐ ¹, Ð ¸ Ð · Ð ¼ ÐμÐ ½ Ñ ÑŽÑ ‰ Ð ¸ Ð ¹ Ð ° Ð ¼ Ð ¿Ð »Ð ¸ Ñ, уÐу Ð ² Ð ¾ Ð ² Ñ € ÐμÐ ¼ ÐμÐ ½ Ð ¸

 ‰  Р² Ñ, Ð ¾ Ñ € Ð ¾ Ð ¹ Ð ³ ÐμÐ ½ ÐμÑ € Ð ° Ñ, Ð ¾ Ñ € Ð ¾ Ð ³ Ð ¸ Ð ± Ð ° ÑŽÑ ‰ ÐμÐ ¹, Ð ¸ Ð · Ð ¼ ÐμÐ ½ Ñ ÑŽÑ ‰ Ð ¸ Ð ¹ Ð ² Ñ <Ñ Ð ¾ Ñ, у Ñ, Ð ¾ Ð ½ Ð ° Ð ² Ð ¾ Ð ² Ñ € ÐμÐ ¼ ÐμÐ ½ Ð ¸;

 ‰  Р¿Ð ¾ ÐÐÐμÑ € Ð ¶ Ð º Ð ° Ñ Ð »ÐμÐ ¼ ÐμÐ ½ Ñ, Ð ¾ Ð ² уР¿Ñ € Ð ° Ð ² л ÐμÐ ½ Ð ¸ Ñ Ñ, Ð ¾ Ñ ‡ Ð ½ Ð ¾ Ð ¹ Ð ½ Ð ° Ñ Ñ, Ñ € Ð ¾ Ð ¹ Ð º Ð ¾ Ð ¹, Ð ¿Ð ¾ Ð ÐÐμÑ € Ð ¶ Ð º Ð ¾ Ð ¹, Ð ¸ Ð · Ð ¼ ÐμÐ ½ Ðμ-

ням висоти, механізмом модуляції, гучністю і експресією

Джерело: Кінтцель Т Керівництво програміста по роботі зі звуком = A Programmers Guide to Sound: Пер з англ М: ДМК Пресс, 2000 432 с, іл (Серія «Для програмістів»)

Схожі статті:


Сподобалася стаття? Ви можете залишити відгук або підписатися на RSS , щоб автоматично отримувати інформацію про нові статтях.

Коментарів поки що немає.

Ваш отзыв

Поділ на параграфи відбувається автоматично, адреса електронної пошти ніколи не буде опублікований, допустимий HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

*

*