Stratos: Punto de Encuentro de Desarrolladores

¡Bienvenido a Stratos!

Acceder

Foros





Cvrîos

Iniciado por Mars Attacks, 29 de Noviembre de 2003, 03:33:38 PM

« anterior - próximo »

synchrnzr

 
CitarEso que te lo responda sync que es un experto

Mmm... me toca, por alusiones :rolleyes:

Bueno, la verdad es que Guybrush ya ha dado una idea bastante buena y seguro que más o menos todos cuando vais a comprar altavoces os fijais en el dato de potencia máxima RMS y no la PMPO, que es la que suelen poner en grande para vender más ;)

No creo que haya mucho que explicar, pero ya que habeis preguntado, vamos a dar unas nociones generales y así hacemos algo de cultura :P

La RMS se utiliza normalmente para calcular la intensidad media de una señal (que es el factor que determina la potencia media) Es muy fácil de calcular. Por ejemplo, si tenemos una señal/muestra discreta (como un WAV, por ejemplo):

1. Sumamos los cuadrados de todas las muestras
2. Dividimos el resultado por el número de muestras
3. Hacemos la raiz cuadrada y...

hop! ya tenemos la intensidad RMS de esa señal :)

Para una señal analógica, lo mismo, pero integrando en vez de sumando. Observemos también que si tenemos una señal larga, como por ejemplo una canción, no tiene mucha utilidad calcular la intensidad RMS de toda la señal, sino la potencia que va teniendo a intervalos. Una canción puede tener una intensidad media de -6dB RMS. Esto no nos dice si la canción suena fuerte o floja, igual la canción suena casi todo el rato a -12dB RMS y en un pequeño cacho del final suena a 0dB RMS y por eso tenemos esa media.

Es más lógico obterner, por ejemplo, una gráfica de la potencia de la señal en cada cacho. Si os fijais, al hacer un analisis de frecuencia tipo FFT con un editor de audio, normalmente nos mostrará una gráfica en 3D (frecuencia, intensidad y tiempo) que obtiene haciendo la FFT a intervalos regulares (por ejemplo de 1 segundo) Lo común en los editores de audio es tener un par de medidores que nos proporcionen la intensidad PMPO y la RMS a medida que reproducimos el sonido que trabajamos (VU-meters)

Para terminar, observad que si la señal no está centrada, la medida RMS es engañosa. Por ejemplo, una señal de 16 bits en la que todas las muestras están a un mismo valor (por ejemplo a +3dB), calculamos la potencia RMS y nos dará 3dB. Pero en realidad se trata de una señal muda. Las muestras podrían salir descentradas por algun desplazamiento en el nivel de tensión (DC Offset) En cambio, sigue siendo cierto que esos 3dB son proporcionales a la potencia que consume el altavoz al mantener la membrana a ese nivel. Siempre es recomendable trabajar con señales centradas y casi todos los editores de audio tienen una opción para centrar la señal (Eliminate DC Offset)

Bueno, creo que esto me va a solucionar un problema que tenía hace tiempo. Me pidieron en la UAB que si podía dar alguna clase sobre señales en plan algo práctico pa romper la monotonía de la asignatura y después de lo que escrito, creo que este tema da de sí y es lo suficientemente práctico.

Bueno, aparco ya el off-topic y voy a bajarme el Cvrîos ;)

sync

Guybrush Threepwood

Cita de: "Mars Attacks"Edito: resubo la canción con los instrumentos que no uso borrados (no me había dado cuenta de que estaban, se ha quedado en la mitad de espacio) y con el panning cambiado para paliar el problema de la carga a la izquierda. Es el mismo link de antes.
ahora sí (ole)  

CoLSoN2

Cita de: "synchrnzr"
CitarEso que te lo responda sync que es un experto

Mmm... me toca, por alusiones :rolleyes:

Bueno, la verdad es que Guybrush ya ha dado una idea bastante buena y seguro que más o menos todos cuando vais a comprar altavoces os fijais en el dato de potencia máxima RMS y no la PMPO, que es la que suelen poner en grande para vender más ;)

No creo que haya mucho que explicar, pero ya que habeis preguntado, vamos a dar unas nociones generales y así hacemos algo de cultura :P

La RMS se utiliza normalmente para calcular la intensidad media de una señal (que es el factor que determina la potencia media) Es muy fácil de calcular. Por ejemplo, si tenemos una señal/muestra discreta (como un WAV, por ejemplo):

1. Sumamos los cuadrados de todas las muestras
2. Dividimos el resultado por el número de muestras
3. Hacemos la raiz cuadrada y...

