Si disponemos de un lenguaje de programación, que pueda actuar sobre algún dispositivo de sonido, o de cualquier cosa que pueda vibrar o producir sonidos a una frecuencia audible, sólo falta saber a que nota musical corresponde cierta frecuencia en la variación de presión del aire.
Los sonidos que se usan son los que corresponden a las notas musicales. A cada nota musical le corresponde una frecuencia. (Ver Características del Sonido)
Introducción al Tema
(Si quieres ver la fórmula para el cálculo sáltate esta parte)
Muy grosso modo la música posee, entre otras características importantes:
- Altura, las distintas notas que se representan en los espacios y líneas en el pentagrama
- Duración que se representa con las figuras, redonda, blanca, negra, corchea , etc.
- Timbre el tipo de sonido si es de un piano, un motor sonando o de una soprano cantando
Los sonidos usados por los músicos, las notas musicales, do re mi fa sol la si y sus respectivos bemoles y sostenidos, tienen frecuencias conocidas que se pueden calcular, y se pueden hacer en algún lenguaje de programación -como C, C++, Java, Matlab, Pascal, Basic, etc - para que suenen. La historia de las distintas escalas utilizadas -tipos de frecuencias y sus cálculos para las notas- es un poco larga y tiene que ver con criterios matemáticos (Véase acá), es muy interesante.
Brevemente, la historia empieza con Pitágoras, que inventó la escala que lleva su nombre, pero la parte que ahora interesa ver habla sobre el periodo barroco y Johann Sebastian Bach. Cuando se usaba la escala Pitagórica y uno quería cambiar de tono las canciones (frecuentemente pasa cuando a un cantante no le alcanza el registro), se producía una no correspondencia, es decir, no sonaba correctamente ( sonaba mal o en palabras simples, sonaba feo).
Y ahí es donde aparece la escala cromática, que el famoso J.S. Bach popularizó con su obra "El clave bien temperado" o "Das wohltemperierte Klavier" , el nombre lo dice, el instrumento clave estaba bien temperado, es decir, afinado con la escala cromática. ¿Cómo se populariza un estilo de afinación? Componiendo un preludio y una fuga en todos los tonos posibles, es decir un preludio y fuga en Do mayor y menor, en Do sostenido mayor y menor en Re mayor ... y así. Hasta hace poco había leído que Bach había inventado esta afinación, lo que no es cierto, pero esto no quita mérito a semejante obra.
"El clave bien temperado" se puede ver y escuchar en esta página, ahí explican hasta las partes. Es bastante interesante verlo y sobretodo escucharlo.
¿Como se construye la escala cromática?
La respuesta es "La distancia entre semitonos debe ser la misma". Eso desde el punto de vista musical. Porque esas palabras traducidas a la práctica son así :
Para armar la escala temperada necesitamos una frecuencia de una nota conocida, llamada de referencia, en nuestro caso y por norma ISO-16 el LA de la octava central del piano tiene 440 [Hz]. (Para afinar los músicos usan los diapasones). En tiempos de Bach cada cual elegía su frecuencia de referencia, lo que no causaba problemas si se toca solo un instrumento.
¿Cual es la relación entre frecuencias-notas en la escala cromática?
Fórmula para calcular la frecuencia de una nota.
Dada una frecuencia conocida, la que llamaremos fRef, la nota distante a i semitonos sobre la frecuencia de referencia fRef tendrá la frecuencia:La norma ISO 16:1975 dice que la frecuencia de referencia para el La de la octava central del piano es:
La norma agrega también que debe ser generado con una precisión de 0.5 [Hz].
Entonces, siguiendo la norma, la frecuencia del i-ésimo semitono a partir del La de la octava central del piano es:
Ejemplo
Calculemos la frecuencia del Do que sigue del La-440, el de la octava a la derecha de la octava central:- Veamos a que semitono corresponde. Para ello vemos en la figura y contamos:
- 0 La
- 1 La#
- 2 Si
- 3 Do
El Do corresponde al semitono 3 a partir del La. - Reemplazamos en la fórmula
La frecuencia del do es:
Hacemos música en Matlab
Como se tienen las notas, basta con darles duración para crear música, usando como guía la parte vista más abajo, Como hacer sonido, escribimos la siguiente sintaxis, creando primero con la forma vista arriba, las notas musicales, y luego creando sonidos.%==Frecuencia de Muestreo== fm=8120; % ==Elaboracion de las notas musicales== r=2^(1/12); % ==frecuencia de referencia LA== fr=440; % Tomamos la frecuencia del do para definir las octavas de mejor manera fr=r^-9*fr; c=r^0*fr*[1/4 1/2 1 2 4]; cs=r^1*fr*[1/4 1/2 1 2 4]; d=r^2*fr*[1/4 1/2 1 2 4]; ds=r^3*fr*[1/4 1/2 1 2 4]; e=r^4*fr*[1/4 1/2 1 2 4]; f=r^5*fr*[1/4 1/2 1 2 4]; fs=r^6*fr*[1/4 1/2 1 2 4]; g=r^7*fr*[1/4 1/2 1 2 4]; gs=r^8*fr*[1/4 1/2 1 2 4]; a=r^9*fr*[1/4 1/2 1 2 4]; as=r^10*fr*[1/4 1/2 1 2 4]; b=r^11*fr*[1/4 1/2 1 2 4]; %El Silencio, su frecuencia es cero s=0; %==Parte para Duracion== % Definimos la duracion en segundos de la negra. % tomada como 1 tiempo n=.5; %Hacemos un vector N = [ nota , duracion ] NOTAS=[g(3),e(3),s,e(3),f(3),g(3),e(4),e(4),c(4)]; DURACION=[n/2,n/2,3*n/2,n/2,n/2,n/2,n,n,2*n]; N=[NOTAS',DURACION']; y=[]; %==Armamos la señal== for i=1:length(N) fr=N(i,1); t=N(i,2); x=(0:(1/fm):t); y=[y sin(fr*2*pi.*x)]; end % Hacemos el sonido % en este comando % esta toda la magia sound(y)
Puse en los vectores
NOTAS
y DURACION
la canción de la película "The Bridge on the River Kwai" , la marcha del coronel Bogey.
El método para ingresar notas se puede mejorar y también se pueden añadir armónicos a la onda. Por ejemplo to hice un método para que introducir 3 instrumentos, percusión a través de notas parecidas al celular NOKIA
El programa está acá
Francisco Roco