2009-08-24 20 views
9

Estoy buscando la forma más realista de reproducir el sonido de una pelota rodante. Actualmente estoy usando una muestra de Wav que reproduzco una y otra vez mientras la bola se está moviendo, lo que simplemente no me parece bien.Sonido de una bola rodante

He estado pensando en sintetizar por completo el sonido, del que sé muy poco (casi nada), agradecería cualquier tutorial/material de investigación/muestras sobre la síntesis del sonido de una bola hecha de material particular rodando sobre la superficie hecha de otro material. Además, si esta idea es completamente incorrecta, sugiera otra forma de hacerlo.

Gracias!

+1

Puede que no se sienta bien porque la amplitud al final del wav no coincide con la amplitud al principio. Puede intentar asegurarse primero (usando fundido para comenzar el sonido) antes de profundizar en reinos más complejos –

+0

El sonido es una muestra continua corta, suena "bien", pero no puedo controlar la naturaleza del sonido con respecto a la velocidad de bolas. Es difícil de describir: | – arul

+11

Realmente no estoy de acuerdo con el voto de SuperUser. Quiero decir, ¿por qué? Arul no está buscando una aplicación para reproducir un sonido, está buscando un método para * generar * un sonido realista. – dmckee

Respuesta

8

Supongo que obtendrás el máximo rendimiento de tu dinero haciendo un ajuste de frecuencia dinámico en el sonido que hace que la frecuencia de reproducción sea proporcional a la velocidad de la pelota. No sé qué tipo de biblioteca de sonido utilizas, pero la mayoría admitirá alguna variante de esto.

Por ejemplo, en FMOD puede usar el método Channel :: setFrequency. Idealmente, calcularía la frecuencia de reproducción deseada en función de la frecuencia de muestreo original de su WAV (Fo), la velocidad actual de la bola (Vc) y la velocidad "ideal" de la bola en la que el WAV predeterminado suena bien (Vi). Algo en general, como:

F = Fo * (Vc/Vi)

Esto tenderá a romper el balón como se pone más lejos de la velocidad 'ideal'. Es posible que desee tener varios WAV diferentes que sean apropiados para diferentes rangos de velocidad a los que cambie en ciertas velocidades de umbral. Dentro del soporte de cada WAV, harías el mismo tipo de ajuste de frecuencia.

Otra nota: probablemente esto no valga la pena en cada fotograma. Supongo que hacer esto más de 20 veces por segundo sería una pérdida de tiempo.

ADDENDUM: La escala de frecuencia de reproducción como esta también se puede usar también para simular el efecto Doppler.Una vez que tenga su frecuencia de reproducción ajustada, realizaría otra escala de la frecuencia en función de la velocidad de la pelota en relación con el "oyente" (la cámara).

+0

Una idea interesante. Probablemente mejor al cambiar el límite de un filtro de paso bajo que al cambiar la velocidad de reproducción del sonido. – Nosredna

+0

Eso realmente no lograría lo mismo. El sonido de algo que rueda a diferentes velocidades es más que una simple propagación de frecuencia, tiene que ver con la velocidad general del sonido. Imagine que ejecuta el sonido del motor de un automóvil a través de un filtro de paso bajo. No importa dónde establezca el límite, la 'velocidad' (RPM) del motor no sonará diferente. Además, los ajustes de frecuencia de reproducción son más fáciles/más baratos de hacer en tiempo real. – Quintus

+0

Esto es lo más parecido a mi implementación actual de +/- trabajo, así que acepto esta respuesta. ¡Gracias a todos por sus ideas! – arul

6

¿Ha intentado reproducir el sonido hacia adelante, luego reproducirlo hacia atrás y hacer un bucle? Utilizo este truco gráficamente para crear patrones repetitivos. No sé mucho sobre el sonido, pero podría funcionar?

+0

. Esa es una muy buena idea, básicamente un mosaico de 1 dimensión. –

+3

¿No suena hacia atrás sonido cualitativamente diferente del sonido normal? – Jimmy

+2

