У реальных инструментов тембр зависит от высоты звука. Спектральная характеристика звука изменяет свою форму в зависимости от частоты. Например, у фортепиано тембр звука каждой из клавиш будет хоть немного, но все-таки отличаться даже от своих ближайших клавиш-соседей, не говоря уже о клавишах, расположенных предельно далеко друг от друга — в начале и в конце клавиатуры. Если бы не существовала проблема экономии памяти, то можно записать звучание музыкального инструмента для каждой ноты, а полученные сэмплы привязать к каждой из клавиш MIDI-клавиатуры. Но в этом случае для размещения звукового банка потребуется значительный объем памяти. В принципе, такой подход может быть реализован в программном сэмплере Gigastudio. Собственно, отсюда и происходит приставка Giga- в названии программы: банки сэмплов могут занимать гигабайты. Однако это не всегда оправданно, поэтому в памяти обычно хранятся сэмплы не для каждой ноты, а лишь для некоторых. В этом случае изменение высоты звучания достигается путем изменения скорости воспроизведения сэмпла. Группы клавиш, для которых записываются сэмплы, выбираются так, чтобы в пределах каждой из них вариации тембра звучания реального инструмента были бы не заметны на слух. Это позволяет существенно снизить затраты памяти и в то же время получить вполне качественный, близкий к живому звук.
Для получения разных нот сэмплы воспроизводятся с разной скоростью, при этом изменяется их длина (время звучания сэмпла или период его циклического воспроизведения). Нота, соответствующая воспроизведению сэмпла со штатной скоростью (когда частота дискретизации при его воспроизведении такая же, как была при записи), называется базовой нотой.
Если использовать малое количество сэмплов, распределенных по MIDI-клавиатуре, то эффект изменения длительности сэмплов будет слишком заметен. Кроме того, при воспроизведении сэмпла со скоростью, существенно ниже той, на которой он был записан, из него пропадают высокочастотные составляющие, присутствующие в тембре любого (даже басового) инструмента.
Приведем простой пример. Пусть изначально сэмпл был записан для ноты до пятой MIDI-октавы (при нумерации октав, начиная с нулевой) с частотой дискретизации 44,1 кГц. Это значит, что для этой ноты спектр звука потенциально может простираться до 44,1/2 = 22,05 кГц (по теореме Найкви-ста — Котельникова). Для того чтобы получить ноту до четвертой октавы, синтезатор должен воспроизводить этот сэмпл со скоростью в два раза ниже той, на которой он был записан, то есть с частотой дискретизации 22,05 кГц. По теореме Найквиста — Котельникова: 22,05/2 = 11,025 кГц — максимальная частота звукового сигнала. Это значит, что в спектре сигнала область частотного диапазона размером 11,025 кГц будет, отсутствовать, т. е. спектр звука будет ограничен в области высоких частот значением 11,025 кГц.
Чтобы свести эти неприятные эффекты к минимуму, достаточно распределения двух-трех сэмплов на октаву.
В домашних условиях попытка создать свой собственный качественный инструмент, например, записать звучание акустической гитары, вряд ли увенчается успехом. Для таких целей нужна лаборатория, оснащенная специальным оборудованием. Поэтому в качестве "стандартных" инструментов все-таки лучше использовать звуковые банки, созданные специалистами.
Существует еще одна важная особенность мультисэмплинга. Связав сэмплы различных инструментов с различными группами клавиш, можно получить одновременно несколько инструментов на одной MIDI-клавиатуре, например, для левой руки — контрабас, для правой — флейту. Это значит, что вы можете управлять по одному MIDI-каналу несколькими инструментами одновременно. Правда, при этом сузятся диапазоны звучания этих инструментов, ведь MIDI-клавиш всего 128. Но этого должно хватить. Тем более что для управления компьютерными аналогами "живых" инструментов, такими как, например, фортепиано, используется далеко не все 128 MIDI-клавиш.
Музыкальные инструменты (условные контрабас и флейту) можно заменить на спецэффекты, например на различные фразы, произнесенные человеком, звуки различных природных и технических объектов.
Еще одно понятие, связанное с сэмплерами, — многослойность (Multi-Layering) — технология, позволяющая воспроизводить одновременно несколько сэмплов для озвучивания одного инструмента. Как видно на Рисунок 1.14, б, в данном случае "слои" — это сэмплы, которые расположены как бы друг над другом.
Поговорим о том, как можно использовать данную технологию. Первое, что приходит на ум, — это возможность создания сложных, изменяющихся во времени тембров. Многослойность можно применять для создания стереофонических инструментов для тех сэмплеров, которые не поддерживают стереофонические сэмплы. С помощью многослойности обойти это ограничение просто. Если у вас имеется WAV-файл в формате 16 бит/стерео, то достаточно разделить каждый файл на два сэмпла 16 бит/моно и задействовать эти сэмплы в одном инструменте. Теперь остается только развести сэмплы в разные стороны панорамы: сэмпл, который раньше соответствовал левому каналу стереофонического WAV-файла, — в предельно левое положение, а сэмпл, соответствующий правому каналу, — в предельно правое. Кроме того, многослойность используется обычно для более точной передачи особенностей звучания живых инструментов в зависимости от силы нажатий на клавиши. Нажали клавишу с одной силой — звучит один сэмпл. Если нажать эту же клавишу с другой силой — зазвучит другой. Пример одновременного использования технологий мультисэмплинга и многослойности приведен на Рисунок 1.14, в.
Как уже говорилось, в сэмплерах для изменения высоты тона воспроизводимых сэмплов изменяется скорость их воспроизведения. Вроде бы все просто и понятно. Но на практике реализовать это очень сложно. Допустим, полифония сэмплера составляет 64 голоса — одновременно могут воспроизводиться 64 сэмпла. При этом каждый из них может воспроизводиться на своей скорости. Но на выходе сэмплера должен быть один поток звуковых данных, с одной фиксированной частотой дискретизации. Как объединить все сэмплы, которые должны воспроизводиться с разными скоростями, в один цифровой поток? Об этом вы можете прочитать в книге [12]. Как вы уже поняли, сэмплер — устройство достаточно сложное. Современные сэмплеры по своей сути являются неким гибридом синтезатора и многоканального цифрового магнитофона, который может воспроизводить сэмплы с разными скоростями. Сэмплы в этом синтезаторе используются в качестве осцилляторов — генераторов сигналов звуковой частоты. В своей практике вы обязательно столкнетесь с объектами, которые именуются лупами и грувами. Классический барабанный луп — это фрагмент барабанной партии, записанный в определенном темпе, длина которого кратна целому числу тактов. Если воспроизводить такой фрагмент в цикле (отсюда и название лупа — "Loop" — петля (существительное), двигаться по кругу (глагол)), то создастся ощущение непрерывной игры. Лупы могут быть и не барабанными. Это может быть любой фрагмент музыки, зацикливание которого приведет к ощущению непрерывной игры.
В настоящее время на дисках и в Internet можно найти множество коллекций лупов. Композиция будет звучать очень монотонно, если на всем ее протяжении будет звучать всего один луп. Поэтому лупы обычно поставляются наборами, в пределах которых все лупы записаны в одном темпе на одних инструментах, но соответствуют разным частям композиции. Например, вступлению, переходам и т. п. Однако несмотря на это, найти подходящий луп для вашей композиции не просто. Что значит "подходящий"? Это значит то, что он вам должен нравиться, быть уместным в композиции определенного стиля и подходить по темпу. Допустим, вам понравился какой-то луп, который был записан в темпе 126 долей в минуту. Да вот беда, темп вашей композиции равен 140. К тому же вы не уверены, что вам не придется изменить темп до какого-то третьего значения. Можно было бы изменить длительность лупа с помощью звукового редактора (например, Cool Edit Pro 12]) таким образом, чтобы подогнать луп под нужный вам темп. Однако при этом изменится тональность лупа. Алгоритмы изменения длительности сэмпла без изменения его тональности эффективно работают только с аудиосигналами, содержащими чистый тон. Звуки барабанов и перкуссии являются аудиосигналами шумоподобными, поэтому результаты работы подобных ачгоритмов будут неудовлетворительными. Многие разработчики музыкальных программ внедрили в своих продуктах такие алгоритмы работы с лупами, при которых в лупе выделяются отдельные звуки (Slices). После этого программа может автоматически изменять положения этих звуков в лупе, подстраиваясь под заданный темп.
Однако мало того, чтобы луп был согласован по темпу. Суть лупа в его циклическом звучании. Это означает, что начало и конец зацикленного фрагмента должны естественно сопрягаться друг с другом. В месте стыка недопустимы перепады амплитуды аудиосигнала. В противном случае будут слышны щелчки.
Совсем не обязательно лупы могут быть только барабанными. В своей практике вам обязательно придется работать и с грувами — мелодическими лупами. Если барабанный луп достаточно подогнать к сонгу по темпу, то грув нужно подгонять еще и по тону.
Изменение тональности грува достигается путем изменения скорости воспроизведения его отдельных частей.