Portada arrow Algoritmos arrow Frecuencia de las notas musicales
Frecuencia de las notas musicales
sábado, 07 de octubre de 2006
Índice del Artículo
Frecuencia de las notas musicales
Tabla de frecuencias
Si tienes que realizar una aplicación que trate con sonido y música, seguro que tarde o temprano tienes que trabajar con las notas musicales.

Un sonido no es más que una vibración del aire que nuestros oidos pueden captar. Un sonido que tiene un determinado tono, depende de la frecuencia a la cual vibra el aire. Las notas musicales son vibraciones de frecuencias determinadas. Por supuesto, en la creación de música intervienen muchos otros factores complejos, como por ejemplo, el timbre.

No obstante, una vibración sinusoidal a una frecuencia concreta, produce un sonido puro que nosotros percibimos como un pitido de un determinado tono.

En el sistema musical occidental, se ha acordado utilizar sólo unas frecuencias concretas, a las cuales llamamos notas.

Dividimos las posibles frecuencias en porciones que llamamos "octavas", y cada octava en 12 porciones que llamamos notas. Cada nota de una octava tiene exactamente la mitad de frecuencia que la misma nota en la octava superior.

El oido humano capta sólamente frecuencias que estén por encima de los 20Hz y por debajo de los 20.000 (muy aproximadamente). Así pues, y con mucha suerte, sólo podemos oir unas 10 octavas como mucho, con doce notas cada una.

La nota La sirve como referencia para todas las demás. A menudo se denomina "nota de afinar". Se produce un La de afinar cuando el aire vibra 440 veces por segundo, es decir a 440 hertzios. Por convención, a la octava que contiene esta nota La se le suele considerar la tercera.

Hay otra nota La, de una "octava" superior (la cuarta octava) cuando el aire vibra a 880 hertzios, y otra más cuando vibra a 880*2 (quinta octava), y otra a 880*2*2 (sexta octava), etc, del mismo modo que hay un La que se produce cuando el aire vibra a 440/2 (segunda octava) y otra a 440/2/2 (primera octava).

Para hallar la frecuencia de una nota cualquiera mediante una expresión matemática, se suele coger una frecuencia de referencia, por ejemplo el La de afinar (440 Hertzios) y se multiplica por la raiz duodécima de 2 elevado al número de semitonos que separa el la de afinar de la nota que estamos buscando.

Por ejemplo, si buscamos el Do de la cuarta octava, está separado 3 semitonos por encima del La. Su frecuencia la podemos calcular multiplicando 440 por la raiz duodécima de 2 elevado a 3. Si buscásemos el Fa de la tercera octava, está cuatro semitonos por debajo del La. Los semitonos hacia abajo los consideraremos negativos. Así pues, su frecuencia se obtiene multiplicando 440 por la raiz duodécima de 2 elevado a -4.

Con caracter general, una nota n (n=1 para Do, n=2 para Do#... n=12 para Si) de la octava o (o desde 1 hasta 8) tiene una frecuencia f(n,o) que podemos calcular de ésta manera:

Image

Esta expresión puede ser dificil de codificar en algunos lenguajes de programación, ya que es muy probable que no dispongan de funciones matemáticas para hallar una raíz duodécima. Adaptarla un poco es muy sencillo, ya que la raíz duodécima de 2 se puede calcular como 2 elevado a 1/12, con lo que la expresión quedaría de ésta manera:

Image

Aún así es posible que no podamos codificarla si no disponemos de una función que nos permita potencias de cualquier exponente. No obstante, tampoco supone problema. Todos los lenguajes que se precien disponen al menos de una función para hallar logaritmos (por ejemplo, naturales) y otra para hallar potencias de e (la base de los logaritmos naturales).

Una potencia cualquiera, por ejemplo xy puede ser calculada con potencias de e y logaritmos naturales (en realidad, podría hacerse con cualquier base).

Veamos.... Si tenemos una potencia k=xy podemos tomar logaritmos a ambos lados de la expresión y manipularla un poco...

ln(k)=ln(xy)

ln(k)=ln(x)y

ln(k)=y*ln(x)

eln(k)=ey*ln(x)

Así que podemos concluir que

k=ey*ln(x)

Utilizando esta expresión en nuestra fórmula de la frecuencia para quitarnos de enmedio la potencia, finalmente queda de ésta manera.

Image

Así pues, ya es muy sencillo obtener un pseudocódigo que dada una nota y una octava, nos devuelva la frecuencia.

frecuencia(nota,octava) := 440 * exp(  (octava-3)+ ((nota-10)/12) *ln(2) )
 

Donde "octava" es un entero entre 1 y 8, y "nota" es un entero en el rango de 1 a 12. Do=1, Do#=2, Re=3, Re#=4, Mi=5, Fa=6, Fa#=7, Sol=8, Sol#=9, La=10, La#=11, Si=12.

 

Esta expresión ya puede utilizarse prácticamente en cualquier lenguaje de programación con mínimas capacidades de cálculo matermático. Por ejemplo, en C#:

double frecuencia(double nota, double octava) {
  return (440.0 * Math.Exp(((octava-3)+(nota-10)/12)*Math.Log(2)));
  }
 

ImageEste pequeño programa te muestra las frecuencias de cualquier nota. Necesitas tener instalada la plataforma .net 2.0 External link

 

 

 

 

(Actualización 29/03/2007: Para saber más, muy recomendable el artículo titulado La física de la música External link, de Hal9000)

En la página siguiente puedes encontrar una tabla con las frecuencias de todas las notas.



 
←Artículo anterior   Artículo siguiente→

Categorías

Artículos relacionados

No se encontraron artículos relacionados

¿Quién está en línea?

 web tracker

Licencia Creative Commons Powered by Joomla! CMS Terminos de uso y formulario de contacto BloGalaxia

Suscríbete

RSS feed Sindicación RSS

(¿Qué es la sindicación RSS?)


Suscribir por e-mail

¿Dónde estoy?

Estás en La tecla de ESCAPE, un sitio web personal en el que nos gusta hablar de algoritmos, informática, tecnología, ciencia, ingeniería, internet... y cualquier tontería que se nos ocurra. El punto de vista de nuestros artículos técnicos suele ser muy básico, así que a menudo adoptamos grandes simplificaciones. (Más...-Términos de uso)