Пользователь
0,0
рейтинг
2 октября 2013 в 19:17

Дизайн → Процедурное аудио из песочницы

Время, проведенное за компьютером, сводится в основном к «смотрению в экран»: пишет ли человек код, смотрит фильм, играет или узнает новости. Просто потому, что основное чувство человека — зрение. И оно во многом определяет восприятие реальности, механизмы взаимодействия с ней, и направляет развитие многих технологий.
Обычный пример эволюции железа и софта за последние несколько десятилетий: сравните Wolfenstein 3D (1992) и Crysis 3 (2013). Как продвинулась и усложнилась компьютерная графика за это время сложно недооценить.
Но увы, этого нельзя сказать о звуке. О том, как исправить ситуацию, и будет статья.

image
Изображение со страницы peripheriques.free.fr/blog/index.php?/past/2010-pure-data-read-as-pure-data


Основу статьи составляет материал лекций, которые периодически читает Энди Фарнелл (Andy Farnell). В этих лекциях он излагает суть своего видения развития и использования вычислительного аудио (или процедурного аудио, procedural/computational audio) и приводит ряд интереснейших примеров, которыми я хотел бы поделиться с сообществом.
Пару слов об Энди: дизайнер звука, программист, профессор в ряде университетов, в прошлом аудиоинженер. На его сегодняшнюю профессиональную деятельность когда-то сильно повлияла демосцена, в частности работы The Black Lotus. Энди также автор книги «Designing Sound», в которой содержится масса полезной теории по физике звука, моделированию и психоакустике, и множество разнообразных практических упражнений, написанных на языке визуального программирования Pure Data.

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

Немного истории


Итак, возможности компьютерной графики дошли до детального моделирования объектов и их взаимодействий в режиме реального времени. Все это за счет применения многих технологий и концепций, среди которых отдельные графические ядра и более оптимальные алгоритмы построения изображения. Это делает визуализацию адаптивной по отношению к ресурсам системы без видимой потери качества. Использование динамического уровня детализации визуального пространства заметно экономит ресурсы (метод Mipmapping, например). Но естественно, это появилось не сразу. Уже упомянутая игра Wolfenstein 3D выглядела ужасно, если кто-нибудь помнит. Среди некоторых специалистов тогда существовало мнение, что фотографический подход а-ля Myst (1993) останется навсегда. Но низкие мощности компьютеров и страшные результаты не остановили энтузиастов.

Параллельно с развитием графики о серьезном синтезе звука в приложениях особо не задумывались, так как компьютерное аудио «за недостатком внимания» все еще находилось на эмбриональной стадии. Согласитесь, даже сегодня когда человек слышит слово «синтезатор», первой ассоциацией скорее всего будет мужик с блестящей шевелюрой, извлекающий из пластмассового параллелепипеда нелепые звуки. Хотя сейчас существуют синтезаторы, способные создавать благозвучные, сложные и красивые звуки совершенно разного характера (скажем, Massive от Native Instruments или Zebra от U-he, о применении которого на Хабре недавно писали). Интересно, что когда я слышу слова «шутер от первого лица», у меня не возникает ассоциаций с огромными пикселями и восьмибитным цветом, хоть я вообще не геймер.

Текущая ситуация


Аудиотехнологии в не ориентированных на звук приложениях не отличаются адаптивностью и гибкостью. Подход к созданию звука чаще всего основан на заранее подготовленных данных, и это создает ряд серьезных ограничений. С линейным ростом количества объектов в моделируемом пространстве число их возможных взаимодействий растет нелинейно (n(n-1)/2). Это не позволяет создавать реалистичное звуковое поле, ведь в общем случае нельзя предугадать все возможные типы взаимодействия и подготовить звуки для каждого из них. Помимо этого, независимо от важности и приближенности объекта на сцене, ресурсы, затрачиваемые на воспроизведение связанного с объектом аудио, совершенно не меняются. Как был исходный аудио файл, скажем, 44,1 кГц 24 бита, так он и воспроизводится. В приближении к бесконечности такой подход является неэффективным. При этом по умолчанию аргументом против использования вычислительного аудио является то, что производительности современных обычных компьютеров якобы недостаточно. Как станет ясно дальше, это давно не соответствует действительности. Все примеры этой лекции просчитывались вживую на обычном гигагерцовом ноутбуке, используя небольшую часть ресурсов.

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

Процесс разработки процедурного аудио


