Технологии программирования миди

 Навигация:

 Поиск:

 Новости:

17.02.2007
Полностью переработан дизайн сайта.

6.01.2007
Добавлен раздел Наработки Полезные и интересные программы и их исходники от автора.

19.11.2006
Функции WriteVarLen и ReadVarLen портированы с СИ на Delphi читать

14.11.2006
Появилась cтатья Midi-протокол глазами программиста

24.10.2006
Написана вторая часть MMSystem Функции midiOutGetVolume midiOutSetVolume midiOutMessage midiOutShortMsg и midiOutLongMsg

12.10.2006
Добавлен раздел Multimedia , который содержит большое количество информации по мультимедийным технологиям.

1.09.2006
Добавлен раздел MMSystem в котором находятся
подробные опсания функций winmm.dll, определенных в модуле mmSystem.pas,
с примерами их использования в Delphi.

13.08.2006
Опубликован исходник приложения, записывающего игру на клавиатуре
в стандартный midi-файл SMF - 0

4.07.2006
Добавлен раздел Структура формата миди-файла

 Счетчики:
Rambler's Top100 Яндекс цитирования Rambler's Top100
 Контент:

Методы преобразования информации при записи, синтезе и вос-произведении звука

Звук представляет собой колебания физической среды (обычно возду-ха) частотой приблизительно 20 - 20000 Гц, все современные системы обработки звука основаны на преобразовании этих колебаний в электрический сигнал, последующей его (аналоговой или цифровой) обработки и вывода вновь в виде колебаний физической среды. Эффект стереофонии достигается временной разницей колебаний, легко улавливаемой благодаря наличию приблизительно 20-сантиметровой базы между приемниками аудиоинформации – ушами (разница порядка 10-4 сек).

В самом начале своей истории компьютер фирмы IBM был оснащен примитивным динамиком, позволявшем (посредством драйвера SPEAKER.DRV) воспроизводить звуки (одновременно) одного тона без регулировки уровня звука; именно в это время были разработаны основные принципы преобразования звука для бытовых компьютеров.

Первый шаг к более серьезной работе со звуком был сделан в 1987 г., когда фирма Creative Labs (www.creative.ru) разработала Creative Music System (C/MS), представлявший собой 12-голосный стереомузыкальный синтезатор, начавший распространяться в 1989 г. под маркой Game Blaster. Огромный коммерческий успех этой карты привел в скором времени к по-явлению других подобных карт, наиболее известной из которых является карта AdLib; в основе их функционирования лежит методё известный как нижеописанный ‘синтез путем частотной модуляции’ (FM Syntesis, см. ни-же).

Запись произвольного звука осуществляется путем прямой оцифровки аналогового сигнала, представляющего собой электрическую копию звукового давления (преобразователем является датчик звукового давления -микрофон). Частота оцифровки (частота преобразования) называется частотой выборки сигнала и по известной теореме Котельникова-Найквиста должна быть не ниже удвоенного значения максимальной частоты преобразуемого сигнала (например, если спецификация MPC Level 1 определяет частоту преобразования 11 kГц, то верхний предел записываемой частоты составляет около 5 kГц).

Преобразование аналогового сигнала в цифровую форму выполняет аналого-цифровой преобразователь (АЦП), служащий для дискретизации сигнала по времени (частота оцифровки) и квантования по уровню (собст-венно цифровое представление сигнала). Обычно в АЦП применяется тех-нология преобразования с импульсно-кодовой модуляцией (PCM, Pulse Code Modulation). Временные промежутки между моментами преобразо-вания сигнала называют интервалами выборки (Sampling Interval); эта ве-личина обратно пропорциональна частоте выборки, или сэмплингом (Sampling Rate). Амплитуда аналогового сигнала (Sample Value) при каждом преобразовании делится (квантуется) по уровню и кодируется в соответствующий параллельный цифровой код (Digital Sample), время преобразования аналогового сигнала в цифровой код именуется временем выборки (Sampling Time).

Разрешающей способностью АЦП называется наименьшее значение аналогового сигнала, которое приводит к изменению цифрового кода. На-пример, если АЦП выдает 8-разрядный код, разрешающая способность равна 1/(28)=1/256 от максимальной амплитуды аналогового сигнала (око-ло 0,4% в относительных единицах), 16-разрядный АЦП имеет точность представления сигнала не хуже 1/(216)=1/65536 (0,0015%).

С увеличением разрядности АЦП растет его динамический диапазон (каждый дополнительный бит соответствует увеличению приблизительно на 6 дБ). 8-разрядное преобразование обеспечивает динамический диапа-зон 48 дБ (качество кассетного магнитофона), 12-разрядное – 72 дБ (каче-ственный катушечный магнитофон), 16-разрядное – 96 дБ (качество аудио компакт-диска).

Полученный с АЦП параллельный код разрядностью 8 ? 16 последо-вательно (побитно) записывается с частотой сэмплинга в аудиофайл (при необходимости используется буфферизация), при этом поток несжатых цифровых аудиоданных велик (см. таблицу ниже); ниже будут приведены методы снижения потока данных и размеров аудиофайлов.
Часто-та (kГц) Разре-шение (бит) Режим Качество звучания Скорость передачи данных (kb/s) Размер файла минутной записи (Мбайт)
11,025 8 моно телефонная линия 10 0,66
11,025 8 стерео 21 1,3
11,025 16 моно 1,3
11,025 16 стерео 2,6
22,05 8 моно радио-трансляция 21 1,3
22,05 8 стерео 43 2,6
22,05 16 моно 2,6
22,05 16 стерео 5,3
44,1 8 моно 2,6
44,1 8 стерео 5,3
44,1 16 моно 86 5,3
44,1 16 стерео запись на CD 172 10,5

