2009-08-24 3 views
9

Я ищу наиболее реалистичный способ воспроизведения звука катящегося мяча. В настоящее время я использую образец Wav, который я играю снова и снова, пока мяч двигается, что просто не кажется правильным.Звук катящегося мяча

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

Спасибо!

+1

Возможно, это не так, потому что амплитуда в конце wav не соответствует амплитуде в начале. Вы можете попытаться убедиться, что сначала (используя fade in, чтобы начать звук), прежде чем вникать в более сложные области. –

+0

Звук - это короткий непрерывный образец, он звучит «нормально», но я не могу контролировать природу звука в отношении шаров. Трудно описать: | – arul

+11

Действительно не согласен с голосованием SuperUser. Я имею в виду, почему? Арул не ищет приложения для воспроизведения звука, он ищет способ * генерировать * реалистичный звук. – dmckee

ответ

8

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

Например, в FMOD вы можете использовать метод Channel :: setFrequency. В идеале вы должны вычислить желаемую частоту воспроизведения, основанную на исходной частоте дискретизации WAV (Fo), текущей скорости мяча (Vc) и идеальной скорости шара, при которой по умолчанию WAV будет звучать правильно (Vi). Что-то в целом, как:

F = Fo * (Vc/Vi)

Это, как правило, ломаются, как мяч становится дальше от «идеального» скорости. Возможно, вы захотите иметь несколько разных WAV, которые подходят для разных диапазонов скоростей, с которыми вы переключаетесь с определенными пороговыми скоростями. Внутри каждой консоли WAV вы делаете такую ​​же настройку частоты.

Другое примечание: это, вероятно, не то, что стоит делать каждый кадр. Я предполагаю, что делать это более 20 раз в секунду было бы пустой тратой времени.

ADDENDUM: Масштабирование частоты воспроизведения, подобное этому, также может использоваться для имитации эффекта Допплера.После того, как у вас есть настроенная частота воспроизведения, вы выполните еще один масштаб частоты, основанный на скорости шара относительно «слушателя» (камеры).

+0

Интересная идея. Вероятно, лучше сделать, изменив обрезание фильтра нижних частот, чем путем изменения скорости воспроизведения звука. – Nosredna

+0

На самом деле это не будет выполнено. Звук чего-то проката с разной скоростью - это больше, чем просто распределение частоты - это связано с общей скоростью звука. Представьте, что вы запускаете звук двигателя автомобиля через фильтр нижних частот. Независимо от того, где вы устанавливаете отсечку, «скорость» (RPM) двигателя не будет звучать иначе. Дополнительно - настройки частоты воспроизведения легче/дешевле делать в режиме реального времени. – Quintus

+0

Это самое близкое к моей текущей +/- рабочей реализации, поэтому я принимаю этот ответ. Спасибо всем за ваши идеи! – arul

6

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

+0

Это на самом деле довольно хорошая идея - в основном одномерная черепица. –

+3

не звучат назад звуки, качественно отличающиеся от обычного звука? – Jimmy

+2

если это короткий клип, это не будет заметно. это на самом деле отличный способ сделать звук в контуре без кроссфейдинга. – leolobato

5

Одним из подходов может быть анализ звука вращающегося шара и разложение его на его составляющие формы сигнала. Затем вы сможете создать свой собственный wav-файл с синтезированными волнами.
Вы должны сделать это, используя БПФ на выборке звука.

Один из недостатков заключается в том, что звук, скорее всего, будет синтезирован - вам придется добавить шум и так, чтобы звук выглядел более реалистичным. Достаточно сказать, что это звучит достаточно убедительно.

+0

Я рассмотрю, этот метод подходит для использования в реальном времени в среде с ограниченными ресурсами (смартфон)? – arul

+0

Честно - я не знаю. Если вы знаете, что в известных условиях мяч произведет определенный звук, то известны параметры звука. Таким образом, вы должны иметь возможность «кэшировать» достаточно синтезированного звука, чтобы вы могли создавать завихряющийся wav-файл. Я просто помню БПФ из моих университетских дней и казался хорошим подходом. –

+2

Переход от FFT к синтезу звука - разумная вещь, но, вероятно, не в этом случае. Что интересно в катящемся мяче - это мгновенные изменения в спектре. Вы можете использовать весь процессор для пересинхронизации звука. Особенно, если вы используете синтез морфинговых добавок. – Nosredna

3

Я не думаю, что вам нужна проблема, чтобы синтезировать это. Было бы слишком сложно даже казаться убедительным.

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

Кстати, freesoung.org - отличное место для бесплатных образцов. Они не зарегистрированы профессионально, но являются хорошей отправной точкой для манипуляций. С другой стороны, sound ideas имеет несколько отличных образцов компакт-дисков (они на самом деле являются промышленным стандартом), если вы можете найти их по дешевке. Вам просто нужно искать, какой из них звучит катящимся мячиком.

2

Мой вопрос: «почему?» - Вы видите какую-то выгоду в этом, или это просто для удовольствия? Ваш вопрос подразумевает, что вас не устраивает wav, который вы используете, но я твердо верю, что синтез ваших собственных будет звучать намного хуже.

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

Синтез в реальном времени может потребовать больше ресурсов для обработки и вычисления. Вполне возможно, что вы прервали свой синтезированный звук в wav-файл и выполните воспроизведение.

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

+0

Существует много видов методов синтеза, которые занимают небольшую часть процессора. Пример воспроизведения всегда будет повторяющимся и очевидным, поэтому я думаю, что неплохо подумать о возможностях синтеза. – Nosredna

3

Мне очень нравится подход, описанный в этой статье SIGGRAPH:

http://www.cs.ubc.ca/~kvdoel/publications/foleyautomatic.pdf

Он описывает синтез звука рок-прокатке в воке (нет, на самом деле :). Идея заключается в использовании модального синтеза (т. Е. Свернутых импульсных ответов), и результаты могут быть очень убедительными.

Вот ссылка на клип, который идет с бумагой:

http://www.cs.ubc.ca/~kvdoel/publications/foleyautomatic.mpeg

А вот ссылка на библиотеку JASS (написанной одним из авторов), который был использован для создания звука для видео:

http://www.cs.ubc.ca/~kvdoel/jass/jass.html

Я не уверен, если вы могли бы сделать его запустить на смартфоне, но с эффективной достаточно свертка рутинного/приближения вы могли бы быть в состоянии сделать что-то я nteresting ...

+0

Впечатляющее чтение, спасибо. – arul

+0

Рад, что вам понравилось. Удачи в синтезе. – datageist

Смежные вопросы