Процедурное аудио подразумевает хорошо структурированный процесс дизайна, применение тех же принципов, что и при написании программ: модульность и повторное использование. Подобный организованный подход имеет много положительных последствий. Сразу скажу — он вовсе не убивает творческую составляющую работы дизайнера, так как стэк дизайна звука имеет несколько уровней абстракции, и дизайнер может работать на том уровне, на котором ему комфортно. В пользу этого Энди приводит аналогию с практичностью семиуровневой модели OSI и предлагает следующую общую структуру стэка:

  1. Поведение (Behaviour)
  2. Модель (Model)
  3. Метод (Method)
  4. Реализация (Implementation)

Поведение, как несложно догадаться, это то поведение, которое является причиной звука. В этом нет особых сложностей.

Моделирование, с другой стороны, это самый сложный этап. Здесь важно понимать не только физику процесса, но и особенности восприятия нами звука. Не стоит слишком углубляться в структуру объекта. В конце концов, хоть производительность десктопов и высокая, всегда можно написать избыточно сложную модель, которую будет невозможно просчитывать в реальном времени (некоторые помнят точное моделирование звука воды, на создание нескольких секунд которого ушло много часов). Но даже для очень сложных моделей существуют достаточные мощности: по словам Энди, исследовательская группа из Queen Mary University оf London показала, что технология CUDA может очень успешно использоваться в вычислительном аудио и давать прекрасные результаты (к сожалению, описания результатов не нашел).
Как говорит Дэвид Бэк (дизайнер звука, автор отличной книги «The Csound Book»), реалистичность звука связана вовсе не с запредельной детализацией и точностью, а с тем, что можно назвать «акустической жизненностью» (acoustic viability), то есть с тем, насколько хорошо физические параметры соотносятся со слышимым звуком. Если воспринимаемое кажется нам осмысленным, мы интуитивно думаем, что «звучит как надо».
Один из важнейших концептов в физическом моделировании — «ключевой процесс» (signature process) — тот процесс, от которого в большей части зависит издаваемый звук. Для ходьбы, например, важна реакция опоры. Она, в свою очередь, зависит от силы, прилагаемой стопой на определенную площадь. В зависимости от вида ходьбы большая часть веса может перекладываться на пятку, а может на мысок. Со структурной точки зрения ногу можно представить как три сустава. Плюс, ноги две, и они находятся в фазовой корреляции. И так далее. Модель усложняется. Но в конечном счете она целиком зависит только от одного параметра — скорости движения объекта, и этим параметром элементарно управлять на высоком уровне абстракции.
В общем случае в моделировании нужно использовать взвешенный подход, понимать, как что-то звучит снаружи, и, в зависимости от потребностей, прибегать к физической специфике (phenomenal approach, physically informed/contextualised models). Это иногда подразумевает и отход от реалистической концепции в сторону гиперреализма. Например, в жизни пистолет звучит вовсе не так выразительно, как его привыкли слышать в играх. Гиперреализм часто воспринимается геймерами лучше, чем реализм.

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

В плане реализации в целом и в деталях тоже есть много интересных моментов.
Один из возможных способов реализации следующий. Каждый моделируемый объект имеет свои методы. Часть этих методов соотносится с издаваемыми объектом звуками. На физическом уровне можно сказать, что объект реагирует на импульс, который ему передается при столкновении с другим объектом. В зависимости от параметров импульса и свойств объектов и генерируется звук. Для этого у каждого объекта должен быть свой «импульсный ключ» (impulse signature), который определяет акустическую реакцию объекта на импульс.
В слое реализации тоже присутствует заменяемость. Дэн Столл — тоже специалист в программировании аудио — взял за основу примеры из книги Энди (до методов включительно) и переписал их на языке SuperCollider. Результат был такого же качества.

Больше плюсов


Как я уже сказал, модульность и повторное использование имеют массу положительных следствий.
Давайте рассмотрим такой пример. Мы создали объект класса «Турбина», который генерирует шум двигателя самолета. У самолета два двигателя. Мы создаем второй объект нашего класса. Теперь, для человека, который виртуально находится в кабине пилота, мы используем звук, сгенерированный этими же двумя объектами, но пропускаем их через модуль пространственной обработки (психоакустика в действии: человек будет слышать слева и справа позади по одному двигателю) и навешиваем на них импульсную характеристику кабины пилота (impulse response — уникальная характеристика любого пространства; грубо говоря это то, как стены помещения отражают различные спектральные компоненты звука, это создает эффект присутствия в помещении). А для человека, мимо которого по взлетно-посадочной полосе проносится самолет, исходный генерируемый звук нужно просто пропустить через модуль, имитирующий эффект Доплера, и модуль приближения/удаления (при желании можно добавить отраженный звук от ВПП).
Еще одним положительным следствием такого подхода является масштабируемость. Скажем, один и тот же класс «Цилиндр», в зависимости от настройки параметров, будет моделировать и консервную банку, и большой барабан, и кусок огромной трубы. Или один и тот же модуль прерывистого трения использовать для скрипа дверной петли, скрипа кожаной выделки на мебели, визга покрышек или для трения мочалки о стекло.

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