hop! ya tenemos la intensidad RMS de esa señal :)

Para una señal analógica, lo mismo, pero integrando en vez de sumando. Observemos también que si tenemos una señal larga, como por ejemplo una canción, no tiene mucha utilidad calcular la intensidad RMS de toda la señal, sino la potencia que va teniendo a intervalos. Una canción puede tener una intensidad media de -6dB RMS. Esto no nos dice si la canción suena fuerte o floja, igual la canción suena casi todo el rato a -12dB RMS y en un pequeño cacho del final suena a 0dB RMS y por eso tenemos esa media.

Es más lógico obterner, por ejemplo, una gráfica de la potencia de la señal en cada cacho. Si os fijais, al hacer un analisis de frecuencia tipo FFT con un editor de audio, normalmente nos mostrará una gráfica en 3D (frecuencia, intensidad y tiempo) que obtiene haciendo la FFT a intervalos regulares (por ejemplo de 1 segundo) Lo común en los editores de audio es tener un par de medidores que nos proporcionen la intensidad PMPO y la RMS a medida que reproducimos el sonido que trabajamos (VU-meters)

Para terminar, observad que si la señal no está centrada, la medida RMS es engañosa. Por ejemplo, una señal de 16 bits en la que todas las muestras están a un mismo valor (por ejemplo a +3dB), calculamos la potencia RMS y nos dará 3dB. Pero en realidad se trata de una señal muda. Las muestras podrían salir descentradas por algun desplazamiento en el nivel de tensión (DC Offset) En cambio, sigue siendo cierto que esos 3dB son proporcionales a la potencia que consume el altavoz al mantener la membrana a ese nivel. Siempre es recomendable trabajar con señales centradas y casi todos los editores de audio tienen una opción para centrar la señal (Eliminate DC Offset)

Bueno, creo que esto me va a solucionar un problema que tenía hace tiempo. Me pidieron en la UAB que si podía dar alguna clase sobre señales en plan algo práctico pa romper la monotonía de la asignatura y después de lo que escrito, creo que este tema da de sí y es lo suficientemente práctico.

Bueno, aparco ya el off-topic y voy a bajarme el Cvrîos ;)

sync
CitarNo creo que haya mucho que explicar, pero ya que habeis preguntado, vamos a dar unas nociones generales y así hacemos algo de cultura :P

La RMS se utiliza normalmente para calcular la ...

zzZZzZ xDDDDDDDD
Manuel F. Lara
Descargar juegos indie  - blog sobre juegos indie y casual
El Desarrollo Personal.com  - blog sobre productividad, motivación y espíritu emprendedor

Mars Attacks

 
Citar
Es más lógico obterner, por ejemplo, una gráfica de la potencia de la señal en cada cacho. Si os fijais, al hacer un analisis de frecuencia tipo FFT con un editor de audio, normalmente nos mostrará una gráfica en 3D (frecuencia, intensidad y tiempo) que obtiene haciendo la FFT a intervalos regulares (por ejemplo de 1 segundo) Lo común en los editores de audio es tener un par de medidores que nos proporcionen la intensidad PMPO y la RMS a medida que reproducimos el sonido que trabajamos (VU-meters)

Tengo que mirar si el Skale me proporciona esa información en alguna parte. ¿El winamp (el 2, la tercera versión me hace llorar cada vez que tengo que usarlo) o el kjofol no traen algún plugin que hace eso?

Citar
Bueno, aparco ya el off-topic y voy a bajarme el Cvrîos ;)

Te deseo suerte, aún no está programado  ;)
Un post muy interesante, sí señor  (ole)  

Guybrush Threepwood

Cita de: "Mars Attacks"
Citar
Bueno, aparco ya el off-topic y voy a bajarme el Cvrîos ;)

Te deseo suerte, aún no está programado  ;)
owned  :ph34r:  

egf

 hey mars animo con el juego :) aver cuand lo catamos sobre las guitatrras as probado el slayer es un vtsi puse el link donde la musica


ps: gran master of sound (alias synchrnzr) gracias por los datos lo del dc offset e a quitado un peso de encima desde el sounforge 5 sin saber que leches era eso 8)


un saludito

Mars Attacks

 Hey, eqf, vi tu post y fui a esa web, pero todo lo que encontré era de pago  :blink:  No vi por ninguna parte el VSTi (también iba con algo de prisa y no presté mucha atención). Buscaré el post y volveré a intentarlo :)

Gracias por los ánimos, pero mejor dádselos a AgeR XD

