FAQ по звуковым картам Sound Blaster AWE

Евгений Музыченко

Какие звуковые карты называются Sound Blaster?

Так называются только карты производства Creative - фирмы, состоящей из основной - Creative Labs, и научно-исследовательской - Creative Technology. Sound Blaster - одна из торговых марок Creative. Для всех остальных карт используется обозначение "Sound Blaster Compatible" - "Совместимая с SB". Везде, где речь идет о Sound Blaster, должна подразумеваться только продукция Creative, иначе используется обозначение Sound Card.

Что обозначает аббревиатура AWE?

Advanced Wave Effects (передовые волновые эффекты) - технологию синтеза звука, используемую в таблично-волновом синтезаторе EMU8000. Аббревиатурой AWE принято обозначать группу карт, в состав которых входит EMU8000 - в виде отдельной микросхемы или интегрированный в общую микросхему, однако AWE32 или AWE64 - часть обозначения конкретной серии карт, имеющих общее название "Sound Blaster AWE32", "Sound Blaster AWE64". Например, карта SB 32 PnP версии 3670, содержащая интегрированный с системой управления EMU8000, на микросхеме которого написано "AWE", не является картой AWE32 или AWE64, а имеет собственное обозначение - "Sound Blaster 32 PnP".

В группу AWE входит три серии карт: SB AWE32, SB 32 и SB AWE64.

Цифры в названиях AWE32 и SB 32 происходят от количества голосов синтезатора EMU8000; цифра в названии AWE64 происходит от добавления к ним еще 32 голосов программного синтезатора WaveSynth/WaveGuide, который представляет собой эмулятор, работающий через цифровой тракт карты. Аппаратных голосов в AWE64 по-прежнему 32. Все карты группы AWE - 16-разрядные, с интерфейсом ISA.

Какие существуют основные разновидности AWE-карт?

SB AWE32 - первая модель карты этого типа. Содержит синтезатор EMU8000 (микросхема CT1971), ОЗУ на 512 кб, разъемы для установки SIMM, разъем для дочерней платы и сигнальный процессор CSP (Creative Sound Processor), называемый также ASP (микросхема CT1748), облегчающий сжатие звука и распознавание речи. Роль центрального процессора карты исполняет микроконтроллер CT1741.

SB AWE32 Value - упрощенный и удешевленный вариант AWE32. Не имеет CSP, разъемов для SIMM и дочерней платы.

SB 32 - модель, выпущенная вместо Value. Не имеет CSP, ОЗУ и разъема для дочерней платы, однако имеет разъемы для SIMM. Поздние модели SB 32 (с 1997 г.) выпускались на основе набора микросхем AWE64.

SB AWE64 Value (вначале - просто AWE64) - переработанный вариант SB 32. Центральный процессор и синтезатор EMU8000 объединены в одной микросхеме CT8903 или CT8920. Содержит ОЗУ на 512 кб, расширяемое специальными модулями памяти. Разъема для дочерней платы также не имеет. Все модели, кроме CT4380, не имеют IDE-интерфейса.

SB AWE64 Gold - улучшенный вариант AWE64. Содержит ОЗУ на 4 Мб, качественные 18-разрядный ЦАП, 20-разрядный выход S/PDIF и усилитель (только линейный выход). Не имеет разъема для дочерней платы и IDE-интерфейса.

Каждая карта Creative Labs выпускаются в нескольких модификациях, отраженных в коде модели (CTxxxx), нанесенном краской на саму плату:

Во всех версиях карт установлено одно и то же ПЗУ с базовым набором семплов (General MIDI) объемом 1 Мб.

Каковы структура и возможности синтезатора EMU8000?

Микросхема EMU8000 (CT1971) разработана фирмой E-mu Systems, впоследствии вошедшей в состав Creative, и применяется также в популярной модульной рабочей станции E-mu Emulator 4x.

EMU8000 представляет собой специализированный DSP, имеющий 32 виртуальных звуковых канала (голоса). Каждый канал состоит из генератора звука, выбирающего отсчеты семплов из ПЗУ или ОЗУ, двух 6-стадийных генераторов огибающей (delay, attack, hold, decay, sustain, release), двух генераторов низкой частоты (LFO), управляемого резонансного фильтра и блока эффектов reverb/chorus. Для модуляции сигнала по амплитуде могут использоваться LFO1 и Env2, по частоте - Env1 и оба LFO, для управления частотой среза фильтра - Env1 и LFO1. Тип эффекта (reverb, chorus, delay) устанавливается общим для всех, глубина каждого из эффектов устанавливается отдельно для каждого голоса.