Перспективы


Несколько лет назад, в 2005-м, Энди пытался найти единомышленников в области разработки игр, но, по его словам, эта индустрия изнутри оказалась намного более консервативной, нежели принято думать. Помимо того, что люди не особо задумываются над альтернативами, даже если привести все доводы за — мало кто захочет менять устаканившийся процесс разработки игр и терять деньги в случае неудачного эксперимента. К тому же, проверенного и эффективного способа создавать процедурное аудио пока нет, так как первопроходцев очень мало. Но они все же есть, и в последнее время их становится больше. Например, есть игра Pugs Luv Beats, основная фишка которой именно в процедурной музыке, зависящей от геймплея. Аудиодвижок тоже реализован на Pure Data.
Конечно, начинать использовать процедурное аудио сложно, но библиотеки модулей и компонентов постепенно будут насыщаться, и в перспективе процесс создания звукового дизайна будет проходить все быстрее и давать все более качественные результаты.
Опасаться, что этот подход вытеснит традиционный звуковой дизайн, тоже не стоит — вычислительное аудио будет дополнять существующий набор инструментов, а не заменять его целиком. Несложно представить себе, сколько специализаций это создаст и как расширит рынок. Тем более, что между записанными звуками и процедурным аудио сейчас есть градации (например, могут использоваться словари гранул (grain dictionaries) — микросемплы оригинального звука, из которых алгоритмически собирается звук в процессе игры).

Насколько далеко может зайти такой подход к звуку? Постепенно появляется множество новых ниш в интерактивном искусстве и синхронизованном медиа. Наверное, можно будет и купить диск не c музыкальной записью, а с генерирующим ее алгоритмом (в некоторой степени и сейчас уже можно). Впрочем, живого звука и человеческой записи полностью это не заменит, зато заметно расширит и обогатит опыт восприятия искусства в целом. Опять же, это вовсе не биполярная вещь, на ум приходит целый спектр полноценных подходов с использованием процедурного аудио. Как, например, в компьютерной графике после полностью смоделированных движений со временем перешли к моделям, движение которых записывается с живых актеров. Это просто иной способ записи реальности.

Примеры

В порядке возрастания сложности звука:
  • ходьба и бег по гравию (@50:53)
  • модуль прерывистого трения, параметризованный для дверной петли (@48:55)
  • выключатель (@54:07) и часы на его основе (@55:50)
  • двигатель машины (из другого видео) с визгом покрышек (модуль прерывистого трения) (@53:08)
  • электромотор (@1:01:49) и робот из нескольких таких модулей (@1:02:15)
  • лопасти винта (@1:03:53)
  • вентилятор в вентшахте (лопасти + электромотор + импульсная характеристика шахты) (@1:05:34)
  • ветер (@1:07:36), дождь (@1:09:14), окно (@46:50), все три вместе, «сидя у окна во время шторма» (@1:10:15)
  • «голосовой модуль» для роботов (@1:11:37), лев и корова на той же основе (@1:12:28)
  • пламя (@1:13:41), тот самый движок самолета (турбина + пламя) (@1:16:01)
  • вертолет на земле (с использованием модели винта) (@1:19:38) и пролетающий (с модулем приближения/удаления) (@1:25:02)


Материалы:
  1. Лекция Энди Фарнелла в Лондоне, 2013: www.youtube.com/watch?v=sp83-Pq7TyQ (тот же материал, но в пяти частях и в худшем качестве: 1, 2, 3, 4, 5)
  2. Большая выдержка из книги «Designing Sound» в открытом доступе: aspress.co.uk/ds/pdf/pd_intro.pdf
  3. Интервью с Энди на Designingsound.org: designingsound.org/2012/01/procedural-audio-interview-with-andy-farnell
  4. Интервью с создателями Pugs Luv Beats там же: designingsound.org/2012/01/the-sound-of-pugs-luv-beats
  5. Исследование эффективности и качества моделирования аудио в Queen Mary University of London: http://www.eecs.qmul.ac.uk/~josh/documents/HendryReiss-AES129.pdf
  6. Pure Data: puredata.info
  7. Также хочу упомянуть замечательный с практической и культурологической точки зрения курс Survey of Music Technology: class.coursera.org/musictech-001 и начинающийся скоро курс по ChucK: www.coursera.org/course/chuck101