si es un clip corto, no se notará. esta es realmente una gran manera de hacer que un bucle suene sin fisuras sin fundido cruzado. – leolobato

5

Un enfoque podría ser analizar el sonido de una bola rodante y descomponerlo en sus formas de onda componentes. Entonces, podrías generar tu propio archivo wav con ondas sintetizadas.
Debería poder hacer esto usando una FFT en una muestra del sonido.

Una desventaja es que el sonido probablemente sonará sintetizado; tendrá que agregar ruido para que suene más realista. Hacer que suene lo suficientemente real puede ser la parte más difícil.

+0

Voy a analizar eso, ¿este método es adecuado para el uso en tiempo real en entornos con recursos limitados (teléfonos inteligentes)? – arul

+0

Honestamente, no sé. Si sabe que la pelota emitirá un sonido determinado en condiciones conocidas, entonces se conocen los parámetros de sonido. Por lo tanto, debería poder "almacenar en caché" suficiente del sonido sintetizado para que pueda crear un archivo wav loopable. Solo recuerdo la FFT de mis días universitarios, y parecía un buen enfoque. –

+2

Pasar de FFT para sintetizar un sonido es algo razonable que hacer, pero probablemente no en este caso. Lo interesante de una bola rodante son los cambios de momento a momento en el espectro. Puede usar todo el procesador para resintetizar el sonido. Especialmente si usas una síntesis aditiva morphing. – Nosredna

3

No creo que necesite el esfuerzo para sintetizar eso. Sería demasiado difícil incluso sonar convincente.

Dependiendo de cómo sea su escena, puede reproducir el sonido adelante/atrás y simular un efecto Doppler aplicando un filtro de paso bajo y/o cambiando el tono. Por favor, freesoung.org es un gran lugar para muestras gratis. No están registrados profesionalmente, pero son un buen punto de partida para la manipulación. Por otro lado, sound ideas tiene algunos cds de muestra geniales (en realidad son estándar de la industria) si puede encontrarlos a bajo precio. Solo tienes que buscar cuál tiene sonidos de pelota rodante.

2

Mi pregunta es '¿por qué?' - ¿Ves algún beneficio en esto, o es solo por diversión? Tu pregunta implica que no estás contento con el sonido que estás usando, pero creo firmemente que sintetizar el tuyo va a sonar muy inferior.

Si su muestra wav no suena bien, le sugiero que intente encontrar otra muestra. Sintetizar un sonido no es fácil y nunca sonará tan realista como tu muestra.

La síntesis en tiempo real puede requerir más recursos para el procesamiento y el cálculo. Es muy posible que termines pregrabando tu sonido sintetizado en un archivo wav y realizando una reproducción.

Si desea simular el sonido de diferentes materiales, puede utilizar algunos DSP, o incluso trucos simples como ralentizar o acelerar la reproducción de wav. La forma más sencilla es prerregistrar estos en otra aplicación y almacenar una copia del archivo para cada uso.

+0

Hay muchos tipos de métodos de síntesis que tomarían una pequeña fracción del procesador. La reproducción de muestras siempre será repetitiva y obvia, así que creo que es una buena idea pensar en las posibilidades de síntesis. – Nosredna

3

me gusta mucho el enfoque descrito en este documento SIGGRAPH:

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

En él se describe la síntesis del sonido de una roca rodadura en un wok (no, en serio :). La idea es usar síntesis modal (es decir, respuestas de impulso convolucionadas), y los resultados pueden ser muy convincentes.

Aquí hay un enlace a la demo de vídeo que va con el papel:

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

Y aquí hay un enlace a la biblioteca JASS (escrito por uno de los autores), que se utilizó para crear el sonido para el video:

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

no estoy seguro de si se puede hacer que se ejecute en un teléfono inteligente, pero con una suficiente rutina de convolución/aproximación eficiente que podría ser capaz de hacer algo i nteresting ...

+0

Lectura impresionante, gracias. – arul

+0

Me alegro de que le haya gustado. Buena suerte con la síntesis. – datageist

Cuestiones relacionadas