В EMU8000 используется адресное пространство 16-разрядных слов общим объемом 32 Мб; первые 4 Мб зарезервированы для ПЗУ, поэтому ОЗУ может иметь объем не более 28 Мб. В памяти хранятся монофонические 16-разрядные семплы в формате Intel (младшие байты имеют меньший адрес).

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

Генератор звука последовательно считывает отсчеты семпла из ПЗУ или ОЗУ с фиксированной скоростью 44100 отсчета в секунду. Для воспроизведения семплов на высоте, отличной от основного тона, изменяется шаг выборки с применением 4-точечной интерполяции для вычисления промежуточных значений отсчетов.

Шестистадийные генераторы Env работают следующим образом (параметр Sustain имеет размерность уровня, остальные - времени):

Генераторы LFO выдают синусоидальный выходной сигнал. Работа каждого генератора начинается с момента старта ноты, с возможной задержкой от момента старта.

Все виды модуляции могут быть реализованы одновременно - Env1/Env2 и LFO1/LFO2 работают независимо друг от друга, и для каждого из них могут быть заданы независимые коэффициенты воздействия на частоту и амплитуду сигнала, а также на частоту среза фильтра.

Физически 32 канала, как и в других микросхемах этого типа, реализованы попросту в виде наборов данных, описывающих состояния генераторов и фильтров, которые последовательно обрабатываются DSP. За один период вывода звука (1/44100 с) процессор последовательно обрабатывает все каналы с помощью необходимых математических операций и формирует для каждого голоса очередное цифровое значение амплитуды.

Полученные в каждом такте выходные отсчеты всех 32 каналов суммируются и подаются на выходной ЦАП. Для снижения вероятности переполнения выходного сумматора семплы в ОЗУ/ПЗУ перед загрузкой должны быть обработаны эквалайзером с ослаблением частот 3..4 кГц; в стандартном комплекте программного обеспечения под Windows эти функции выполняет AWE Manager (aweman.dll). Цифровой эквалайзер EMU8000 выполняет обратное преобразование.

Какие модули памяти устанавливаются в карты AWE?

В AWE32 и SB 32 устанавливаются пары одинаковых 30-контактных SIMM объемом 256 кб, 1, 4 или 16 Мб каждый, со временем выборки не более 70 нс (модели выпуска до 1995 года допускают 80 нс). Некоторые модели неявно поддерживают SIMM объемом по 512 кб и 2 Мб. В AWE64 устанавливаются специальные модули памяти Creative.

При установке памяти в AWE32 необходимо переставить перемычку DRAM_EN, которая находится возле разъемов SIMM - эта перемычка переключает встроенную микросхему объемом 512 кб и дополнительные SIMM; вместе их использовать невозможно. В AWE64 Gold объем устанавливаемых модулей добавляется к внутреннему 4-мегабайтному ОЗУ.

Поскольку объем ОЗУ EMU8000 не может превышать 28 Мб - при установке 32 Мб последние четыре из них не используются. Модули меньшего объема используются полностью.

Для чего нужен выход S/PDIF?

Это выход звука в цифровом виде с эквалайзера EMU8000 (в AWE64 Gold - также с общего цифрового канала) - в 20-разрядном (для AWE64 Gold) или 18-разрядном (для остальных моделей) формате на частоте 44.1 кГц, который можно подать на вход внешнего ЦАП или усилителя со входом S/PDIF, получив более качественный звук с WT-синтезатора. На картах AWE32 с этого выхода снимается также сигнал FM-синтезатора.

Сигнал S/PDIF есть только на микросхеме CT1971; с микросхем CT8903 и CT8920 цифровой сигнал снимается во внутреннем формате, а в AWE64 Gold для формирования S/PDIF-выхода имеется специальный преобразователь. Таким образом, на картах AWE64 Value и поздних SB 32, не содержащих микросхемы CT1971, сигнал S/PDIF недоступен. В последних моделях SB 32 на CT1971 разъем S/PDIF не впаян, однако есть разводка для него.

В большинстве моделей AWE выход сделан в виде двухконтактного внутреннего разъема (сигнальный + общий) с амплитудой ТТЛ (5 В). В AWE64 Gold амплитуда сигнала приведена к стандарту (0.5 В) и в комплект включена дополнительная планка с разъемом типа RCA.

При наличии ТТЛ-выхода его можно нагрузить на инфракрасный или красный светодиод (например, АЛ307БМ, АЛ336) через токоограничительный резистор порядка 300 Ом, получив таким образом излучатель, вставляемый в оптический цифровой вход бытовой или студийной аппаратуры.

