Что такое SoundFont?
Для компактного хранения сэмплов и настроек музыкального синтезатора был придуман специальный формат данных, о котором сейчас пойдет речь.
Существует несколько взглядов на то, что принято называть термином SoundFont.
Естественно, каждый из них имеет право на существование:
> SoundFont — формат данных, в котором хранится информация, необходимая компьютеру для генерации музыкальных звуков или эффектов с помощью WT-синтезатора, SoundFont содержит в себе сэмплы и инструкции для аппаратного обеспечения (WT-синтезатора), которые определяют способы манипуляции сэмплами (или положение виртуальных регуляторов, о которых мы говорили в предыдущем разделе).
> SoundFont — шрифт. Да, не удивляйтесь, SoundFont — это шрифт, только звуковой. Ведь Sound — звук, a Font — шрифт. Во всяком случае, SoundFont подобен символьным шрифтам в текстовых процессорах. Например, можно провести такую аналогию: сэмпл пианино — это буква «а» в звуковом шрифте. Различные варианты звучания этого инструмента, определяемые настройками WT-синтезатора — это различные стили начертания символа «а». Набор таких звуковых символов составляет своеобразный алфавит, в который вы можете добавлять свои собственные «буквы», расширяя тем самым возможности музыкального синтезатора.
/> Наиболее часто используемое определение: SoundFont — это банк инструментов, который хранится на диске в виде специальных файлов и может загружаться в память синтезатора для последующего использования при воспроизведении MIDI-информации.
На момент написания книги существовали две основные версии «звукового шрифта» : SoundFont 1.0 (или просто SoundFont) и SoundFont 2.0. В будущем вы можете столкнуться с модификациями последней версии, которые можно было бы обозначить как SoundFont 2.x. Ведь рано или поздно появится более совершенная аппаратура с более широкими возможностями, следовательно, будет разработана и ее программная поддержка.
Мы не станем рассматривать работу с SoundFont 1.0, т. к. этот формат морально устарел. Но если у вас уже имеется коллекция звуковых банков в формате 1.0 (файлы с расширением SBK), то без особого труда можно произвести их конвертацию в формат SF 2.0 (файлы с расширением SF2).
Это можно сделать, например, при помощи специальной утилиты SF1T02.EXE или при помощи редактора банков Vienna SoundFont Studio 2.1, о котором речь пойдет ниже, и без которого просто не обойтись при создании собственных инструментов.
Вы можете столкнуться с проблемой: программное обеспечение, которое должно работать с банками '.SF2, может отказаться выполнять свои обязанности. Причина — устаревшие системные драйверы звуковой карты. Решение простое: достаточно установить более новые драйверы. Драйверы являются свободно распространяемым программным обеспечением. Успех производителей оборудования массового потребления основан на отсутствии проблем с его программной поддержкой. Первый путь решения проблемы — скопировать драйверы в фирме, продавшей вам звуковую карту. Вряд ли вам
откажут в помощи, а если откажут, то это будет выглядеть, по меньшей мере, странно. Вас могут отослать к Internet. Но ведь покупая звуковую карту, вы не обязаны покупать к ней Internet. Второй вариант: все-таки воспользоваться Internet —панацеей от любых устаревших драйверов для любого оборудования. На сайте www.creaf.com вы за несколько минут найдете и скопируете самые свежие драйверы для любой из звуковых карт семейства AWE.
После установки драйверов все должно работать «как надо». Если нет, попробуйте загрузить хотя бы старый банк ('.sbk), но обязательно тот, который использует ОЗУ вашей звуковой карты, а не те сэмплы, что прошиты в ПЗУ, О том, как загружать банки в память звуковой карты, вы узнаете из разд. 3.4, посвященного работе с AWE Control Panel. Если старый банк загружается нормально, проверьте правильность установки драйверов. Если не загружается даже старый банк, то, вероятно, появились проблемы с памятью на звуковой карте. Возможно, плохо установлены модули SIMM. Однажды у нас была такая ситуация. Мы просто вынули модули и опять установили их на место, но на этот раз аккуратно.
Для диагностики звуковой карты семейства Sound Blaster AWE существует специальная утилита Diagnostic Utility for 16-bit Audio Card версии не позже 3.03 или просто DIAGNOSE.EXEv.3.03.
С ее помощью вы можете протестировать звуковую память (audio DRAM). Эту и многие другие утилиты (например, SF1T02.EXE, о которой мы уже говорили) можно найти на уже упомянутом сайте www.creaf.com.
Вернемся к рассмотрению организации SoundFont. Звуковой банк делится на три уровня:
^ самый нижний с логической точки зрения уровень — уровень сэмплов;
?• средний — уровень инструментов;
> высший — уровень пресетов.
Логическая структура SoundFont показана на рис. 3.4.
Как видно из схемы, в звуковом банке может содержаться один или несколько пресетов, в каждом пресете — один или несколько инструментов, в каждом инструменте — один или несколько сэмплов.
Каждый из объектов этой структуры имеет свое имя и содержит свою специфическую информацию.
Сэмплы могут включать в себя не только оцифрованный звук, но и некоторые дополнительные параметры, например, начало и конец петли.
Объект «инструменты» может оперировать несколькими сэмплами. Инструменты содержат такую информацию, как, например, настройки синтезатора при воспроизведении сэмпла или зона действия сэмплов на MIDI-клавиатуре. В каждой зоне, заданной пользователем, может звучать определенный сэмпл.
В предельном случае, для каждой клавиши MIDI-клавиатуры может быть задан свой сэмпл. Разные инструменты могут использовать одни и те же сэмплы.
Пресеты — это те самые инструменты (не путайте с понятием «инструменты» в SoundFont), которые вы выбираете в музыкальных редакторах при создании своей музыки. Для выбора пресета при воспроизведении MIDI-файла музыкальными редакторами используется команда Program Change (или Patch Change), параметрами которой является номер банка и номер инструмента (пресета) в банке. Каждый пресет может содержать один или несколько инструментов. Разные пресеты могут использовать одни и те же инструменты.
При такой организации звукового банка нажатием клавиши на MIDI-клавиа-туре вы можете заставить звучать одновременно множество сэмплов. Это значит, что общий тембр пресета может быть очень богатым.
Или, например, в одной части клавиатуры у вас будет звучать пианино, а в другой — трио, состоящее из скрипки, электрогитары и вашего собственного (предварительно оцифрованного) голоса. Комбинации могут быть совершенно фантастическими. Единственное ограничение — это ограниченная полифония звуковой карты. EMU8000 может одновременно формировать 32 голоса.
Итак, если вы попытаетесь задействовать сразу более 32 голосов (а значит и звуковых элементов), то у вас ничего не получится: EMU8000 в состоянии воспроизвести только 32 голоса.
Из предыдущего раздела вы знаете, что для создания нового тембра, кроме загрузки сэмпла в память звуковой карты, потребуется отрегулировать некоторые параметры воспроизведения этого сэмпла. Такими параметрами, например, могут быть: Chorus (хорус), Coarse Типе (подстройка) и Filter (фильтр). Их обычно называют генераторами. Сам процесс настройки параметров называется редактированием. SoundFont 2.0 можно редактировать на двух логических уровнях — на уровне инструментов и пресетов.
При редактировании на уровне инструментов вы можете оперировать абсолютными значениями настраиваемых характеристик для каждого сзмпла,
входящего в текущий инструмент. Настройки генераторов на уровне пресе-тов привязаны к установленным значениям настроек, произведенных на уровне инструментов. Иными словами, если инструмент состоит из нескольких уже настроенных сэмплов, но вы хотите придать ему новое звучание (перестроить параметры какого-либо генератэра), то не обязательно перестраивать каждый из сэмплов по отдельности. На уровне пресетов вы сможете перестроить звучание всего инструмента (а значит и всех сэмплов, входящих в этот инструмент).
Существует целый ряд иностранных терминов — названий определенных технологий, которые неразлучно связаны словом SoundFont. Одно из них, с которым вам предстоит иметь дело — мультисэмплинг.
3.2.1. Мультисэмплинг
Мультисэмплинг (Multi-Sampling) — это технология, которая позволяет «привязать» сэмплы к отдельным клавишам или к группам клавиш MIDI-клавиату-ры, как показано на рис. 3.5.
Как вы увидите в дальнейшем, именно такая форма графического представления областей действия сэмплов используется в Vienna SoundFont Studio 2.1, впрочем, как и во многих других редакторах инструментов.
Рис. 3.5.
Мультисэмплинг. Пример размещения зон действия сэмплов
Что же скрывается за сухим определением мультисэмплинга? Ни много ни мало, а возможность сэмплера звучать не хуже любого «живого» инструмента. В принципе, для создания инструмента можно обойтись всего одним-двумя сэмплами. Но при этом звучание инструмента будет далеко не идеальным. У реальных инструментов тембр зависит от высоты звука. Выражаясь научно, спектральная характеристика звука будет изменять свою форму в зависимости от частоты. Например, у фортепиано тембр звука каждой из клавиш хоть немного, но все-таки отличается даже от своих ближайших клавиш-соседей, не говоря уже о клавишах, расположенных предельно далеко друг от
друга — в начале и в конце клавиатуры. В принципе, можно записать звучание музыкального инструмента для каждой ноты, а полученные сэмплы привязать к каждой из клавиш MIDI-клавиатуры. Но в этом случае для размещения звукового банка потребуется несколько мегабайт памяти, которой всегда не хватает.
Существует компромиссный вариант: записать сэмплы для групп клавиш, выбранных так, чтобы в пределах каждой из них вариации тембра звучания реального инструмента были бы не заметны на слух. Это позволило бы существенно снизить затраты памяти и в то же время получить вполне качественный, близкий к живому звук. Так обычно и поступают.
Применение данной технологии позволяет свести на нет одну не очень очевидную, но существенную проблему: для получения разных нот сэмплы воспроизводятся с разной скоростью, при этом изменяется их длина (время звучания сэмпла или период его циклического воспроизведения). В некоторых очень сложных и дорогих синтезаторах для устранения последствий этого эффекта используются не менее сложные алгоритмы синтеза. Звук представляется в виде маленьких гранул, т.
е. сэмпл разбивается на некоторое количество фрагментов, каждый из которых воспроизводится со скоростью, соответствующей заданной ноте. При этом возникают дополнительные издержки:
необходимо очень точно соединить отдельные гранулы так, чтобы в местах соединений были не слышны щелчки. Для этого используются специальные алгоритмы интерполяции. Кроме того, при воспроизведении сэмпла со скоростью, существенно ниже той, на которой он был записан, из него пропадают высокочастотные составляющие, присутствующие в любом тембре (даже в басовых инструментах).
Приведем простой пример. Пусть изначально сэмпл был записан для ноты «до» пятой MIDI-октавы (при нумерации октав, начиная с нулевой) с частотой дискретизации 44,1 кГц. Это значит, что для этой ноты спектр звука потенциально может простираться до 44,1/2=22,05 кГц (по теореме Котельникова). Для того чтобы получить ноту «до» четвертой октавы, синтезатор должен воспроизводить этот сэмпл со скоростью в два раза ниже той, на которой он был записан, т, е. с частотой дискретизации 22,05 кГц. По теореме Котельникова:
22,05/2 = 11,025 кГц — максимальная частота звукового сигнала. Это значит, что в спектре сигнала область частотного диапазона размером 11,025 кГц будет отсутствовать, т. е. спектр звука будет ограничен в области высоких частот значением 11,025 кГц.
Для решения задачи генерации высококачественного звука фирма E-mu Systems, Inc. пошла другим (более простым) путем — сэмплы не разбиваются на гранулы, а хранятся целиком. Благодаря технологии мультисэмплинга, проблема изменения длины сэмпла с высотой тона решается «в лоб», хотя это не очень удобно и требует большого объема памяти звуковой карты. Так как же сделать длину сэмплов фиксированной? Еще не догадались? Очень просто! Каждой клавише — по собственному сэмплу! И нажимайте себе на любые
клавиши, длительность сэмплов при этом будет оставаться фиксированной. А если вы не можете позволить себе такой роскоши как, например, 16 мБайт специальной аудиопамяти для SB AWE64 ? Или может быть на вашей звуковой карте SB 32 стоит всего два 30 pin SIMM no 1 Мбайт? Ничего страшного.
Этих двух мегабайт вполне хватит для того, чтобы преодолеть трудности с изменением длительности звучания сэмплов. Вот две очень простые рекомендации:
> Совсем не обязательно присваивать всем 128 клавишам MIDI-клавиа-туры по сэмплу. Вряд ли вам понадобится весь этот огромный диапазон. Можно обойтись всего несколькими октавами.
> Совсем не обязательно присваивать каждой отдельной клавише по сэмплу. Здесь нет никакого противоречия со сказанным выше. Можно «растянуть» каждый сэмпл на несколько клавиш. Но это надо проделать так, чтобы изменения длительности звуковых фрагментов не были заметны на слух. Не забывайте: чем меньше клавиш в этой группе, тем лучше.
При разработке собственных звуковых банков с использованием этих рекомендаций для создания электронных аналогов акустических инструментов вы можете столкнуться с проблемами. В домашних условиях попытка создать свой собственный качественный инструмент, например, записать звучание акустической гитары, вряд ли увенчается успехом. Для таких целей нужны лаборатории, оснащенные специальным оборудованием. Поэтому в качестве «стандартных» инструментов все-таки лучше использовать звуковые банки, созданные специалистами фирмы E-mu Systems, Inc. И если есть такая возможность, постарайтесь установить на звуковую карту побольше памяти: чем ее больше, тем естественнее будут звучать голоса инструментов (при условии использования фирменных банков, рассчитанных на тот объем памяти, который установлен на вашей звуковой карте). А место для ваших собственных инструментов еще найдется. Например, если на звуковой карте установлено 8 Мбайт памяти, то при загрузке GM-банка фирмы E-mu объемом 8 Мбайт у вас еще останется около 1 Мбайт свободной звуковой памяти.
Существует еще одна важная особенность мультисэмплинга. Связав сэмплы различных инструментов (при этом можно использовать не только свои собственные сэмплы, но и фирменные) с различными группами клавиш, можно получить одновременно несколько инструментов на одной MIDI-клавиатуре, например, для левой руки — контрабас, для правой — флейту.
Это значит, что вы можете управлять по одному MIDI-каналу несколькими инструментами одновременно. Правда при этом сузятся диапазоны звучания этих инструментов, ведь MIDI-клавиш всего 128. Но, как вы уже знаете из приведенной выше рекомендации, этого должно хватить. Тем более что для управления компьютерными аналогами «живых» инструментов, такими как, например, фортепиано, используется далеко не все 128 MIDI-клавиш. Может и не придется ограничивать диапазон звучания инструмента.
Музыкальные инструменты (условные контрабас и флейту) можно заменить на спецэффекты, например на различные фразы, произнесенные человеком, звуки различных природных и технических объектов. Именно так и поступил автор некогда очень популярной композиции «Даду-даду».
3.2.2. Многослойность
Многослойность (Multi-Layering) —технология, позволяющая воспроизводить одновременно несколько сэмплов для озвучивания одного инструмента. Как видно из рис. 3.6, «слои» в данном случае — это сэмплы, которые расположены как бы друг над другом.
Поговорим о том, как можно использовать данную технологию. Первое, что приходит в голову — это возможность создания сложных, изменяющихся во времени тембров. В качестве примера можно привести пресет 101 «Goblin» из набора General MIDI, который состоит из нескольких относительно простых сэмплов, но в совокупности они дают фантастическое звучание, присущее звуковому сопровождению фильмов ужасов.
Многослойность можно применять для создания стереофонических пресе-тов. «А разве на выходе EMU8000 не стереозвук?» — возможно, спросите вы. Действительно, стерео, здесь нет никакого подвоха. Но любой сэмпл— это WAVE-файл формата 16 бит/моно. Если для построения инструмента использовать всего один сэмпл, то полученный звук будет, в некотором смысле, стереофоническим: можно изменять его положение в пространстве, добавлять по желанию реверберацию и хорус (эхо от этого инструмента тоже будет стереофоническим). Но сам инструмент на звуковой панораме будет представлять собой точку, т.
е. ощущение протяженности источника звука в пространстве будет полностью отсутствовать. Обойти это ограничение просто. Если у вас имеется WAVE-файл в формате 16 бит/стерео, то достаточно разделить файл на два сэмпла, каждый по 16 бит/моно и задействовать эти сэмплы в одном инструменте. Теперь остается только развести сэмплы в разные стороны панорамы: сэмпл, который раньше соответствовал левому каналу стереофонического WAVE-файла — в предельно левое положение, а сэмпл, соответствующий правому каналу — в предельно правое.
В действительности дела обстоят даже проще, чем вам могло показаться. При импортировании WAVE-файлов редактор Vienna SoundFont Studio 2.1 выполнит автоматическое разделение стереофонических файлов на два сэмпла с пометками «(L)» и «(R)», что означает «левый» и «правый» соответственно.
Дайте волю своей фантазии, возможно, вам удастся найти новые применения технологии многослойности.
В заключение остается добавить, что технологии мультисэмплинга и многослойности можно использовать одновременно, получая при этом любую необходимую конфигурацию зон действий сэмплов. Пример одновременного использования двух технологий приведен на рис. 3.7.
Рис. 3.7.
Пример одновременного использования технологий мультисэмплинга и многослойности
Теперь, после того как мы сообщили вам общие сведения, можно переходить к практической работе с редактором звуковых банков Vienna SoundFont Studio ?..
I.