synchrnzr

 EStá muy bien el MOD. El cacho de 0:46 a 1:04 se me hace un poco raro, pero supongo que hay que tener en cuenta que es un MOD y no se puede pedir mucho más :)

sync

AgeR

 La verdad es que le ha salido redondo el temilla al señor Mars  (ole) .

A ver si me pongo a su altura con la programación. Esta semana o la que viene como muy tarde intentaré poner unas screenshots del juego. Los gráficos también son del señor Mars, así que si no os gustan, yo me limito a cargarlos, no tengo nada que ver XDDDDDDDDDDD

Cuanta expectación, me dáis miedo :rolleyes: .

CoLSoN2

Cita de: "Mars Attacks"
Citar
Bueno, aparco ya el off-topic y voy a bajarme el Cvrîos ;)

Te deseo suerte, aún no está programado  ;)
Los grupos warez de hoy en día hacen milagros! cada día sacan releases con mas antelacion a la oficial xDDD
Manuel F. Lara
Descargar juegos indie  - blog sobre juegos indie y casual
El Desarrollo Personal.com  - blog sobre productividad, motivación y espíritu emprendedor

Mars Attacks

 Bueno, he intentado probar la demo del slayer (sólo para ver cómo sonaría), y el Skale lo carga, pero no lo reproduce. Así que two rocks y a buscar otra cosa :)

Mars Attacks

 Hmmm... detecto algún fallo en el algoritmo de IA que puse anteriormente (lástima no poder editarlo). En los fors que se encargan de buscar la esquina más próxima hay algunos vx y vy en la función tablero(x,y) en los que debería estar el valor i del bucle.

Citar
    /*y ahora vemos si nos hemos movido o no*/
   if(vx==virus.x && vy=virus.y) { //si no lo hemos hecho
      if(vy>flecha.y) {                    //vemos si estamos encima de la flecha
           sigueobjetivo=1;               //que es el estado 1
           objetivo.y=vy-1;
           for(i=vx;(i>=0 && !tablero(i,vy-1));i--);
           if(i>=0) {objetivo.x=i;} else {objetivo.x=-10000;};
           for(i=vx;(i           if(i!=MAXCOLS) {if((i-vx)<(vx-objetivo.x)){objetivo.x=i;};};
      };
      if(vx>flecha.x) {            //vemos si estamos a la derecha de la flecha
           sigueobjetivo=2;               //que es el estado 2
           objetivo.x=vx-1;
           for(i=vy;(i>=0 && !tablero(vx-1,i));i--);
           if(i>=0) {objetivo.y=i;} else {objetivo.y=-10000;};
           for(i=vy;(i           if(i!=MAXFILS) {if((i-vy)<(vy-objetivo.y)){objetivo.y=i;};};
      };
      if(vy           sigueobjetivo=3;               //que es el estado 3
           objetivo.y=vy+1;
           for(i=vx;(i>=0 && !tablero(i,vy+1));i--);
           if(i>=0) {objetivo.x=i;} else {objetivo.x=-10000;};
           for(i=vx;(i           if(i!=MAXCOLS) {if((i-vx)<(vx-objetivo.x)){objetivo.x=i;};};
      };
      if(vx           sigueobjetivo=4;               //que es el estado 4
           objetivo.x=vx+1;
           for(i=vy;(i>=0 && !tablero(vx+1,i));i--);
           if(i>=0) {objetivo.y=i;} else {objetivo.y=-10000;};
           for(i=vy;(i           if(i!=MAXFILS) {if((i-vy)<(vy-objetivo.y)){objetivo.y=i;};};
      };
    }               //y hasta aquí llega el tinglao de buscar el nuevo objetivo.


En fin, no creo que nadie lo fuera a probar, pero por si acaso :rolleyes:

De todas formas, cuando le eche el segundo vistazo intentaré optimizarlo y lo pondré por aquí.

Zaelsius

 Como apunte, decir que en las estructuras tipo


if(A && B && C ....)

if(A)
...
else if(B)
...
else C



Es bueno ordenar las comprobaciones por orden de más baja probabilidad. Asi, si el suceso A tiene menos probabilidad que el suceso B, utilizar este orden nos ahorrará unas cuantas comprobaciones, ya que si !A, no se comprobarán ya ni B ni C...

Esto al menos suele ser efectivo para la mayoria de compiladores. La misma recomendación para las estructuras "switch(x)"






Stratos es un servicio gratuito, cuyos costes se cubren en parte con la publicidad.
Por favor, desactiva el bloqueador de anuncios en esta web para ayudar a que siga adelante.
Muchísimas gracias.