Что такое SoundFont?

Архитектура и формат банков загружаемых инструментов для EMU8000. Различаются две разновидности:

SoundFont 1: Три уровня - Sample, Layer и Instrument. Sample - семпл с собственной частотой дискретизации, основным тоном и точками зацикливания; Layer (слой) - семпл, воспроизводимый в заданном диапазоне нот, с собственными установками модуляторов (Env/LFO, высота/амплитуда/фильтр) Instrument - совокупность слоев, которые могут как стыковаться по высоте нот, так и перекрываться для одной ноты. При запуске звучания ноты запускаются все слои, относящиеся к данной ноте - каждый на своем голосе, с собственными параметрами звучания и модуляции. Уровень Instrument непосредственно "виден" по MIDI в виде номеров программ, или патчей. Тип файла - SBK.

SoundFont 2: Уровень Sample остался без изменения, уровням Layer и Instrument соответствуют Instrument и Preset, для которых введен дополнительный уровень Zone - совокупность семплов (для Instrument) или инструментов (для Preset) в пределах диапазона нот или скоростей удара, с индивидуальными характеристиками звучания и модуляции для каждого семпла. Соответственно, Instrument состоит из набора зон с семплами, а Preset - из набора зон с инструментами; плюс каждый из наборов зон может содержать глобальную зону, определяющую параметры по умолчанию для остальных зон. При задании параметров для уровня, уже имеющего подобный параметр, возможна как замена параметра нижнего уровня, так и его относительное изменение. Тип файла - SF2.

В SoundFont используются монофонические 16-разрядные семплы с частотой дискретизации 44.1 кГц. Однако с целью экономии памяти в банк могут включаться семплы с более низкими частотами дискретизации, принудительно описанные как 44.1, с последующим заданием более высокого основного тона.

Каждый файл SoundFont может содержать определения одного или более банков инструментов, использующих как собственные семплы, так и ссылки на стандартные семплы из ПЗУ.

Для создания и редактирования банков SoundFont служит программа Vienna SoundFont Studio: версии 1.x - для SoundFont 1 и 2.x - для обеих версий SoundFont, а также программа EsBeeKay - для SoundFont 1.

Как загружаются банки SoundFont?

Загрузка банков SounFont выполняется при помощи AWE Control Panel из стандартного комплекта программ, либо программ AWE Piano, AWEPC, EsBeeKay и других, работающих с интерфейсом AWE Manager. В память EMU8000 загружаются только сами семплы - все остальные параметры загружаются в системную память драйвера. В случае использования только семплов из ПЗУ банк не занимает места в памяти EMU8000, и может загружаться даже в карты без ОЗУ (SB 32).

Драйвер AWE32 различает два вида банков: основной, или банк синтезатора (Synthesizer Bank) и дополнительные, или пользовательские банки (User Banks). Это отвечает системе банков, принятой в MIDI: основной банк имеет номер 0 и всегда должен быть загружен - он используется по умолчанию, когда банк явно не указан; дополнительные банки имеют номера 1..127 и могут загружаться в любой момент, до фактического использования. Для каждого загружаемого дополнительного банка нужно указать номер, под которым он будет использоваться, и SBK/SF2-файл. При последующих запусках Windows эти банки будут загружаться автоматически, пока не будут очищены.

Чтобы подключить новый банк в качестве основного, нужно установить его в закладке "Synth" AWE Control Panel, желательно - в режиме "User Synth".

Как использовать банки SoundFont в MIDI-файлах?

Разместить в файле MIDI-команды смены банка и тембра (Bank/Patch Change). Драйвер AWE использует для смены банка только контроллер 0 (опция Controller 0 only в Cakewalk).

Перед проигрыванием MIDI-файла нужно загрузить используемые им банки любым доступным способом, соблюдая соответствие номеров загружаемых и используемых в файле банков.

Сakewalk с версии 6.01 поддерживает закрепление за WRK-файлами для AWE банков SoundFont, которые автоматически загружаются в нужные банки синтезатора при открытии WRK-файла (меню File -> SoundFonts).

Как преобразовать банки других синтезаторов в SoundFont?

Это можно сделать с помощью программ Convert, AWave, EsBeeKay и нескольких менее известных, однако после преобразования может понадобиться ручное редактирование банка, поскольку из-за различий в архитектурах синтезаторов точное преобразование в общем случае невозможно.

Возможно ли в AWE кэширование инструментов, как в GUS?