В студийной работе происходит переход на стандарт 96 kГц/24 бита, который по теоретически достижимому качеству пока заметно перекрыва-ет возможности существующих звуковых систем.

Заметим, что АЦП (также как и ЦАП -цифро-аналоговые преобразователи) выполняют свои функции аппаратно, не загружая ЦП (центральный процессор); последний управляет только режимами работы АЦП и ЦАП. Обобщенные схемы записи и воспроизведения звука приведены на рис.3.2 и 3.3; именно так создаются и воспроизводятся широкоизвестные WAV-файлы (вопросы сжатия и распаковки ‘на лету’ аудиоданных обсуждаются ниже).

ЦАП выполняет обратное (цифро-аналоговое) преобразование, в ре-зультате работы ЦАП получается ступенчатый сигнал, представляющий собой исходный аналоговый сигнал плюс обусловленная сэмплингом вы-сокочастотная составляющая (лежащая выше верхнего предела слышимых частот и поэтому легко фильтруемая).

Сказанное относится к записи и воспроизведению произвольного зву-ка, во многих случаях возможно значительно сократить объем хранимых данных путем синтеза (создания) звука. При этом мы лишаемся возмож-ности работы с произвольным звуком, остается лишь возможность обра-ботки некоторого (моделируемого) подмножества звучаний. Достаточно широко применяются звуковые карты, оснащенные DSP (Digital Signal Processor), обладающие многими дополнительными возможностями обра-ботки звука (распознавание речи, реверберация, спецэффекты типа 3-х мерного звучания и др.).

Наиболее часто применяют цифровой FM-синтез звука, основы которого заложены в конце 70-х годов студентом Стенфордского университета Джоном Чоунингом (John Chowning). Несколько десятилетий ранее Роберт Муг (Robert Moog) реализовал в серии своих всемирно известных синтезаторов аналоговый вариант FM-синтеза путем использования генераторов огибающей, управляющих амплитудой отдельных VOC-генераторов (Voltage-Controlled Oscillator).

В цифровом FM-синтезе каждый из описанных управляемых генераторов называется оператором. В операторе выявляются два базовых элемента: фазовый модулятор и генератор огибающей. Фазовый модулятор задает частоту (высоту) звука, а генератор огибающей -его амплитуду (громкость).

В большинстве случаев для синтеза одного инструмента достаточно двух операторов -оператора несущей (основной тон) и оператора модули-рующей частоты (обертон). Например, для струнных инструментов (фор-тепиано, гитара и др.) можно выделить общие моменты -при нажатии произвольной клавиши (возбуждении колебаний струны) амплитуда сна-чала быстро возрастает до максимума, затем несколько спадает, после чего следует относительно продолжительный участок медленного падения ам-плитуды и, наконец, участок быстрого затухания. Описанные стадии сиг-нала носят названия Attack, Decay, Sustain и Release соответственно, по-этому сам генератор огибающей именуется ADSR-генератором .

Обычно пара операторов определяет голос; современные наборы мик-росхем для FM-синтеза звука содержат до 36 - 40 голосов, осуществляя различные режимы (алгоритмы) FM-синтеза (в том числе и самые сложные, предполагающие использовать 18 и более операторов для синтеза речи). В звуковых картах обычно присутствует специальный генератор шума, обрабатываемый одним оператором (оператором огибающей).

Кроме FM-синтеза, в высококачественных звуковых картах используется табличный или WT-синтез (Wave Table synthesis); такие устройства именуют также синтезаторами выборок или сэмплерами (Samples). Идея применения WT-синтеза состоит в использовании специальных алгоритмов, позволяющих по одному лишь характерному тону (выборке) музыкального инструмента воспроизвести все остальные тона.

Выборки сигналов (таблицы) сохраняются в ROM (Read Only Memory) или программно загружаются в RAM (Random Access Memory) звуковой карты, после чего специализированный WT-процессор выполняет опера-ции над выборками сигнала, изменяя их амплитуду и частоту . При этом генерируемое WT-методом звучание ближе к звуку реальных ин-струментов, нежели при FM-технологии. Дополнительную гибкость WTметоду дает возможность простого изменения таблиц выборок; многие карты поддерживают как FM-так и WT-синтез.

Файлы для генерации звука посредством FM-технологии имеют расширение MID (от MIDI - Musical Digital Interface, совместимым форматом является RMI) и содержат ссылки на ноты (кодируемые числами), их дли-тельность и тип музыкального инструмента (до 200 инструментов в современных картах). MID-файлы естественным образом могут быть воспроизведены и на поддерживающих WT-синтез звуковых картах.

Содержание
 Bash.org.ru:

 Реклама:

 ©Copyright:
http://www.last.h16.ru - программирование миди. Идея, разработка и поддержка : Mo-skin © 2006-2007
X