Современные музыкальные технологии: темброфония

Вот пришло лето... И пришел черед моей новой книги, или, лучше сказать, брошюрки. Полную версию оной я намерен скоро распространять в электронном виде совершенно бесплатно, а основные аспекты и интересные моменты мы рассмотрим, как это уже водится, в "КВ". И не потому, что мне негде печатать, а потому, что моя первая книга "Звуковая студия на базе РС: запись, сведение, мастеринг" принесла многим пользу и была доступна только через это издание (а особых прибылей от нее я и не получил вовсе). Не будем изменять традициям (не в смысле прибылей, а в смысле "КВ":)). Практически весь небольшой объем, который поместится в нескольких номерах газеты, и является самой книгой-брошюрой. Упущеными будут только разделы, которые объясняют сущность понятия "темброфония", так как это не совсем компьютерная тема, а больше научно-музыкальная. Все, что вы где-то там чувствуете - оно есть! Да, на будущее: извиняюсь за те небольшие революции, которые могут произойти у вас в осознании того или иного момента. Но устарело очень многое, в том числе и представления.


Проблемы современного питч-шифтера и стретча

Для начала рассмотрим понятие питча и его влияние на тембр. Дело в том, что когда мы поднимаем какой-нибудь звук или сэмпл, то уменьшаем размер играющего инструмента. В этом основной недостаток технологий Wavetable, многих программных синтезаторов, таких как Gigasampler и так далее. Почему происходит уменьшение инструмента? И вообще, что это ИХИХО придумал? Да не придумал, просто подумал... годика эдак два назад. Итак, рассмотрим, например, из чего складывается звучание пианино:

  1. Удар по клавише.
  2. Звук привода от клавиши к молоточку.
  3. Удар молоточка по струне.
  4. Звук струны.
  5. Дерево, из которого изготовлен инструмент.
  6. Резонансный эффект на определенных частотах в корпусе и его элементах.
  7. Резонансный эффект на других струнах.
  8. Резонансный эффект окружающих предметов и в элементах помещения.
  9. Реверберация, поглощение и отражение звука в помещении (частотный эффект от этого).

Поднимая звук (весь тембральный спектр) на октаву, мы уменьшаем в два раза: клавишу, молоточек, длину струны и всех остальных струн, размер корпуса (если ударите рукой по доскам, одна из которых в два раза больше другой, получите разные ноты, на короткой - выше), элементы корпуса, окружающие предметы, которые резонируют, элементы помещения, которые частично отражают звук. То есть, получается система, при которой можно сказать, что, разложив инструмент по MIDI-клавиатуре, мы получаем не ноты одного и того же инструмента, а просто меняем его размеры. Я думаю, что без труда можно представить, что происходит со звуком виолончели при обработке питчем... Она просто перерождается в скрипку на высоких нотах, но никак не в виолончель, играющую высоко.

 

Поэтому используя "прошивку" в синтезатор или сэмплер, эффекта живого инструмента добиться практически невозможно, так как очень много влияющих параметров на сам тембр. Самым продуктивным решением был метод синтеза - Physical Modeling Synthesis, в основе которого лежала очень сложная математическая модель, предусматривающая природу возникновения того или иного элемента тембра. Но модель синтезатора, внедренная фирмой YAMAHA - VL, не получила сегодня должного распространения. В некоторых дорогих версиях саундкарт от этого производителя присутствует дополнительный модуль с Physical Modeling Synthesis. Но это очень редкая система. Я слышал самый первый синтезатор YAMAHA VL-1, и, надо отметить, звук скрипки там был как у скрипки. Скорее всего, в силу последних событий к методу PMS скоро вернутся, но это произойдет, как вы понимаете, не завтра.