Стандартный драйвер этого не поддерживает. Существуют программы, позволяющие выборочно загружать инструменты из банков: AWEVBank - общего назначения, реализующая идею "виртуального банка", содержащего только ссылки на инструменты в реальных банках, и AWEPC, самостоятельно проигрывающая MIDI-файл, предварительно загрузив в память нужные инструменты. Сделать полную поддержку кэширования можно только доработкой драйвера или созданием драйвера более высокого уровня.

Как работает MIDI-синтезатор AWE?

В AWE используется программная интерпретация MIDI-сообщений. Сообщения получает драйвер, расшифровывает их и управляет работой EMU8000 для достижения нужного эффекта. Например, при получении сообщения Note On драйвер запускает по одному генератору EMU8000 на каждый слой ноты, при Note Off - отключает все генераторы этой ноты, по сообщению Pitch Bend - перестраивает частоту генераторов, и т.п. Программная интерпретация MIDI позволяет сделать MIDI-синтезатор достаточно гибким, однако затрудняет реализацию некоторых видов управления в реальном времени.

Как переадресовать вывод в MPU-401 на синтезатор EMU8000?

При работе под DOS для этого служит перемычка MFBEN (MIDI FeedBack ENable - разрешение перехвата MIDI-сообщений). Кроме этого, нужно резидентно (с ключом /EM) загрузить MIDI-интерпретатор AWEUTIL, который будет перехватывать сообщения, выводимые во внешний MIDI-порт (которые в норме направляются на внешний MIDI-интерфейс и разъем для дочерней платы), и отрабатывать их на синтезаторе EMU8000; при этом сообщения уже не будут проходить ни на внешний выход, ни на дочернюю плату.

Под Windows 95 перехватом сообщений из DOS-сеансов занимается виртуальный драйвер (VxD), которому безразлично положение перемычки MFBEN. Перехват управляется через AWE Control Panel -> Device -> Allow MPU-401 Emulation. Этот пункт относится только к выводу в MPU-401 из DOS-сеансов, и никак не влияет на вывод стандартными средствами Windows.

Как управлять синтезом в EMU8000 по MIDI?

Для этого служат NRPN (Non Registered Parameter Number - незарегистрированные номера параметров), передаваемые по MIDI при помощи контроллеров 99, 98, 6 и 38:

Значение параметра может быть в пределах от -8192 до 8191; старшая и младшая части вычисляются следующим образом:

MSB = (V + 8192) / 128 (целое частное)
LSB = (V + 8192) % 128 (целый остаток)

Иначе говоря, старшая и младшая части представляют собой семь старших и семь младших разрядов значения, увеличенного на 8192. Для значений в диапазоне 0..127 старшая часть равна 64, а младшая - самому значению.

При изменении значения параметра достаточно передать только те контроллеры, значения которых отличаются от предыдущей посылки. Например, для начальной установки параметра 8 нужно передать все четыре контроллера; для его последующего изменения достаточно передавать только контроллер 38, пока не потребуется изменить другой параметр. Контроллер 99 достаточно передать один раз в начале работы.

Параметры делятся на установочные и управляющие. Установочные действуют только на ноты, взятые после установки параметра, а управляющие - и на звучащие ноты. Управляющие параметры называются также параметрами реального времени.

Ниже для каждого из параметров приведены его смысл, тип, диапазон и единица изменения параметра.

При работе с банками SoundFont 2 некоторые из этих параметров могут не поддерживаться.

Тип эффектов reverb/chorus устанавливается при помощи SysEx:

Reverb - F0 41 10 42 12 40 01 30 nn 00 F7

0 - Room 1
1 - Room 2
2 - Room 3
3 - Hall 1
4 - Hall 2 (стандартный)
5 - Plate
6 - Delay
7 - Panning delay

Chorus - F0 41 10 42 12 40 01 38 nn 00 F7

0 - Chorus 1
1 - Chorus 2
2 - Chorus 3 (стандартный)
3 - Chorus 4
4 - Feedback delay
5 - Flanger
6 - Short delay
7 - Short delay & feedback

Можно ли получить в EMU8000 другие типы эффектов?

В EMU8000 реализован микропрограммный эффект-процессор с загружаемой извне микропрограммой, официальной документации на которую нет. Отдельные поля программы управляют работой цифрового эквалайзера EMU8000, однако подъем/ослабление по НЧ и ВЧ зависимы друг от друга и не могут регулироваться раздельно. Эмпирическим путем можно подобрать новые режимы работы эффект-процессора (программы AWEFX, AWE Piano).

На что действуют эффекты EMU8000?

