Modificar la frecuencia de los sonidos

Started by La momia que fuma, October 08, 2008, 06:21:42 PM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

La momia que fuma

Esto ya lo había en el DIV1 y en Fénix nunca se implementó (no me acuerdo ahora mismo de como se llamaba la función...), y vamos, servía básicamente para lo que pone en el título, modificar la frecuencia de un sonido para que se oiga mas rapido y agudo o mas lento y grave...asi a bote pronto parece que sirve solo para "apitufar" voces XD, pero creo que es fundamental para juegos de coches, para que el sonido de los motores varie segun la velocidad (variando la frecuencia en DIV quedaba perfecto!)

SplinterGU

si, la tengo en planes, pero siempre la dejo pasar... gracias por recordarmelo...
Download Lastest BennuGD Release: http://www.bennugd.org/node/2

TYCO

Totalmente de acuerdo con Momia, es unas de las deficiencias de fenix que mas me sorprendio. Fundamental.

En Fenix habia una libreria ("fenix-mixer-1.0.zip" que incluia la "mixer.dll") y relamente funcionaba la variacion de frecuencia, pero resultaba muy "sucio" todo el codigo a usar para variar la frecuencia y siempre separado de funciones play_wav, etc:

     mixer_init();
     
     fichero=mixer_load_wav("game.wav");
     canal=mixer_play_wav(fichero);

        If (key(_x))
                frecuencia=frecuencia+100;
                mixer_set_wav_freq(canal,frecuencia);
        End

Esta libreria en Bennu dejo de funcionar, intente recompilarla y dolores de cabeza me dio. Segun mi punto de vista, no deberia ser muy dificil (para mi si eso esta claro) integrar en Bennu esto de la variacion de "frecuencias".

Conclusion: Apoyo la mocion.
Programador, Escritor/Guionista y Deportista.

Todo Modo Gráfico tiene por detrás una Línea de Comandos.

SnowCraft Remake (100%)
Rally Mortal (87%)

FreeYourMind

Esto de la frecuencia ya esta implementado en las ultimas versiones ?

Para que sirve la nueva set_music_position( double segundos ) ??

En caso negativo, que programa conoceis para cambiar la frecuencia de un wav ?
Uso el soundforge pero no doy con la opcion.

Necesito poner una freq="22050" a algunos sonidos, en realidad lo prefiero hacer directamente en el fichero que por código, ya que no seria tan pesado el procesamiento.

BoMbErLiNk

No, no la hay.

Pero que quieres exactamente, cambiar la velocidad del wav o solo la frecuencia, tienes sound_freq=22050;, pero eso no va a hacer que sean más ligeros los ficheros ni va a modificar la velocidad.

Puedes probar audacity o el VLC, josebita hizo unos bats para pasar wavs y oggs a una frecuencia concreta.

FreeYourMind

Quiero que el sonido vaya mas lento. Los ficheros estan seteados a la frecuencia 22050 por codigo pienso que es para que suenen 'normal'.
Donde esta el link de josebita ?
Grácias.

BoMbErLiNk

El link de josebita es para cambiar la frecuencia ej. de 44100hz a 32000hz.

Si lo que quieres es cambiar la velocidad prueba audacity :
http://audacity.sourceforge.net/?lang=es

FreeYourMind

Recordando la funcion de DIV:

change_sound(canal, volumen, frecuencia);
Este valor oscila entre 0 (grave) y 512 (agudo).

He estado mirando y me parece que no es la frecuencia que tengo que modificar, porque aunque uno cambie la frecuencia, el sonido tendrá el mismo tiempo de duración, así que estoy casi seguro que es la velocidad.

Voy a probar tu programa, he instalado el CoolEditPro y solo da problemas, ni puedo escuchar el sonido, tiene mogollon de errores internos.

BoMbErLiNk

En audacity puedes cambiar todo, el pitch, el tempo, el tamaño de la onda.

Puedes conseguir con el programa que el sonido dure lo mismo pero se escuche más grave o agudo, que sea realmente más rápido recortando la onda y que dure menos, etc

FreeYourMind

Ya esta, funciona de maravilla. Me he resistido a instalar este programa toda la vida.
Grácias and karmete for Bomber.

Rein (K´)ah Al-Ghul

creo q se estan confundiendo frecuencia ( de muestreo), frecuencia del sonido (hertz) y velocidad de reproduccion... :P


Rein (K´)ah Al-Ghul
Infected with the Krieger strain of the Human-MetaHuman Vampiric Virus.

en vez de darme Karma positivo, denme (K´)arma negativ


Mr Matsusaka

En DIV1 la frecuencia estaba metida como parametro a la hora de llamar al sonido, lo cual era bastante comodo. Sino recuerdo mal el formato era

[code language="bennu" options="singleline"]sound (sound_id, sound_volume, sound_frecuency);[/code]

Drumpi

Yo uso el nero wave editor, porque a lo tonto tiiene todos los filtros y tratamientos de audio básicos.

A ver: frecuencia de muestreo indica cada cuanto se toma un valor, la velocidad de reproducción indica cuantas de estas muestras se reproducen por segundo, que suele ser la misma que la de muestreo.
Pero la frecuencia de un sonido indica el tono con el que va a sonar (la nota musical, para que nos entendamos): si se aumenta la frecuencia, sonará más agudo, y si se reduce sonará más grave. Pero eso no implica que cambie la frecuencia de muestreo, porque lo que se hace es cambiar el valor de las muestras.

Lo cierto es que sería interesante tener un módulo de sonido para hacer todos estos filtros, pero por desgracia aun no me atrevo con esto, por tiempo y porque en mi último intento me quedé atascado en lo más básico. Además, no sé cómo hacer que, una vez tenga el sonido final, mandárselo al altavoz.
Hala, como con 1001 procesos sólo va a 9 FPS, vamos a meterle 32 veces más, a ver si revienta.
(Drumpi epic moment)