Евгений @1eqinfinity
карма
46,0
рейтинг 0,0
Пользователь
Реклама помогает поддерживать и развивать наши сервисы

Подробнее
Реклама

Самое читаемое Дизайн

Комментарии (63)

  • 0
    Интересно, как раз встал вопрос о добавлении музыки в игру
    • 0
      Представьте себе, если бы «добавлять» не пришлось. По умолчанию звуки уже были бы в игре, надо было бы только довести их до желаемого результата.
      • 0
        похоже на использование материалов вместо текстур
        • 0
          Да, хорошая аналогия. Использование моделей материалов.
          • +3
            Похожий подход реализован в BFXR
            www.bfxr.net
            • 0
              На самом деле нет. BFXR — это ничем не обусловленное сочетание разных базовых элементов синтеза и обработки. Но штука занятная — для создания очередного Марио сэкономит время.
              • 0
                Мне здорово помогло в реальной работе, когда делал звуки для своего мобильного приложения. Реально, очень много разных звуков можно создать.
                • 0
                  Да, разнообразие большое. Особенно круто, что бесплатно и в открытом доступе.
            • 0
              Пасиба за ссылку
  • НЛО прилетело и опубликовало эту надпись здесь
    • +1
      Основная проблема в том, что бинауральный эффект зависит от т.н. head-related transfer function, общепринятого способа корректно и эффективно моделировать которую нет. Можно нагуглить целые диссертации на эту тему (на английском).
      По сути это следствие того же «недостатка внимания». Найдется разработчик, который не поленится и использует это в игре, и тут начнется)
    • 0
      Предупреждать же надо — на 1:21-22 что-то справа постучало, как будто в окно. А у меня окно ровно справа. Я чуть было не подорвался посмотреть, кто там мне в окно стучит. А этаж-то последний -_-
      • +1
        Хорошо, что вы целы :) А то бы не видать нам этой технологии.
      • НЛО прилетело и опубликовало эту надпись здесь
        • 0
          Посмотрите Послушайте ещё вот это. Как мне кажется, звук здесь более естественен. Когда особенно он надевает вам наголову мешок, хочется вскочить и дать ему по голове.

          К слову, как я понимаю, дома кустарными методами собрать аппарат для записи бинаурального звука не так уж и сложно. Конечно, вариант будет уступать профессиональному, но если просто взять макет головы в реальном масштабе, вставить ей в слуховые проходы микрофоны, то должно получиться некоторое подобие такой записи. Особенно если базовые параметры бинауральной головы будут совпадать с параметрами головы слушателя получившегося аудио. Главным образом, это касается расстояния на которое были разнесены микрофоны при записи и на которое будут разнесены наушники в ушах при последующем прослушивании.

          Представляете, собрать такую голову, а потом сесть перед ней и писать на неё подкасты. Был бы очень оригинальный звук. Некоторые бы борцы за качество звучания съели бы свою шляпу от завести. :-)
          • 0
            Вот еще хорошее видео.
            Собрать кустарно несложно. Но на качество влияет куча мелочей, которые кустарно сложно сделать.
          • НЛО прилетело и опубликовало эту надпись здесь
            • 0
              Тут дело не столько в просто разнесенных микрофонах, сколько в повторении формы ушного канала

              На самом деле важно все. И не стоит забывать про полости черепа, они резонируют.
              Все эти вещи, кстати, параметризуются тоже. Представьте, вы вводите в программу свой возраст (можно еще и национальность), она подгоняет бинауральную модель под среднестатистические параметры черепа человека конкретного возраста (и конкретной национальности). Только пожалуйста, не надо про закон Годвина =)

              Или еще проще — сделать трехмерную МРТ и ввести в программу.
              • 0
                Добавлю. В ушном канале расположены еще и волоски, которые раздражаются в зависимости от того, с какой стороны пришел звук. Таким образом, раздраженные волоски, дают дополнительную информацию мозгу о направлении источника звука. И это помимо внтуренних переотражений, поглощений и усилений звуковых волн, на что влияет, разуеется, и материал из которого изготовлены уши). Постоянно слушая, и зная направления до источника звука, мозг учится сопоставлять различные дополнительные источники информации о направлении и чем взрослее (опытнее на нейрофизиологическом уровне) человек становиться, тем сложнее «обмануть» его уши.
                Предположим такую ситуацию, человек слушает в наушниках бинауральную аудиозапись, все фазы, микроэхо и вообще все что можно передать акустически, соответствуют реальному положению вещей. Но! Но реально звук идет от двух источников расположенных около ушей. Что это значит? А это значит, что:
                1 Микроволоски устилающие внутреннюю поверхность ушного канала, раздражаются не в соответствии с реальным расположением источников звука.
                2 Отсутсвует правильный резонанс черепа
                3 Плотность, отражающие и поглащающие свойства поверхности ушного канала все равно не будут соответствовать этим же параметрам корпуса микрофона. А значит поглощения смежных сигналов на разных частотах не будут соответсвовать таковым в реальной ушной раковние, что так же привнесет определенные искажения.
                Думаю что при воздействии только лишь на барабанную перепонку, будет крайне сложно создать алгоритм, способный полностью «обмануть» ухо.
                • 0
                  Очень интересно. Представьте себе начального школьника, слишком много играющиего в игры с такой технологией. Может ли он превратиться в «акустического идиота» за год? :)
                  • +1
                    Сомневаюсь, он же помимо игр получает и реальный, жизненный опыт. Скорее он станет «акустически умнее»))
                • 0
                  С какой стороны пришёл звук мозг определяет по разнице громкости и по задержке сигнала между левым и правым ухом. Не совсем понятно про какие «волоски» в ушном канале вы говорите. Если про рецепторы внутри улитки, то они не определяют с какой стороны пришёл звук и их нельзя натренировать. Они отвечают только за перевод давления жидкости в улитке в импульсы, которые потом преобразовываются мозгом. Если же вы про волоски в наружном ухе (пух или твёрдые волосы), то они вообще ни на что, кроме внешней привлекательности, не влияют, как усы не влияют на обоняние.
                  • 0
                    По разнице в громкости и задержке сигнала, вы определите направление только по одной оси. Человек же, способен определять направление до источника звука в трех осях. А о волосках я говорю о тоех, что расположены в слуховом канале. Если будет не совсем онятно, я могу проиллюстрировать.
                    • +1
                      В четырёх осях. Ещё во времени ;)

                      На самом деле волоски в слуховом канале наружного уха (если они там вообще есть) не имеют отношения к слуху, как и волоски на внешней части уха, т.к. они никак не связаны со слуховыми рецепторами, расположенными в улитке. Наружное ухо частично защищает среднее ухо от механических повреждений и в незначительной степени фильтрует частоту входящего звука, исключительно благодаря форме ушной раковины и слухового канала в форме тоннеля. Никакой другой функции у внешнего уха и его элементов нет. А положение источника звука впереди/сзади, вверху/внизу определяется характерной разницей частот и фазовых изменений волны, которые регистрируются улиткой и интерпретируются мозгом. И эти характерные особенности можно без проблем имитировать даже программным способом. Примеры есть в комментариях выше.
                      • 0
                        Волоски там есть и они, в том числе, решают и описанную мной задачу. Это медицинский факт. Источник уже не найду. Все что вы написали касательно опеределения положения источника верно. Но неполно. Полно описал я выше. Это тоже медицинский факт.
                        • +2
                          Хорошо, спорить не буду, может быть вы врач. Но по-моему, ваше утверждение равноценно тому, что разницу между реальностью и компьютерной графикой, опытный человек различает не только с помощью глаз, но и частично благодаря натренированным ресницам.
                          • 0
                            Я не врач, я просто интересуюсь нейрофизиологией и всем что с этим связано. Но ваш пример с ресницами, в данном случае, некорректен. Ресницы так же выполняют несколько задач, но не связанных с визуальным восприятем. Хотя я не исключаю, что дифракционные свойства ресниц, мозг может использовать для неких иных целей ;)
                            • НЛО прилетело и опубликовало эту надпись здесь
                              • 0
                                Хорошая дискуссия на совершенно другую тему, нежели статья)
                                Меня это тоже интересует, но хотелось бы найти золотую середину между английской википедией и медэнциклопедией, напичканной латынью. С экспериментами и картинками.
    • 0
      Вот авторы этой технологии. У них есть свой движок для 3D звука в играх.
      Технологии ушли дальше и есть более совершенные алгоритмы чем придумали они, к примеру тот что используется в видео по вашей ссылке.
  • +3
    Да уж, с синтезом звука всё плохо. И что интересно, звуковики даже слышать не хотят ни о каком генерированном аудио. Мол, «нинужно, я и так под все ваши нужды наваяю эффектов с нужным качеством, так процедурное аудио по сравнению с этим будет звучать как полное говнище».
    Ну что тут сказать? Кажется, кто-то зажрался. Ведь с видео тоже можно делать пререндер. А почему нет? Представьте себе комнату и персонажа в ней. Просто рендерим в какой-нибудь Maya виды при повороте камеры от 0 до 359 градусов. Всего 360 кадров. Предположим, комната 10x10 шагов. Тогда на весь рендер уйдёт всего 36000 кадров, которые можно пожать каким-нибудь кодеком и завернуть в контейнер MKV (к примеру). Это ведь какие-то жалкие 20 минут фильма, сколько оно там займёт… Скорость каналов и ёмкости дисков уже позволяют так делать, а ведь качество профессионально отрендеренной графики будет уж не в пример лучше полигонального on-the-fly!
    При создании графики любого, кто выдвинет столь «гениальную» идею, немедленно уволят. Звуковиков же почему-то не увольняют, хотя это точно такой же идиотский подход — мол, отрендерим все виды звука и потом просто будем миксить разные сэмплы с разной громкостью. Это ж такая примитивщина, по сравнению с которой даже трекерная музыка 90-х кажется недосягаемой технологической вершиной.
    А ведь требования к звуку растут. Всё больше и больше сложных вариантов озвучки в играх, всё больше она занимает места (в процентах). Уже в Mass Effect-2 звук занимает 19% от общего веса игры. И это при том, что там весьма качественная графика, неплохие текстуры, куча видеороликов.
    Вот как только звук начнёт занимать более 70% игровых ресурсов, тут-то разработчики и задумаются, что надо бы кому-то дать по рукам и сделать наконец SPU (аналог GPU), ввести звуковые шейдеры и программный синтез.
    • 0
      Все к этому и идет, думаю, почти уже научились синтезировать человеко-подобную речь, вот скоро и синтезом музыки начнут заниматься.
      А потом роботы станут композиторами.
      • +3
        Они уже.
        Есть программа EMI, которая проанализировала тысячи партитур, созданных известными композиторами, и может имитировать стиль любого из них.
        И есть Continuator, которая может, основываясь на стиле исполнения, подсказывать музыканту, как продолжить произведение.
        • +1
          Так где её можно скачать???
          • 0
            Не знаю=) Первая — результат почти 30-тилетней работы, вторая — почти 20-тилетней. Вряд ли на трекер выложат)
            • +1
              Ну GTA V ведь выложили :D
              • +7
                Это будет ад X) В высоких обществах создателя EMI многие уже давно хотят четвертовать. Искушенные слушатели не в состоянии отличить партитуру EMI от партитуры Вивальди. А когда узнают правду, воспринимают это как плевок в душу. Что уж говорить о композиторах o_O
                • 0
                  Это же по нотам, которые в уже общественном достоянии находятся, можно музыку этой программой сыграть и получить звук, не отягощаемый ничьим копирайтом?
                  • 0
                    Да-да. А еще оцените количество табов современных исполнителей в открытом доступе.
  • НЛО прилетело и опубликовало эту надпись здесь
    • +1
      Даже Massive и Zebra имеют ограниченные (хоть и непревзойденные среди VSTi) возможности параметризации. Множество требуемых результатов намного мощнее множества результатов, которые могут выдавать эти синты. Плюс, потенциальный доступ к низкоуровневым параметрам синтеза извне.
      • 0
        Так а зачем использовать готовое, если можно под свои нужды написать то, что нужно именно тебе? Оно заодно и меньше ресурсов, скорее всего, будет жрать, по сравнению с «универсальным» монструозным синтом, который может почти всё.
        • 0
          Ответил вам в следующем комментарии.
      • НЛО прилетело и опубликовало эту надпись здесь
        • +1
          Прочитайте статью неспеша =)
    • 0
      Вот да. Тот же стандарт VST достаточно прост, хост к нему написать — задача вполне выполнимая. Если нужно свои синты — тоже без особых проблем создаются.

      С другой стороны, имея опыт использования их для написания музыки, могу сказать, что процессор они нагружают довольно-таки прилично, с этим ничего не поделаешь. Возможно, будущее — за специальными устройствами, на которые можно будет переносить тяжелые вычисления звука, по аналогии с видеокартами? :)
      • 0
        Так речь не о каком-то конкретном стандарте. Смысл описанного стека в этом и заключается. VST так VST. Тут главное — концепция. Аудио уже встроено в объекты мира, оно является его «природной» легко управляемой частью.
        • 0
          Я понимаю, да. Я имел в виду гипотетическую модель, где спустя какое-то время накопится достаточно готовых решений почти на все нужные разработчику случаи жизни. Например, я могу сейчас открыть какой-нибудь Sylenth и сделать там более-менее нормальный звук лопастей вертолета (а скорее всего, там уже, наверное, есть подобный пресет). А могу вместо этого написать свой синт Helicopter (который будет специализироваться на реалистичном звуке вертолета). Кто-то еще напишет синт Boeing 747. Будет такая большая библиотека звуков окружающей среды. И тогда разработчики игр смогут просто покупать эти синты и использовать их в своей игре как им заблагорассудится (управляя частотой вращения лопастей в режиме реального времени, громкость и чем еще угодно).
  • +2
    Что думаете про новую технологию TrueAudio от AMD, где звук будет обрабатываться не на CPU, как сейчас в большинстве игр, а на видеокарте?

    Небольшой перевод этой новости на русский.
    • 0
      Интересно, спасибо за ссылку. Насколько мне представляется, это как раз один из шагов в сторону вычислительного аудио. Как я понял из оригинала статьи, упор в частности будет делаться как раз на пространственные эффекты. Это как раз одни из наиболее затратных вычислений — множественные отражения сигнала, диффузия и т.д.
  • +1
    Спасибо. Отличная статья!

    По поводу процедурного аудио — у всех существующих программ, которые позволяют реализовывать сложные звуковые модели (PD, CSound, SuperCollider, Max/Msp, NI Reactor и т.п.) есть один очень существенный недостаток — общая регидность и качество звучания модулей. Поэтому, несмотря на то, что можно создать очень детальную и реалистичную модель — звук получается значительно хуже чем ожидается.

    В мире синтезаторов основной характер инструмента создаётся фильтрами. Это касается и программных и железных синтезаторов. Тот же Monark от NI, моделирующий звучание аналогового Mini-Moog, хоть и сделан на движке Реактора, но фильтры, переписывались и калибровались с нуля, т.к. со стандартными фильтрами Реактора получить такое звучание невозможно. А смоделировав аутентичные фильтры — получаем требовательный к ресурсам инструмент, который может воссоздавать звучание только одного конкретного синтезатора. А для того, чтобы получить, например, фирменный звук Roland TB-303, нам нужно заново создавать и калибровать модель фильтра.

    Поэтому для эффективного развития процедурного аудио (в его текущем направлении) нужно создавать очень много качественных физ. моделей. Не только для фильтров, но для всего. Как например существующие уже физ. модели фортепиано, rhodes, некоторых типов перкуссии и струнных инструментов, где существует математически описанная физ. модель возбудителя (жесткий молоточек, мягкий молоточек, смычок...) и физ. модель тела (цилиндр, конус, пластина, струна...). Такие же модели должны быть созданы для всех вариантов взаимодействия в игре: модели поверхностей (песок, камень, дерево, ткань...), тел (деревянный дом, картонная коробка, металлическая контейнер, лиственный лес...) и т.п. А это уже серьёзное программирование, которое чуждо среднестатистическому звуковому дизайнеру. Равно как чужды понятия, «ламповая теплота», «мягкая сатурация», «реверберация лиственного леса» среднестатистическому программисту :)
    • 0
      Рад, что статья понравилась :)
      Насчет синтезаторов — согласен, чтобы учесть все нелинейные тонкости и получить теплый ламповый муг, действительно нужны ресурсы, да еще желательно препарировать оригинальный инструмент. Хотя взять тот же Diva, — не особо ресурсоемкий, а звучит очень хорошо и имитирует много всего. Противоположный пример — Massive, который как раз собран в Reaktor. Сколько пытался сделать сам и сколько пресетов перерыл — тепла в нем действительно нет.
      Касательно качества модулей — это зависит от «искусства апроксимировать». Действительно, еще много чего надо смоделировать и написать, чтобы результат был легче и качественнее.
      Спасибо за ссылки.
      • 0
        А можете примерно предположить, о ресурсах какого порядка может идти речь? То есть сколько процентов это составляет от того, что сейчас в среднем требует графика? Если, конечно, можно говорить об этом с какой-то определённостью.
        • 0
          Я думаю, это не сравнимо с графикой. В несколько раз меньше.
          Естественно, при условии грамотного подхода. Если бессмысленно, маниакально точно моделировать водопад, то тут только на чем-то из TOP500. Если с головой — то на планшетах все будет гладко. А если с отдельным звуковым чипом работать, то совсем замечательно.
          Подход к обработке и синтезу звука в целом заключается к быстрому прямому и обратному преобразованию Фурье, плюс не запредельная математика. Короче, о ежесекундной обработке огромных массивов данных типа вершин многополигональных моделей и шейдеров речи вообще не идет :)
        • 0
          Из моего опыта: всё очень зависит от конкретной физ.модели и способа её реализации/оптимизации. Например, одновременное звучание 26 копий физмод синтезатора Chromaphone, который качественно эмулирует звуки перкуссии (бонги, гонги, ксилофоны, колокола и т.п.), съедает 100% ресурса процессора i7-3770K. Но это искусственный тест. В реальных проектах всё не так плохо.
  • 0
    Таким образом можно и музыку писать, используя только простейшие математические формулы: goo.gl/UJl0i
    • 0
      Послушайте Яниса Ксенакиса) Партитуру писала программа, а исполняли люди: www.youtube.com/watch?v=1H7JYwmM7vU
      • 0
        Да, когда делают наоборот, пожалуй, получается немного лучше. :-)
  • 0
    Есть такая штука — кинематика, получаются очень красивые штука, см subliminalPhoenix.com. Никак не могу понять как он это делает.
  • 0
    Помню, в сети нашёл программу «Звуки леса.» В ней были звуки птиц, дождя и шума ветра, в общем хорошо воссоздавала лесную обстановку. Но через неделю-две регулярных включений все записанные звуки приелись и стали раздражать. Надеюсь, что-то подобное смогут генерировать процедурно, чтобы звучало натурально, не повторялось и не раздарало.
  • +3
    Да тема интересная, но такое смогут позволить себе только команды с достаточным количеством денег и достаточным желанием улучшить звук.
    Начинающие разработчики может быть и хотят всякие такие вещи, но:
    1. как уже сказал на это нет денег
    2. движок который они используют такое не умеет или доводить это сложно/проблемно (взять тот же Unity).

    Вообще, кому интересно, разработки в этой сфере делаются, и лично я, когда будут возможности буду использовать подобные вещи:
    www.cs.cornell.edu/projects/sound/fire/
    www.cs.cornell.edu/projects/FractureSound/
    gamma.cs.unc.edu/PrecompWaveSim/
    gamma.cs.unc.edu/symphony/
    gamma.cs.unc.edu/SlidingSound/SlidingSound.html

    Ещё скажу, мипмап не из-за экономии ресурсов используется (он-то как раз их пожирает), а для правильного отображения текстур дальних объектов (чтобы мерцания и мельтешания пикселей не было).
    • 0
      Текстуры дальних объектов никто не запрещает накладывать «честно», используя для одной точки проекции среднее значение всех точек текстуры, попадающих в нужную область. Причем геометрически множество точек текстуры, которое надо усреднить, имеет форму не квадрата, а овалообразного объекта, вытянутого в стороны в зависимости от угла между нормалью к поверхности и вектором на камеру. Это, конечно, очень затратно вычислительно. Но очевидно, что мипмап дает только весьма приближенную замену описанному выше механизму, зато позволяет для одной точки поверхности дальнего объекта взять всего одну точку одной из вариантов текстуры (вместо десятков-сотен). Расходы на мипмап — только память (а она дешева) и однократное вычисления массива уменьшенных текстур.
      • 0
        Под ресурсами я имел ввиду именно память. Просто встречал заблуждение что мипмап её экономит. Ещё мипмап позволяет задать своё изображение для нужного уровня детализации/расстояния, так например вблизи можно показывать чёрную землю под кустами травы, а вдали (где трава уже не рисуется) показывать изображение-имитацию этой травы вместо чёрной земли.
        Что касается дешевизны, видеопамять не так уж дёшева была до недавнего времени, да и сейчас её по факту не так уж много (если идти в ногу со временем), ведь текстуры это и карты теней (которые всё большего и большего разрешения), да и на объект теперь нередко не одна и не две карты для шейдера идут, потом всё чаще используются 3д/объёмные текстуры (для тех же облаков или освещения). Помимо текстур в памяти лежат ещё модели, тяжесть которых тоже растёт, и буферы всякие. В общем, памяти по прежнему не хватает и прямо уж разбрасываться ей нельзя.

Только зарегистрированные пользователи могут оставлять комментарии. Войдите, пожалуйста.