Только на звук, синтезируемый в нем самом - обычно по MIDI-сообщениям. В AWE32 два голоса EMU8000 были зарезервированы для регенерации его ОЗУ и попутно вводили в EMU8000 сигналы левого и правого каналов FM-синтезатора, на которые можно было накладывать эффекты. В SB 32 и AWE64 регенерация делается независимо, и все 32 канала работают только на синтез музыкальных звуков.

Какова реализация MIDI в драйвере AWE?

Драйвер AWE работает в Mode 3 (Omni off, Poly). Каналы 1..9 и 11..16 - мелодические. 10 - ударный, изменение раскладки возможно только загрузкой банков. Поддерживаются сообщения:

Note On/Note Off (нулевое значение Velocity в Note On аналогично Note Off);

Channel Aftertouch (управление глубиной частотной модуляции от LFO1), Key Aftertouch не поддерживается.

Pitch Bend, Program Change.

Контроллеры (значения по умолчанию):

0, 32 - смена банка (0, 0)
1 - глубина частотной модуляции от LFO1 (0)
6, 38 - ввод данных для RPN/NRPN (0, 0)
7 - общая громкость в канале (100)
10 - панорама (в некоторых версиях драйвера - статическая) (64)
11 - выразительность (множитель к общей громкости) (127)
64 - педаль Sustain (0)
91 - глубина реверберации (0)
93 - глубина хорового эффекта (0)
98 - младший байт NRPN (0)
99 - старший байт NRPN (0)
100 - младший байт RPN (0)
101 - старший байт RPN (0)
120 - сброс всех звуков канала
121 - сброс всех контроллеров канала (вместе с RPN/NRPN)
123 - сброс всех нот канала

Поддерживается также RPN 0 - чувствительность к сообщениям Pitch Bend:

101 (RPN MSB) = 0
100 (RPN LSB) = 0
6 (Data Entry MSB) = максимальное смещение в полутонах
38 (Data Entry LSB) = 0

Можно ли использовать EMU8000 для проигрывания модулей?

Многие современные проигрыватели модулей используют EMU8000, если на карте установлено достаточное количество памяти - например, Cubic Player 1.6 и выше, Omega Player, AMP, AWEMP, AWEMod, AWEPlay; они позволяют также использовать эффект-процессор EMU8000. Однако все эти проигрыватели непосредственно загружают семплы в ОЗУ синтезатора, не делая предобработки эквалайзером, поэтому при проигрывании цифровой эквалайзер EMU значительно поднимает частоты 3..4 кГц и звучание заметно искажается.

Я поставил драйверы - почему у меня нет AWE Control Panel?

Стандартный набор для AWE в Win95 содержит только сами драйверы и DLL поддержки; AWE Control Panel, Creative Mixer и прочее обеспечение устанавливается отдельно и обычно поставляется в комплекте Retail-упаковок. С OEM-упаковками может поставляться ограниченный набор программ, либо только драйверы.

Как регулировать Output Gain и т.п. под Win95?

Эти параметры регулируются только в Creative Mixer, и находятся в системном меню его окна, вызываемом щелком левой кнопки на иконке окна. Если окно отображено без заголовка - системное меню вызывается щелчком правой кнопки на любом месте окна микшера, свободном от органов управления.

Регулировка тембров и Input/Output Gain доступна только картах на микросхемах CT1745 и CT2502.

Можно ли запустить WaveSynth на AWE32 или SB 32?

Сравнительно просто это можно сделать только на PnP-картах - для этого нужно после установки комплекта обеспечения от AWE64 вручную заменить в Win95 драйверы "Creative Sound Blaster 16 Plug and Play" и "Creative Advanced Wave Effect Synthesis" на такие же, но "AWE64 ... (SB16/AWE32 Compatible), разрешив отображение полного списка устройств и выбрав последние из списка под маркой "Creative". WS/WG рассчитан на работу именно с этими драйверами (по PnP-коду модели и названию в Registry, поскольку в любом случае используется один и тот же файл драйвера).

Для не-PnP карт проще установить специальную версию WS/WG, рассчитанную на пользователей карт прежних выпусков.


Все права на распространение данной статьи принадлежат Евгению Музыченко (2:5000/14@FidoNet, music@spider.nrcde.ru) Все права на публикацию данного электронного варианта принадлежат автору и устроителям www.midi.ru. При публикации указание Автора и ссылки на www.midi.ru - обязательна.

Полный пакет FAQ и описаний доступен на ftp://spider.nrcde.ru/pub/text/tech/emtcfaqs.zip и через страницу FAQ на http://spider.nrcde.ru. Пакет распространяется также по FIDO fileecho XHRDDOCS.