Documente Academic
Documente Profesional
Documente Cultură
En la Especialidad de
Acústica
ii
RESUMEN
Una composición musical, comprende la escritura de sı́mbolos (pentagrama, notas,
compases, sostenidos, etc.) a través de reglas (armonı́a, melodı́a, ritmo, estilos, etc.)
con el fin de producir sonidos agradables o no al oı́do humano. El compositor requiere
en la mayorı́a de los casos conocimientos de teorı́a musical para crear su obra y se en-
frenta con algunas dificultades entre las cuales están que al ir escribiendo su música
necesita ir haciendo operaciones aritméticas (sumas y restas) para saber que notas va
a tocar un instrumento y que notas va a tocar el otro, y ası́ con cada uno de ellos,
lo cual le resta tiempo. Otra situación que tiene que resolver es que para escuchar su
creación necesita de recursos humanos y materiales, como músicos, instrumentos, un
espacio cerrado, capital financiero, etc.
Esta tesis presenta un Sistema Generador de Acordes Musicales (MCG) que
permite generar un conjunto de voces musicales a partir de una lı́nea melódica, (1a
voz) o una canción; con ello se pretende resolver parte del problema de la composi-
ción musical, cómo el tiempo y la inversión económica. Se están utilizando sistemas
digitales para la generación automática ya que son ideales para éste tipo de opera-
ciones aritméticas. Se utiliza la tarjeta de sonido de una PC y en especial el puerto
MIDI (Musical Instrument Digital Interface) del mismo ordenador, para realizar las
pruebas requeridas. Por otra parte con este sistema se tiene el propósito de acercar
al compositor a la tecnologı́a, ya que le serı́a bastante útil.
Se obtuvieron algunos resultados concretos que son los siguientes: se progra-
maron en lenguaje C una serie de funciones para la transportación de cada una de
las voces y también un interprete sencillo, que sirve como un procesador de palabras,
solo que en este caso es un procesador musical, si se introduce la palabra do, el in-
terprete produce el sonido do; además de una serie de pantallas que muestran una
melodı́a y la generación de la 1a , 2a , 3a , 4a y 5a voz.
iii
Marı́a Castillo Dı́az,
Dios:
Gracias.
iv
Agradecimientos
Agradezco a mi director de tesis, Dr. Maximino Peña Guerrero la oportunidad, ase-
sorı́a y paciencia en el desarrollo de este proyecto. También agradezco al Ing. José de
Jesús Negrete Redondo, codirector de esta tesis, por sus ideas y aportaciones, que
mejoraron significativamente el contenido de este trabajo.
Ası́ mismo agradezco a la Academia de Acústica, por las facilidades prestadas
en el desarrollo de este proyecto y por la formación previa al mismo. Agradezco tam-
bién a mis profesores de la ESIME y a todos los que colaboraron en mi formación
académica, incluyendo los que me enseñaron las bases del arte musical.
Gracias también a mis entrañables amigos, por sus palabras motivantes, para
seguir adelante no solo con este proyecto sino con la vida misma. También quiero
agradecer a todas las personas que me brindaron su cariño y su atención desinteresa-
da cuando mi salud era menos buena.
En especial agradezco a Norma Ledesma Ruı́z, por enseñarme a descubrir la
maravilla que existe dentro de los humanos llamada Mente y las consecuencias que
pueden ocurrir si esta no se controla.
De la misma forma doy gracias a mis padres por darme la oportunidad de venir
a este mundo y enseñarme que la única forma de conseguir algo, es esforzandoze por
ello. Además de mostrarme que el camino más rápido a la felicidad es darse uno mis-
mo a los demás, sin esperar nada a cambio.
Finalmente doy gracias a José Daniel Páez Castillo, por estar ahı́ siempre, a pe-
sar de todo, además del cariño y las palabras de aliento, para seguir adelante escri-
biendo más capı́tulos en el libro de la vida.
Mario Alberto Páez Castillo.
v
... No hay tarea, grande o
pequeña que no se pueda ter-
minar si te lo propones. Re-
cuerda siempre que eres tan
fuerte como tú lo permitas...
vi
Índice general
3. Implementación y diseño 41
3.1. Compilador KL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
3.2. Comandos MIDI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
3.3. Tarjeta de Sonido de una PC . . . . . . . . . . . . . . . . . . . . . . 43
3.4. Algoritmos del MCG . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
4. Pruebas y Resultados 51
4.1. Desarrollo de Partituras en Tex . . . . . . . . . . . . . . . . . . . . . 51
4.2. Escala Mayor y Escala Menor . . . . . . . . . . . . . . . . . . . . . . 52
4.3. Ejemplo de un Programa con KL . . . . . . . . . . . . . . . . . . . . 52
4.4. Tipos de Acordes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54
4.5. Estudio Económico . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
1
4.6. Limitaciones y trabajos futuros . . . . . . . . . . . . . . . . . . . . . 57
2
Índice de figuras
3
2.28. Familia de acordes de C7sus4 . . . . . . . . . . . . . . . . . . . . . . 30
2.29. Familia de acordes de C9 . . . . . . . . . . . . . . . . . . . . . . . . . 31
2.30. Familia de acordes de C9 . . . . . . . . . . . . . . . . . . . . . . . . . 31
2.31. Familia de Acordes de Cm9 . . . . . . . . . . . . . . . . . . . . . . . 31
2.32. Familia de acordes de Cm9 . . . . . . . . . . . . . . . . . . . . . . . . 32
2.33. Familia de acordes de C9+5 . . . . . . . . . . . . . . . . . . . . . . . 32
2.34. Familia de Acordes de C9+5 . . . . . . . . . . . . . . . . . . . . . . . 33
2.35. Familia de Acordes de C9b5 . . . . . . . . . . . . . . . . . . . . . . . 33
2.36. Familia de Acordes de C9+5 . . . . . . . . . . . . . . . . . . . . . . . 33
2.37. Familia de acordes de Cmaj9 . . . . . . . . . . . . . . . . . . . . . . . 33
2.38. Familia de acordes de Cmaj9 . . . . . . . . . . . . . . . . . . . . . . . 34
2.39. Familia de acordes de C11 . . . . . . . . . . . . . . . . . . . . . . . . 34
2.40. Familia de acordes de C11 . . . . . . . . . . . . . . . . . . . . . . . . 35
2.41. Familia de acordes de C11b9 . . . . . . . . . . . . . . . . . . . . . . . 35
2.42. Familia de acordes de C11b9 . . . . . . . . . . . . . . . . . . . . . . . 35
2.43. Familia de acordes de C11+ . . . . . . . . . . . . . . . . . . . . . . . 36
2.44. Familia de acordes de C11+ . . . . . . . . . . . . . . . . . . . . . . . 36
2.45. Familia de acordes de C13 . . . . . . . . . . . . . . . . . . . . . . . . 37
2.46. Familia de acordes de C13 . . . . . . . . . . . . . . . . . . . . . . . . 37
2.47. Familia de acordes de C13b9 . . . . . . . . . . . . . . . . . . . . . . . 38
2.48. Familia de acordes de C13b9 . . . . . . . . . . . . . . . . . . . . . . . 38
2.49. Familia de acordes de C7/6 . . . . . . . . . . . . . . . . . . . . . . . 38
2.50. Familia de acordes de C7/6 . . . . . . . . . . . . . . . . . . . . . . . 39
2.51. Familia de acordes de C9/6 . . . . . . . . . . . . . . . . . . . . . . . 39
2.52. Familia de acordes de C9/6 . . . . . . . . . . . . . . . . . . . . . . . 40
4
Índice de tablas
5
4.2. Costos para implementar el proyecto de forma comercial . . . . . . . 57
6
Introducción
7
Tabla 1: Duración de las notas
guitarra.
Ahora hablaremos un poco del lenguaje natural de la música, el solfeo. Primero
trataremos elementos importantes en el conocimiento del mismo, empezaremos di-
ciendo que un pentagrama es un conjunto de cinco lı́neas separadas por cuatro espa-
cios equidistantes, en ellas se escriben los simbolos musicales, que finalmente forman
un guión o pieza musical.
Existen muchos sı́mbolos en la música, entre los cuales se encuentran las notas,
los silencios, las alteraciones, los compases, las claves, entre otros.
Sabemos que una nota musical sirve para representar los sonidos de cualquier
obra, actualmente son siete, las notas fundamentales: “Do Re Mi Fa Sol La Si”y cin-
co alteraciones Do ] Re ] Fa ] Sol ] La ] o bien Re [ Mi [ SOl [ La [ Si [. El ] signifi-
ca sostenido y la [ significa bemol, pero más adelante se daran detalles.
Otra caracterı́stica de las notas es la duración, que es medida en segundos (Tabla
1), y es controlada por el compás.
Sin embargo las notas no tendrı́an nombre sobre el pentagrama sino fuera por
otro sı́mbolo más llamado clave. Las claves que existen son las siguientes: Clave de
Do. Clave de sol. Clave de Fa.
Al componer la obra es necesario saber para qué instrumentos va a ser creada,
con el fin de acomodar la voz de cada instrumento en el lugar adecuado. Esto impli-
8
ca, que para cada voz, el guión musical va a ser distinto y en consecuencia las ope-
raciones aritméticas que realizará el compositor aumentaran en forma considerable,
volviendose algo tedioso a la hora de escribir su música sobre el pentagrama; opera-
ciones que una computadora digital puede realizar de forma eficiente, y no solo eso,
también puede ser útil al interpretar automáticamente su creación musical.
Con este fin el Music Chords Generator (M. C. G), utiliza sistemas digitales
para su implementación, como el puerto MIDI, la tarjeta de sonido y por supuesto la
Unidad Central de Proceso (CPU).
El protocolo de comunicaciones entre instrumentos musicales(MIDI) nos per-
mite, generar sonidos de diferentes instrumentos musicales, mediante la comunicación
entre sintetizadores, secuenciadores, controladores y computadoras.
A lo largo de la tesis se muestran los elementos básicos de la teorı́a musical, que
sirven como sustento del MCG, al explicar en ellos, conceptos como notación musi-
cal, melodı́a, armonı́a, ritmo, etc.
Por otra parte también se detallan los elementos del interpre musical, los algo-
ritmos de transposición, que forman parte del MCG.
En el capı́tulo uno se presenta un panorama general de los elementos teóricos y
prácticos necesarios para el desarrollo de nuestro trabajo, como son: conceptos, citas,
historia, entre otros. En el capı́tulo dos se presentan los acordes musicales y su repre-
sentación en forma MIDI. En el tercer capı́tulo se presenta la programación de los al-
goritmos de generación y composición musical, además del diseño del Music Chords
Generator. En el capitulo cuatro presentaremos los resultados que se obtuvieron.
9
Capı́tulo 1
10
melodı́a.
El compositor va anotando varias ideas musicales y empieza a definir el sentido
expresivo que tendra su obra, puede que sea un tema triste o alegre, tranquilo o in-
tempestivo, entre otros.
Posteriormente ya que tiene la idea musical y el sentido expresivo, elige los ins-
trumentos que utilizará para dicha obra. Muchas veces aun cuando la obra musical ya
esta un poco avanzada los instrumentos no estan bien definidos, aunque finalmente
se tendran que elegir los instrumentos de acuerdo a la lı́nea melódica y al sentido ex-
presivo de la obra.
1.1.2. Melodı́a
La melodı́a es la parte de la música que más llama la atención de una pieza mu-
sical, y es una serie de sonidos de diferentes frecuencias y de duraciones distintas, que
se dan en un tiempo determinado. Estos sonidos son las notas musicales, sus nombres
se deben al monje Benedictino Guido d’ Arezo, inspirado en un himno a San Juan,
escrito en latin como los textos eclesiasticos de ese tiempo.
Ut queant laxis REsonare fibris MIra gestorum FAmuli tuorum SOLve polluti
LAbii Reatun Sancte Joannes que en español significa: “Para que tus siervos puedan
cantar libremente las maravillas de tus actos, elimina toda mancha de culpa de sus
sucios labios, oh San Juan”.
Al darle nombre a las notas ya era más facil recordarlas, porque eran solo 7; sin
embargo para crear una melodı́a son necesarias más de 7 notas, entonces lo que se hace
es repetir estas mismas notas dependiendo si el sonido buscado es más grave o más
agudo, alcanzando ası́ 60 sonidos diferentes, que abarcan una frecuencia de los 20Hz a
los 20kHz, que es precisamente la respuesta en frecuencia del oı́do de un ser humano.
Para poder diferenciar estos 60 sonidos mediante 7 notas musicales, se agregó un
subindice a cada una de las notas. Por ejemplo al Do central del piano, lo llamamos
Do3 y un Do anterior Do2 y a un Do posterior Do4 . Entre cada uno de estos Do, exis-
11
te una distancia que en música se llama intervalo, y este intervalo en especial es la
Octava. Por supuesto hay otros intervalos entre cada una de las notas, por ejemplo
para saber el intervalo que existe entre Re y Fa, se cuentan las siguientes notas Re
Mi Fa, en total son tres notas, por lo tanto, el intervalo es de 3a .
Además de estos conceptos utilizados en la creación musical, vamos ahora a
hablar de otro concepto importante que es La Escala Diatónica, en ella se encuentran
agrupadas las siete notas musicales ordenadas en forma ascendente o descendente. A
partir de ella se determina la técnica para tocar un instrumento. La Escala diatónica
se da en dos formas una Mayor y la otra Menor.
Se puede decir que la escala mayor contiene ocho notas en forma ascendente y
se divide en dos tetracordes, que estan unidos por un tono. En otras palabras para
formar una escala diatónica, se sigue una regla, a partir de un tono raı́z: (Tono T)
(Semitono St)
T T St T T T St
Do Re Mi Fa Sol La Si Do
A su vez esta tiene siete grados más la repetición del primero, que se represen-
tan con números romanos, además se les asignan los siguientes nombres.
I. Tónica. II. Supertónica o sobretónica. III. Mediante o 1a modal. IV. Subdo-
minante. V. Dominante. VI. Superdominante o sobredominante o 2a modal. VII. Sen-
sible.
Otra escala de igual importancia, es la escala cromática en la cual se encuentran
incluidas las alteraciones de las notas como los sostenidos y los bemoles, en resumen
son 12 notas. ¿ Y por qué crear alteraciones ? Fue necesario crear alteraciones, porque
en el sistema musical ya existı́an semitonos como el de Mi y Fa o el de Si y Do. Pro-
piamente un sostenido altera a la nota raı́z un semitono (medio tono) hacia arriba,
por ejemplo con la nota Sol, si le agregamos este signo ], tenemos entonces sol ] . Con
el bemol en cambio alteramos la nota medio tono hacia abajo, por ejemplo si tenemos
un La y le agregamos una “[”, nos queda La[. En la Figura ?? se muestra la escala
12
# 4# # #
G # 4# # # 4# # 4#
# 4#
# # 2# # 2#
G # 2# # # 2# # 2# #
1.1.3. Armonı́a
13
el siglo XIX, Hermann Von Helmholtz, con su teorı́a de la afinidad sonora, concluyó,
que dos sonidos son más consonantes mientras más armónicos compartan.
Se define el concepto de armonı́a como la unión y combinación de sonidos si-
multaneos y diferentes, los cuales siguen una lı́nea melódica. Aunque la armonı́a tal
y como la conocemos ahora, tuvo una evolución importante desde su nacimiento en
la edad media, por medio del organum, que era un sistema de melodı́a paralela, en el
cual se tocaban dos notas, la voz principal y otra nota, a una 5a o 4a inferior, dan-
do lugar a una segunda voz. En esta misma época tuvo lugar el motete, que es una
serie de notas que se tocan sobre un solo sonido de fondo. Posteriormente en el re-
nacimiento, el italiano Giovanni Pierlugi da Palestrina, crea una Misa a 6 voces, em-
pleando la polifonı́a de forma ejemplar y demostrando al papa Marcello II, que esta
forma de componer era más original y bella.
Conforme el tiempo pasó, se crearón formas especiales de armonı́a como el con-
trapunto que es una técnica de composición donde las distintas voces de una obra
polifónica mantienen su independencia y tienen la misma importancia melódica. Por
tanto, en la armonı́a se toman en cuenta tanto los sonidos que anteceden a una no-
ta, como los que van después de ella, además de ver las notas que hay por encima o
por debajo de la nota en cuestión. Más adelante, en 1722, Rameau en su Tratado de
Armonı́a muestra la creación de los Acordes, menciona que el acorde básico es llama-
do triada, o acorde de 5a , ya que parte de una nota raı́z, más otra nota a una 3a su-
perior y otra a una 5a superior, que en total son tres notas. Posteriormente se inte-
gró a la musica el acorde de 7a , que resulta de añadir una cuarta nota a la triada, a
una 7a de distancia de la nota raı́z. Más adelante se formaron los acordes de 9a , 11a y
13a , aunque no entraron muy bien en la música clásica por su disonancia, sin embar-
go son utilizados normalmente en el Jazz. En la construcción de todos estos acordes
la distancia que hay entre una nota y otra es de una tercera.
Para poder combinar los diferentes tipos de acordes, se utilizan una serie de
Normas de Progresión Armónica, en este caso aplicadas a un coro de cuatro voces,
14
que entre el soprano y el contralto, o entre el soprano y el tenor, se permiten inter-
valos armónicos máximos de una octava y entre el tenor y el bajo se permite, como
máximo un intervalo de 15a o de 2 octavas. A su vez, esta combinación de acordes
genera Movimientos Armónicos, como son: el movimiento directo, cuando ambas vo-
ces siguen la misma dirección melódica, el movimiento oblicuo, cuando una nota per-
manece y la otra asciende o desciende y el movimiento contrario, cuando ambas no-
tas o voces toman direcciones opuestas ya sea para acercarse o para alejarse.
1.1.4. Ritmo
15
1.2. Música Digital
1.2.2. MIDI
16
1.3. Resumen
Se han presentado los conceptos musicales que utilizamos para componer una
pieza musical, como la inspiración, la melodı́a, el ritmo y la armonı́a. Además de
profundizar un poco en el origen de las notas, los intervalos, las escalas diatónica y
cromática, los sostenidos y los bemoles. Tambien se mencionaron conceptos como la
consonancia y la disonancia, además de la armonı́a, entre otros. En cuanto al ritmo,
vimos que era un pulso y algunos indicadores de movimiento. Respecto a la musica
digital, se presentaron los sistemas Cac y su evolución en el proceso de composición
musical.
17
Capı́tulo 2
18
.
Ahora bien, una octava MIDI se compone de las 12 notas de la escala cromática,
que a su vez se asocian con una sección del teclado de un sintetizador. A su vez el
teclado de un sintetizador tiene n cantidad de octavas. Tenemos tambien al tono MI-
DI como al elemento Xij de la matriz X. Fı́sicamente esta representado por cada una
de las teclas de un sintetizador MIDI, a su vez, estos tonos se agrupan en la matriz
X, mediante notas y octavas, donde las columnas son las notas y las filas son las oc-
tavas, esta agrupación permite al sistema MIDI transmitir y recibir notas, sin impor-
tar su octava. Para obtener el tono MIDI aplicamos el teorema del residuo, obtenien-
do la siguiente expresión:
n = j(12) + i. (2.3)
Vamos a definir ahora una escala MIDI en forma diatónica y en forma cromática.
La escala diatónica es un conjunto con los siguientes elementos n, n + 2, n + 4, ...,
n + 12, donde n, es el tono o la nota raı́z, que es donde comienza la escala. Por otra
parte, tenemos a la escala cromática que es un conjunto donde los elementos son tonos
consecutivos n, n+1, n+2, n+3, ..., n+12.
Un vector horizontal es el conjunto de notas musicales que son parte de la
melodı́a en una pieza musical. Por ejemplo si la melodı́a tiene notas como G5, G5,
C5, B4, C5, D5, el vector quedarı́a como: Vv= G5, G5, C5, B4, C5, D5 y los corres-
pondientes tonos MIDI como: Vh= 55,55,60,59,60,62
Un vector vertical es el conjunto de acordes o voces musicales, que son parte de
la armonı́a en una pieza musical. La forma de este vector va a depender de la voz o
el acorde que estemos utilizando. Ejemplo:
Vv= C5, E5, G5 acorde mayor
19
2 3
! !!
G !!! !! !
Tono de Do Mayor
No. Inversión Fórmula o Vector Tono MIDI
Posición Raı́z n, n+4, n+7 36, 40, 43
1a n, n+3, n+8 40, 43, 48
2a n, n+5, n+9 43, 48, 52
Un acorde se forma con dos o mas notas, vamos ahora a definir los tipos de
acordes más comunes, para poder utilizarlos en el M. C. G.. En los siguientes acordes
todos parten de una nota raı́z que definiremos como n y a partir de ella construi-
remos el resto del acorde. Además se muestra un pentagrama indicando las notas
pertenecientes a cada acorde, ası́ como la 1a, 2a y 3a inversión respectivamente. Se
representa también, mediante figuras de piano la posición de las notas de dicho acorde.
Mostramos una tabla en cada acorde con sus caracterı́sticas como su fórmula o vector
MIDI y sus tonos MIDI, en forma hexadecimal. Cabe mencionar que en los acordes
que se forman por cinco notas o más, en las figuras de piano, solo se muestran cua-
tro notas, ya que la nota raı́z es tomada en cuenta como bajo del acorde y las 4 ulti-
mas notas como el acorde en si mismo.
1. C Acorde de Do mayor. En la Figura 2.1 se muestra el acorde de Do ma-
yor en su forma tradicional, también tenemos en la Tabla 2.1 la forma canónica del
acorde y finalmente en la Figura 2.2 el mapa en el teclado de Do mayor.
2. Cm Acorde de Do menor. En la Figura 2.3 se muestra el acorde de Do
menor en su forma tradicional, también tenemos en la Tabla 2.2 la forma canónica
20
Posición Raíz Primera Inversión Segunda Inversión
3 2
! x!!
! x!
G x! ! !
!
Tono de Do Menor
No. Inversión Fórmula o Vector Tono MIDI
Posición Raı́z n, n+3, n+7 36, 39, 43
1a n, n+4, n+9 39, 43, 48
2a n, n+5, n+9 43, 48, 52
21
Posición Raíz Primera Inversión Segunda Inversión
2 3 4!
!! !! !!
! !! !!
G !!! !!
Tono de Do Sexta
No. Inversión Fórmula o Vector Tono MIDI
Posición Raı́z n, n+4, n+7, n+9 36, 40, 43, 45
1a n, n+3, n+5, n+8 40, 43, 45, 48
2a n, n+2, n+5, n+9 43, 45, 48, 52
3a n, n+3, n+6, n+10 45, 48, 52, 55
22
Tabla 2.4: Forma canónica de la famila de acordes de Cm6
2 3 4!
x! x! ! x!
! x!
x! !
x!
!
G x! x! ! !
!
!
Tono de Do Septima
No. Inversión Fórmula o Vector Tono MIDI
Posición Raı́z n, n+4, n+7, n+10 36, 40, 43, 46
1a n, n+3, n+6, n+8 40, 43, 46, 48
2a n, n+3, n+5, n+9 43, 46, 48, 52
3a n, n+2, n+6, n+9 46, 48, 52, 55
23
2 3 4!
x! ! x!
x! ! x!
x! !
!
G x! !
x! ! x!
!
!
24
2 3 4x!
!! !! x!
!! x!
!
G x!
x! x!
x!! x!! !!
!
Tono de Do disminuido
No. Inversión Fórmula o Vector Tono MIDI
Posición Raı́z n, n+3, n+6, n+9 36, 39, 42, 45
1a n, n+3, n+6, n+9 39, 42, 45, 48
2a n, n+3, n+6, n+9 42, 45, 48, 51
3a n, n+3, n+6, n+9 45, 48, 51, 54
2 3
! x!!
G z!!!! z!!! z!!
Tono de Do aumentado
No. Inversión Fórmula o Vector Tono MIDI
Posición Raı́z n, n+4, n+8 36, 40, 44
1a n, n+4, n+8 40, 44, 48
2a n, n+4, n+8 44, 48, 52
25
Posición Raíz Primera Inversión Segunda Inversión
2 3 4 z!
! x!!! !!
x! x! ! x!
G z!
!!
!
z!
!! z! !
26
Posición Raíz Primera Inversión Segunda Inversión Tercera Inversión
2 3 4x!
!! !!
! x!
x! x! x!
G !! ! ! !
x!
! x!
! x!
2 3 ! 4x!
!!
x! ! x!
x! ! x!
x! x! x!
G !!! ! ! !
27
Tabla 2.11: Forma canónica de la familia de acordes de C7b9
2 3 4!
!! !! !!
! !! !!
G !!! !!
28
Posición Raíz Primera Inversión Segunda Inversión Tercera Inversión
2 3 4x!
! x!
! x!
!
x! x! x! x!
!
G x!
x!
!
x!
!
x! x!
! !
29
2 3! 4!!
! x!
x!! ! x! !
! x!
G ! ! !
! ! !
30
2 3 ! 4x!
! !! !! !!!
x! x!!! x!
! x!
G !!! !
Tono de Do novena
No. Inversión Fórmula o Vector Tono MIDI
Posición Raı́z n, n+3 n+6, n+10 40, 43, 46, 50
1a n, n+3, n+7, n+9 43, 46, 50, 52
2a n, n+4, n+6, n+9 46, 50, 52, 55
3a n, n+2, n+5, n+8 50, 52, 55, 58
2 3 ! 4x!
!
! x!
! x!
! x!
!
x!
! x!
! x!
! !
G x!
!
31
Posición Raíz Primera Inversión Segunda Inversión Tercera Inversión
2 3 z! 4x!
! !! !! z!
!!
x!
z!
! x!
z!! x!
! !
G !!
32
Posición Raíz Primera Inversión Segunda Inversión Tercera Inversión
2 3x! 4x!
! !! !! x!
!!
x!
!
x! x!
x!! x!
! !
G !!
2 3! 4! !
!! !!! !!! !!
G !!! ! ! !
33
Tabla 2.19: Forma canónica de la familia de acordes de Cmaj9
x! x!!
!! 2 !!! 3 !!! 4 !!
x! x!
G !!! ! ! !
34
Tabla 2.20: Forma canónica de la familia de acordes de C11
Tono de Do oncena
No. Inversión Fórmula o Vector Tono MIDI
Posición Raı́z n, n+3, n+7, n+10 43, 46, 50, 53
1a n, n+4, n+7, n+9 46, 50, 53, 55
2a n, n+3, n+5, n+8 50, 53, 55, 58
3a n, n+2, n+5, n+9 53, 55, 58, 62
! !! !!!
! 2! 3! 4!
x!
x! x!
x! x! x!
G !!! !! x!! x!!
35
! !! !!!
z! 2 z! 3 z! 4 z!
x!! x!! x! ! !
G !!! !! ! x! !
36
! !! !!!
!! 2!!! 3 !!! 4 !!!
x! ! x!
G !!! !! x! ! x!!
Tono de Do trecena
No. Inversión Fórmula o Vector Tono MIDI
Posición Raı́z n, n+4, n+7, n+11 46, 50, 53, 57
1a n, n+3, n+7, n+8 50, 53, 57, 58
2a n, n+4, n+5, n+9 53, 57, 58, 62
3a n, n+1, n+5, n+8 57, 58, 62, 65
37
! !! !!!
!! 2!! 3x!!! 4 !!
x!
x! x!
x! x!
G !!! !! x! ! x!!
2 3 4!
!! x!!! !!
x!! x!!! !! x!!!
G !!!
38
Posición Raíz Primera Inversión Segunda Inversión Tercera Inversión
! !! !!!
2 3 4
! ! ! !
! ! ! !
G !!! !! ! !
2.2. Resumen
39
Posición Raíz Primera Inversión Segunda Inversión Tercera Inversión
40
Capı́tulo 3
Implementación y diseño
En este capı́tulo se presentan los algoritmos fundamentales para el MCG, ası́ co-
mo la forma en que la interfaz digital para instrumentos digitales MIDI, envı́a la in-
formación a la tarjeta de sonido. También se describe en forma breve, el funciona-
miento del compilador KL que sirve para el procesamiento de musica digital.
3.1. Compilador KL
41
el objeto de emplearlas en el análisis de estructuras musicales, como son los acordes,
armonı́a, acompañamiento y otras herramientas de apoyo a la composición musical.
En la Figura 3.1 se muestra un diagrama general de KL y la aportación de este proyec-
to al mismo.
Para poder enviar sonidos MIDI a través de la PC, se utilizan varios comandos,
por ejemplo, el comando NOTE ON sirve para activar una nota, esta compuesto por
tres bytes. 1 byte del código del evento (9xH), que contiene el número de canal MI-
DI en los cuatro bits menos significativos. 1 byte del número de la nota (0 a 127), en
el se encuentra el tono de la nota. 1 byte del valor dinámico(0 a 127), que represen-
ta el volumen o el ataque hacia el instrumento.
42
Tenemos también el comando NOTE OFF que funciona para desactivar la no-
ta que se encuentra activa. De la misma forma que NOTE ON, se compone de tres
bytes. 1 byte del código del evento (8xH), donde se encuentra el número de canal en
el nibble bajo. 1 byte del número de la nota (0 a 127), que indica el número de la no-
ta que se apagará. 1 byte del valor dinámico (0 a 127), que indica la forma como la
nota va a terminar.
Otros comandos importantes son: midioutshortmessage() para enviar un men-
saje corto a través de la tarjeta de sonido y midioutlongmessage(), para enviar un
mensaje largo a través de la tarjeta de sonido.
43
M Sistema WAV A
A/D D/A
Driver WAV
BUS BUS
Driver MIDI
MidiIn MidiOut
Sistema MIDI
Figura 3.2: Diagrama básico de una tarjeta de Sonido.
#include <windows.h>
#include <mmsystem.h>
#include <stdio.h>
int emayorarriba(int);
int main(void)
{
int i;
int x=0;
int n=48;
for(i=0;i<8;i++)
{
knoton(n); // tocar n
Sleep(600); // esperar
knotof(n); // apagar n
n=n+emayorarriba(x++); // siguiente tono
}
44
kclose(); // cerrar midi
return(0);
}
int emayorarriba(int x)
{
return((x%7==0||x%7==1||x%7==3||x%7==4||x%7==5)?2:1);
}
knoton(). Esta función sirve para encender una nota en un dispositivo MIDI, la
rutina en lenguaje C, se muestra a continuación. En ella se encuentra la función mid-
ioutshortmsg(), que se encarga de enviar mensajes MIDI al dispositivo de salida; si la
función se realizo con éxito regresa un cero. Para funcionar, necesita de dos parame-
tros, uno de ellos es el manejador (handle) del dispositivo y el otro parámetro es el
mensaje que necesitamos enviar. Para enviar este mensaje, se utiliza una unión que
envı́a en el byte menos significativo la activación de la nota. En el segundo byte en-
viamos la nota que se va a tocar. En el tercer byte enviamos el volumén de la nota.
45
El cuarto byte no lo utilizamos y enviamos un cero. También encontramos la función
midioutclose(), que sirve para cerrar el dispositivo de salida.
knotof(). Esta función sirve para apagar una nota, a continuación se muestra
la rutina en lenguaje C. Es muy parecida a la función anterior solo que en el primer
byte de la estructura se apaga la nota, en el segundo byte se envı́a la nota, en el ter-
cer byte el volumén que es cero y el cuarto byte no se utiliza. Si existe un error en
la función midioutshortmsg() regresa un 1 y muestra en pantalla el mensaje de error.
También tenemos la función midioutclose(), que cierra el dispositivo de salida.
46
forma ascendente. Es importante mencionar que el modulo en este caso es diferente al
que se utiliza la escala mayor por la forma en que están compuestas cada una de ellas.
#include <windows.h>
#include <mmsystem.h>
#include <stdio.h>
int main(void)
{
int i;
int x=0;
int n=45;
for(i=0;i<8;i++)
{
knoton(n); // tocar n
Sleep(600); // esperar
knotof(n); // apagar n
n=n+emenorarriba(x++); // siguiente tono
}
kclose(); // cerrar midi
return(0);
}
int emenorarriba(int x)
{
return((x%7==0||x%7==2||x%7==3||x%7==5||x%7==6)?2:1);
}
Tenemos otro programa que interpreta las notas que son introducidas por el
teclado de la PC. Utiliza las funciones para manejo de datos MIDI, mencionadas an-
teriormente. El programa primero abre el dispositivo MIDI mediante la función mid-
ioutopen(), despues entra en un ciclo for infinito, donde analiza la cadena introduci-
da por el teclado, utilizando la función strtok(), que obtiene los caracteres, quitando
espacios en blanco. Una vez hecho esto, se manda a llamar la función, tocarnota(),
donde se envı́a la nota a tocar utilizando las funciones knoton() para encender la no-
ta y knotof(), para apagar la nota tocada.
/*
===============================================
NAME:
ktk2.c -imrimir y tocar tokens.
COMPIL:
47
cl ktk2.c winmm.lib
gcc ktk.c -lwinmm
USAGE
ktk2
>>do re mi
[do][re][mi] ---- se escuchan las notas
>>
DATE:
March 10, 2006
AUTOR
Dr. Max Pe~na-Guerrero
===============================================
*/
#include <windows.h>
#include <mmsystem.h>
#include <stdio.h>
# include <string.h>
HMIDIOUT handle;
unsigned long error;
int main(void)
{
char *token;
printf("KTK2: Play Notes. (c) Dr. Max P.G., march 9 2006.\n");
printf("Press [quit] for quit.\n");
for(;;)
{
printf(">>");
gets(string);
token=strtok(string," ");
if (token)
{
printf("[%s]",token);
if (strcmp("quit",token)==0) break;
tocarnota(token);
}
while(token)
{
token=strtok(’\0’," ");
48
if(token)
{
printf("[%s]",token);
tocarnota(token);
}
else
printf("\n");
}
}
midiOutClose(handle);
return(0);
}
else
if (strcmp("si",nota)==0)
{
49
knoton(83);
knotof(83);
}
else printf("Nota desconocida:");
return(1);
}
int knoton(char nota)
{
static union {DWORD dwData; UCHAR bData[4];}u;
u.bData[0] = 0x90;
u.bData[1] = nota;
u.bData[2] = 127;
u.bData[3] = 0;
error = midiOutShortMsg(handle, u.dwData);
if (error)
{
printf("Error: midiOutShortMsg()\n");
midiOutClose(handle);
exit(1);
}
Sleep(300);
return(1);
}
50
Capı́tulo 4
Pruebas y Resultados
Tex fue creado por el profesor Donald E. Knuth con el fin de crear textos cientı́fi-
cos, con una calidad de imprenta. En base a Tex, Steinbach y Schofer implementaron
el primer sistema de edición e impresión de partituras, llamado MUTEX, aunque limi-
tado en su alcance por los pocos simbolos musicales soportados. Más adelante Daniel
Taupin desarrolla MUSICTEX una versión mejorada de MUTEX, que permite es-
cribir una partitura con varios instrumentos a la vez y es compatible con LATEX,
aunque no era posible cambiar la tonalidad de la melodı́a, hacer ligaduras entre no-
tas, realizar tresillos y transportar notas. Sin embargo estos incovenientes, fueron re-
sueltos con la siguiente versión llamada MUSIXTEX, realizada por Taupin, Mitchel
y Egler. Es importante mencionar la aportación de KL al desarrollo de partituras en
Tex, ya que intenta procesar el lenguaje natural de la música (solfeo) de una forma
sencilla, utilizando las ideas expuestas anteriormente de Knuth.
51
4.2. Escala Mayor y Escala Menor
52
Figura 4.2: Escala Menor.
--compas 1
do
re
mi
fa
sol
la
si
do(5,up)
exit
53
\notes \qu{f}\enotes
\notes \qu{g}\enotes
\notes \qu{h}\enotes
\notes \qu{i}\enotes
\notes \qu{j}\enotes
\finmorceau
\by
54
Figura 4.4: Lı́nea de comandos de KL.
Hoy en dı́a el costo del software es mucho mayor que su contraparte en hard-
ware, el prototipo diseñado en esta tesis, es un ejemplo de ello. Para este proyecto se
utilizaron los siguientes recursos: una computadora personal, un teclado MIDI y una
impresora, los costos se pueden observar en la Tabla 4.1. Es importante mencionar
que si se implementa comercialmente habrá que añadir algunos recursos con el fin de
que la fabricación se realicé de forma correcta, utilizando un equipo MIDI profesional
y equipos de computo de alto rendimiento. Estos recursos se muestran en la Tabla 4.2.
55
Figura 4.5: Acorde mayor.
56
Tabla 4.2: Costos para implementar el proyecto de forma comercial
57
Conclusiones
58
ser escuchados por un altavoz. Por ejemplo, para enviar un Do, enviamos el tono MI-
DI correspondiente a esa nota.
En las pruebas realizadas, reproducimos la escala mayor y la escala menor en
forma automática, también los acordes mayores, menores, aumentados, disminuidos
y acordes de séptima, para ello utilizamos tonos MIDI definidos, por ejemplo en la es-
cala mayor la reproducción se inicia con el Do4 , que corresponde al número hexadeci-
mal 48. Además de estas pruebas, se realizó un pequeño programa con el compilador
KL, donde se muestra la escala mayor, que genera el mismo compilador con una se-
rie de instrucciones. Otra prueba realizada fue la del interprete musical, de la misma
forma con tonos definidos, comparando los caracteres introducidos en el teclado y re-
produciendo la nota indicada.
59
Bibliografı́a
[1] Abad Ruiz Federico DO RE QUE , Ediciones Berenice, España, 2006 362 pgs.
[2] Lane’s John Match a Chord and play a tune 1200 chords and positions , Robins
Music Corporation, NY USA, 1970.
[4] Taupin Daniel, MusicTEX Using TEX to write polyphonic or instrumental Mu-
sic, (version 5.14), Laboratoire de Phisique des Solides (associé au CNRS), bati-
ment 510, Centre Universitaire, F-91405 ORSAY Cedex, Oct. 25, 1995. 67 pgs.
[5] Stroustrup Bjarne, The C++ Programming Language. Special Edition, First
Edition, Addison Wesley Longman, 2000. 1072 pags.
60
Φ
61