Звуковая студия на рабочем столе


Виртуальные WT-синтезаторы - часть 4


Это позволит ему хотя бы узнавать звучание знакомых инструментов в MIDI-файле (ведь в веселом «поквакивании» OPL-3 трудно расслышать фортепиано или скрипичный оркестр).

В среде музыкантов потребителей таких программ, как правило, не бывает. Это объясняется одним существенным недостатком, присущим большинству

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

Величина задержки может изменяться для разных процессоров и разных настроек виртуальных синтезаторов. Но, как правило, эта задержка не менее 0,5 с. Это небольшое на первый взгляд неудобство на практике приводит к невозможности игры на MIDI-клавиатуре в реальном времени. Неужели программистам трудно переделать виртуальный синтезатор так, чтобы не было этой задержки? Да, действительно трудно, хотя бы по той причине, что архитектура PC не рассчитана на синтез звука с помощью центрального процессора.

Для любознательных читателей поделимся нашими мыслями по поводу того, откуда возникает эта злополучная задержка. Если вам неинтересно — переходите к следующему абзацу.

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


Начало  Назад  Вперед