Попробуйте взять какой-нибудь аккорд на гитаре, а после этого, загрузив сэмпл одной струны, построить этот аккорд программно. Разница будет очевидна. В программном варианте добавится много лишних частот, так как при каждом питче будет меняться резонансный отклик элементов корпуса и других струн. В лучшем случае можно предположить, что данный программный аккорд возник путем слияния звуков от нескольких инструментов, но не родился в одном. Из-за этого появилось очень много искусственного звучания в современной музыке. И хорошо, если это идет на плюс, так как сидящий за компьютером - классный парень, который может извлечь из изменений размера инструмента максимум выгоды. Но при этом меняются величины длин атаки (attack) и затухания (release). В результате чего компрессия произведений, созданных электронным способом, может убрать половину того, что слышно без нее. Чувствуете недостаток? Вернее, вы его поняли? Если поняли, то будете его чувствовать во многих современных произведениях.

Если питч используется одновременно со стретчем (растягивании по сетке времени), как это делается во многих современных программах, то проблем с атаками и затуханиями можно избежать. В данном случае возникают проблемы другого характера. Представьте себе, что вы подняли трек с частотой дискретизации, равной 44.1 КГц, на октаву вверх. Без потерь это можно осуществить путем увеличения скорости воспроизведения в два раза. Следовательно, при простом питче длина трека уменьшится в два раза. Будет сформирован новый инструмент, который, как мы рассмотрели выше, имеет размеры в два раза меньшие, чем исходный. Частоты, которые он воспроизводит, имеют в два раза меньшую длину волны. Для того, чтобы прочитать звук с убыстрением, надо просто прочитать его дискретные значения с большей скоростью. О чем мы говорим? Правильно, скорость чтения дискретных значений - это частота дискретизации (сэмплирования). Чтобы прочитать файл с одной частотой дискретизации в два раза быстрее, при этом сохранив ее, надо "вырезать" ровно половину дискретных значений и сократить тем самым его длину в два раза. То есть, подняв звук на октаву с сохранением частоты дискретизации, мы просто удаляем часть дискретных точек. Убыстрение не может дать отрицательный эффект на качество формируемого трека по сравнению с исходным. Поэтому здесь, на этом этапе, все нормально.

Теперь рассмотрим формирование из файла в 22,1 КГц другого - 44,1 КГц. Что делает компьютер? Он вставляет(!) промежуточные точки (дискретные значения) между уже существующими. Откуда он их берет? Из исходного звука? Нет. Он берет их из математических формул вычисления среднего значения. То есть, те частоты, которые не присутствовали в файле, там и не появятся. Мы имеем дело ни с чем иным, как с эмуляцией чтения файла 22,1 на повышенной в два раза частоте дискретизации 44,1 КГц.

Теперь вернемся к предыдущему примеру и представим, что мы ускорили звук в два раза. Что делает компьютер, чтобы растянуть измененный трек в два раза по сетке времени при стретче? Правильно! Вставляет промежуточные точки по... математическим формулам вычисления среднего значения. В результате мы уменьшаем просто частоту дискретизации, создавая тем самым такую же симуляцию, как и в примере с 22,1 КГц.

Но это, несомненно, влияет на качество. Причем, разница между тем, что мы опустили трек на октаву вниз или подняли его на октаву и растянули в два раза, не существенна. Мы просто создали эмуляцию на данной частоте дискретизации.

Что придумали многие производители и современные разработчики алгоритмов? Как известно, любой звук можно разделить на атаку и затухания. У струнных, ударных и пр. атака короткая, а затухание длинное, у духовых и некоторых синтетических звуков (pads) картина с точностью до наоборот - длинная атака и короткое затухание. В результате, в первом случае можно не изменять атаки совсем, а просто расставлять их соответственно изменяемой сетке темпа, а release обрабатывать по математическим формулам. Для духовых применить схему наоборот - расставлять короткие затухания, учитывая их месторасположение в исходном файле и просчитав коэффициэнты их координат, но атаки подвергнуть такой же математической обработке, как и для ударных в release.

Эта схема, которая очень успешно применена в Sonic Foundry ACID, сегодня является лучшим решением данной проблемы.

Кристофер М. ИХИХО,
chris@music-hall.com.ua,
music-hall.com.ua

Версия для печатиВерсия для печати

Номер: 

27 за 2000 год

Рубрика: 

Multimedia
Заметили ошибку? Выделите ее мышкой и нажмите Ctrl+Enter!