PHP-Hispano.net Comunidad hispana de desarrollo web

Contacto | #php_para_torpes | Enlázanos | ¿Quiénes somos?

10 usuarios Online (0)

Darse de alta en la web | Recuperar password   
Inicio / Desafíos PPT / Tócala otra vez Sam / Instrucciones

Desafío -Tócala otra vez Sam

Instrucciones

Dificultad Alta Inicio: 17 dic 03 Fin: 24 mar 05 1 soluciones

Este desafío trata de diseñar un piano, generando las notas al vuelo mediante PHP. Para simular los sonidos, generaremos tonos puros.

Un tono puro es una sinusoide de una determinada frecuencia; a mayor frecuencia más agudo será el sonido:

tono_puro=A*sen(2*PI*frecuencia*t)


donde A es la amplitud (volumen o intensidad sonora) y t es el tiempo.

Presentaremos un teclado con las notas correspondientes a una escala.
Do(4)=261Hz, Re(4)=293Hz, Mi(4)=329Hz, Fa(4)=349Hz, Sol(4)=391Hz,
La(4)=440Hz, Si(4)=493Hz, Do(5)=523Hz

Cuando se pulse una de ellas generaremos el tono puro de la frecuencia especificada, escribiremos(*1) y haremos sonar un fichero .wav de las siguientes características:


- PCM (cuantificación lineal, sin compresión)
- Mono
- 8 bits por muestra
- 11025 Hz frecuencia de muestreo



Para ello necesitaremos tomar muestras de la sinusoide calculada, una muestra cada 1/11025 segundos. La longitud de la nota podrá ser variada desde 0.4 segundos hasta 2 segundos. (Más tiempo afectaría considerable mente al rendimiento del script).

(*1) no es necesario guardar el fichero .wav resultante

Foro asociado al desafío... http://www.php-hispano.net/foros/Desafios/2791

php-hispano.net 2002 - 2013 | XHTML 1.0
Datos Legales | Webmaster