Sunteți pe pagina 1din 67

INSTITUTO POLITÉCNICO NACIONAL

ESCUELA SUPERIOR DE INGENIERÍA MECÁNICA Y ELÉCTRICA


MCG: Generador de Acordes Musicales

Tesis que presenta

Mario Alberto Páez Castillo

Para Obtener el Tı́tulo de

Ingeniero en Comunicaciones y Electrónica

En la Especialidad de

Acústica

Director de la Tesis: Dr. Maximino Peña Guerrero.


Codirector: Ing. José de Jesús Negrete Redondo.

México D.F. Junio 2008


Trabajo de tesis que forma parte de los resulta-
dos obtenidos en nuestro proyecto de investigación,
KSR: Sistema Digital de Reconocimiento de Voz,
número de registro CGPI 20071385, asignado por
la Secretarı́a de Investigación y Posgrado del Insti-
tuto Politécnico Nacional. Dicho proyecto fue reali-
zado durante el año del 2007 dentro de las instala-
ciones del Laboratorio de Acústica, y dirigido por
el Dr. Maximino Peña Guerrero.

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,

Alberto Páez Ramı́rez,

J. Daniel Páez Castillo,

Instituto Politécnico Nacional. . .

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...

Beth Bagan Quinn

vi
Índice general

1. Conceptos musicales y Música Digital 10


1.1. Elementos Musicales . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
1.1.1. Inspiración Musical . . . . . . . . . . . . . . . . . . . . . . . . 10
1.1.2. Melodı́a . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
1.1.3. Armonı́a . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
1.1.4. Ritmo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
1.2. Música Digital . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
1.2.1. Composición Asistida por Computadora . . . . . . . . . . . . 16
1.2.2. MIDI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
1.3. Resumen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17

2. Métodos Numéricos en la Música 18


2.1. Representación Numérica de Notas y Sonidos . . . . . . . . . . . . . 18
2.1.1. Sistema Digital de Notas . . . . . . . . . . . . . . . . . . . . . 18
2.1.2. Tipos de Acordes . . . . . . . . . . . . . . . . . . . . . . . . . 20
2.2. Resumen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39

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

1.1. Escala Cromática con sostenidos y bemoles . . . . . . . . . . . . . . . 13

2.1. Famila de acordes de C . . . . . . . . . . . . . . . . . . . . . . . . . . 20


2.2. Familia de acordes de C en el teclado . . . . . . . . . . . . . . . . . . 21
2.3. Famila de acordes de Cm . . . . . . . . . . . . . . . . . . . . . . . . . 21
2.4. Familia de acordes de Cm en el teclado . . . . . . . . . . . . . . . . . 22
2.5. Famila de acordes de C6 . . . . . . . . . . . . . . . . . . . . . . . . . 22
2.6. Familia de acordes de C6 en el teclado . . . . . . . . . . . . . . . . . 22
2.7. Famila de acordes de Cm6 . . . . . . . . . . . . . . . . . . . . . . . . 22
2.8. Familia de acordes de Cm6 en el teclado . . . . . . . . . . . . . . . . 22
2.9. Famila de acordes de C7 . . . . . . . . . . . . . . . . . . . . . . . . . 23
2.10. Familia de acordes de C7 en el teclado . . . . . . . . . . . . . . . . . 23
2.11. Famila de acordes de Cm7 . . . . . . . . . . . . . . . . . . . . . . . . 24
2.12. Familia de acordes de Cm7 en el teclado . . . . . . . . . . . . . . . . 24
2.13. Famila de acordes de Cdim . . . . . . . . . . . . . . . . . . . . . . . . 25
2.14. Familia de acordes de Cdim en el teclado . . . . . . . . . . . . . . . . 25
2.15. Familia de Acordes de C+ . . . . . . . . . . . . . . . . . . . . . . . . 25
2.16. Familia de acordes de C+ en el teclado . . . . . . . . . . . . . . . . . 26
2.17. Familia de acordes de C7+5 . . . . . . . . . . . . . . . . . . . . . . . 26
2.18. Familia de acordes de C7+5 . . . . . . . . . . . . . . . . . . . . . . . 27
2.19. Familia de acordes de C7b5 . . . . . . . . . . . . . . . . . . . . . . . 27
2.20. Familia de acordes de C7b5 . . . . . . . . . . . . . . . . . . . . . . . 27
2.21. Familia de acordes de C7b9 . . . . . . . . . . . . . . . . . . . . . . . 27
2.22. Familia de acordes de C7b5 . . . . . . . . . . . . . . . . . . . . . . . 27
2.23. Familia de acordes de Cmaj7 . . . . . . . . . . . . . . . . . . . . . . . 28
2.24. Familia de acordes de Cmaj7 . . . . . . . . . . . . . . . . . . . . . . . 29
2.25. Familia de acordes de Cm7b5 . . . . . . . . . . . . . . . . . . . . . . 29
2.26. Familia de acordes de Cm7b5 . . . . . . . . . . . . . . . . . . . . . . 29
2.27. Familia de acordes de C7sus4 . . . . . . . . . . . . . . . . . . . . . . 30

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

3.1. Diagrama General de KL. . . . . . . . . . . . . . . . . . . . . . . . . 42


3.2. Diagrama básico de una tarjeta de Sonido. . . . . . . . . . . . . . . . 44

4.1. Escala Mayor. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52


4.2. Escala Menor. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53
4.3. Escala Mayor generada con el compilador KL. . . . . . . . . . . . . . 54
4.4. Lı́nea de comandos de KL. . . . . . . . . . . . . . . . . . . . . . . . . 55
4.5. Acorde mayor. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56
4.6. Acorde menor. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56

4
Índice de tablas

1. Duración de las notas . . . . . . . . . . . . . . . . . . . . . . . . . . . 8

2.1. Forma canónica de la famila de acordes de C . . . . . . . . . . . . . . 20


2.2. Forma canónica de la famila de acordes de Cm . . . . . . . . . . . . . 21
2.3. Forma canónica de la famila de acordes de C6 . . . . . . . . . . . . . 22
2.4. Forma canónica de la famila de acordes de Cm6 . . . . . . . . . . . . 23
2.5. Forma canónica de la famila de acordes de C7 . . . . . . . . . . . . . 23
2.6. Forma canónica de la famila de acordes de Cm7 . . . . . . . . . . . . 24
2.7. Forma canónica de la famila de acordes de Cdim . . . . . . . . . . . . 25
2.8. Forma canónica de la familia de acordes de C+ . . . . . . . . . . . . 25
2.9. Forma canónica de la familia de acordes de C7+5 . . . . . . . . . . . 26
2.10. Forma canónica de la familia de acordes de C7b5 . . . . . . . . . . . 27
2.11. Forma canónica de la familia de acordes de C7b9 . . . . . . . . . . . 28
2.12. Forma canónica de la familia de acordes de Cmaj7 . . . . . . . . . . . 28
2.13. Forma canónica de la familia de acordes de Cm7b5 . . . . . . . . . . 29
2.14. Forma canónica de la familia de acordes de C7sus4 . . . . . . . . . . 30
2.15. Forma canónica de la familia de acordes de C9 . . . . . . . . . . . . . 31
2.16. Forma canónica de la familia de acordes de Cm9 . . . . . . . . . . . . 31
2.17. Forma canónica de la familia de acordes de C9+5 . . . . . . . . . . . 32
2.18. Forma canónica de la familia de acordes de C9+5 . . . . . . . . . . . 33
2.19. Forma canónica de la familia de acordes de Cmaj9 . . . . . . . . . . . 34
2.20. Forma canónica de la familia de acordes de C11 . . . . . . . . . . . . 35
2.21. Forma canónica de la familia de acordes de C11b9 . . . . . . . . . . . 35
2.22. Forma canónica de la familia de acordes de C11+ . . . . . . . . . . . 36
2.23. Forma canónica de la familia de acordes de C13 . . . . . . . . . . . . 37
2.24. Forma canónica de la familia de acordes de C13b9 . . . . . . . . . . . 38
2.25. Forma canónica de la familia de acordes de C7/6 . . . . . . . . . . . 38
2.26. Forma canónica de la familia de acordes de C9/6 . . . . . . . . . . . 39

4.1. Costos para realizar el prototipo. . . . . . . . . . . . . . . . . . . . . 55

5
4.2. Costos para implementar el proyecto de forma comercial . . . . . . . 57

6
Introducción

Seguramente la forma de componer una pieza musical en la actualidad, es dife-


rente a como se hacı́a antes, esto se debe en parte a que las reglas de la armonı́a se
han vuelto más flexibles, sin embargo el cumplimiento de ellas en la mayorı́a de los
casos es imprescindible.
Por eso, a continuación se mencionan algunos elementos básicos de música para
poder entender la forma en como funciona el M. C. G. Primeramente hay que definir
la palabra música, que es el arte de combinar sonidos y silencios, a lo largo de un tiem-
po, produciendo una secuencia sonora que transmite sensaciones agradables al oı́do.
Esto nos lleva pensar que el sonido es parte fundamental de la música, y es cier-
to porque sin el, no serı́a posible la música. Pero qué es sonido, bueno acústicamente
hablando es una perturbación, que se propaga en un medio elástico y llega a excitar
al oı́do humano, sus principales caracterı́sticas son la intesidad , el tono y el timbre.
Entendemos como intensidad a la cantidad de energı́a sonora por unidad de
área, transmitida en una dirección determinada, su valor es 1x10E − 12w/m2 , gra-
cias a la intensidad del sonido, nuestro oı́do puede percibir la diferencia entre sonidos
fuertes y sonidos débiles.
Otra caracterı́stica importante es el tono, que se refiere a la forma subjetiva de
como el oı́do percibe el sonido, el cual puede ser en forma grave o aguda. En una
melodı́a el tono nos sirve para saber la ubicación que tendrá en el pentagrama.
Finalmente definimos el timbre como a un conjunto de armónicos que pertenecen
a un sonido cuando vibra a su frecuencia fundamental. Musicalmente hablando el
timbre nos permite saber cuando se está tocando un La4 de un piano ó un La4 de una

7
Tabla 1: Duración de las notas

Figura Nombre Tiempo(s)


# Redonda 4
" Blanca 2
! Negra 1
!( Corchea 1/2
!) Semicorchea 1/4
!* Fusa 1/8
!+ Semifusa 1/16

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

Conceptos musicales y Música Di-


gital

En este capı́tulo se presentan los principales elementos que se utilizan en la


creación de una pieza musical como son, la melodı́a, la armonı́a, el ritmo y la in-
spiración, de esta última parte el compositor para inventar su obra. Por otra parte
tambien se menciona la interrelación de una computadora digital y la composición
musical, por medio de sistemas de composición asistida por computadora CAC.

1.1. Elementos Musicales

A continuación se presentan los Elementos Musicales, esenciales para el compo-


sitor.

1.1.1. Inspiración Musical

Es una caracterı́stica inherente al compositor, normalmente compone todos los


dı́as algo de música. Generalmente parte de una lı́nea melódica, la cual es una suce-
sión de notas; a partir de ahı́ produce el resto de la pieza.
Sin embargo la idea de una nueva pieza, le puede llegar al compositor de varias
formas, tal vez como un acompañamiento con una melodı́a o simplemente un acom-
pañamiento que más tarde añadirá una melodı́a. También puede que tenga la idea a
través de un ritmo, al que posteriormente sumará un acompañamiento y después una

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# #

Figura 1.1: Escala Cromática con sostenidos y bemoles

crómatica en forma ascendente con sostenidos y en forma descendente con bemoles.


En la melodı́a son muy importantes los intervalos, a continuación se presentan
los tipos de intervalos más utilizados.
1. En los intervalos armónicos las dos notas que lo forman se producen simul-
taneamente.
2. En los intervalos melódicos una nota suena antes que la otra.
3. En un intervalo simple la distancia entre las notas es menor a una octava.
4. En un intervalo compuesto la distancia entre las notas es mayor a una octava.
Ahora hablaremos de la tesitura, que es la distancia entre el sonido más grave
y más agudo que puede emitir un instrumento. El sistema de tonalidades se crea por
la necesidad de transportar la melodı́a a un ámbito aceptable para la voz o el instru-
mento utilizado.

1.1.3. Armonı́a

Antes de empezar a hablar del concepto de armonı́a, veremos dos definiciones,


la consonancia y la disonancia. En la consonancia tenemos dos sonidos que se emiten
simultaneamente y dan una sensación de estabilidad o equilibrio. Por otra parte la
disonancia se da entre dos sonidos que al producirse simultaneamente nos causa una
sensación de choque o tensión.
Pitágoras matemático griego, dijo al respecto que dos sonidos son consonantes
según la proporción que tengan sus frecuencias. Por ejemplo entre un Do1 y un Do2
la proporción es 2:1; entre un Sol2 y un Do2 es de 3:2. Sin embargo más adelante en

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

Consideramos al Ritmo como la repetición de un patrón a lo largo del tiempo,


musicalmente hablando es la ordenación de los sonidos y los silencios en el tiempo,
siguiendo la periodicidad de un patrón. Una parte esencial del ritmo es el pulso el
cual es la secuencia de golpes, que se repiten a lo largo del tiempo en forma regular
y que estan separados entre sı́ por el mismo periodo de tiempo.
Otra parte clave en el ritmo es el tempo que representa la velocidad a la que se
interpreta la melodı́a. Se crearon diferentes nombres del tempo, a los que se llamó in-
dicadores de movimiento por ejemplo, para una velocidad constante, se usan los si-
guientes: grave, lento, largo, adagio, andante, moderato, allegro, vivace y presto. A
pesar de que ya se tenı́an indicadores de movimiento, no eran muy precisos para mar-
car el tempo, según como el compositor lo habı́a creado; es por esto que más ade-
lante, en 1816, Johann Nepomuk Maelzel patentó el metrónomo, que sirve para de-
terminar con precisión el tempo en la interpretación de cualquier obra musical. Con-
siste de un pendulo que al ir de un lado a otro produce un chasquido, que es equiva-
lente a un pulso. Actualmente existen metrónomos electrónicos y prácticamente to-
dos los programas secuenciadores, editores de partituras tienen uno.

15
1.2. Música Digital

Se presentan a continuación algunas implementaciones que las ciencias de la


computación han logrado realizar en el ámbito de la musica.

1.2.1. Composición Asistida por Computadora

Se llama Composición Asistida por Computadora a un conjunto de programas,


que ayudados por dispositivos de procesamiento de señales tienen como fin ayudar
en la creación musical. Para llegar a esto pasaron muchos años desde la maquina de
Charles Babbage cuando Ada Augusta (1815-1852) proponı́a que el lenguaje de la
música, pudiera ser interpretado por una maquina, no importando la complejidad y
la extensión de la obra. Aunque en esos años esto no fue posible, más adelante con
la llegada de la ILLIAC Hiller e Isaacson crearon la Illiac Suite considerada como la
primera composición hecha por una máquina.

1.2.2. MIDI

El protocolo de comunicaciones entre instrumentos musicales MIDI por sus si-


glas en ingles, nace por la necesidad de interconectar hardaware y software entre sis-
temas de música electrónica, propiamente MIDI es un lenguaje digital de comandos,
que permite conectar instrumentos musicales entre ellos mismos y a la vez con una
computadora digital, o con otros dispositivos como secuenciadores y sintetizadores.
Fabricantes como Roland y Secuential Circuits acordaron definir en 1983 el estándar
OSI MIDI 1.0 de hardaware y software. En la parte de software es un lenguaje que
convierte la musica emitida por los instrumentos en codigo binario, que a su vez, es
interpretado por una serie de comandos. Mientras que en el hardware se compone de
un transmisor (MIDI OUT) y un receptor (MIDI IN), los cuales utilizan conectores
DIN de 5 terminales, conectados a un circuito integrado de comunicaciones (UART
6850), programado a una velocidad de 32500 bauds.

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

Métodos Numéricos en la Música

En este capı́tulo se presentan los conceptos enfocados en el diseño de MCG, co-


mo lo es una nota, una escala o un acorde, pero desde el punto de vista matemático.
Además veremos como se forma una octava MIDI, un tono MIDI y un acorde MIDI
entre otros.

2.1. Representación Numérica de Notas y Sonidos


2.1.1. Sistema Digital de Notas

Como ya se mencionó en el capı́tulo anterior,una nota es un sonido y es el ele-


mento básico de la música. Ahora definimos una nota mediante la siguiente función
N(f, r, m) donde f es la frecuencia de la nota, r el tiempo de la nota y m la melodı́a
asociada a la nota. Existe una relación entre cada una de las notas y esta se da por su
1
frecuencia. Dos notas estan separadas por la constante 2 12 =1.059463094. Para obte-
ner la frecuencia de cualquier nota musical se utiliza la siguiente expresión:
n
fn = 2 12 · fref (2.1)

donde fref es la frecuencia de referencia y n es el número de semitonos a partir de


dicha frecuencia de referencia. Si tenemos un Do3 y queremos obtener su frecuencia,
sabemos que fref es por acuerdo internacional 440 hertz y n el número de semitonos
de La4 a Do3 , que son 21 hacia atras o hacia abajo, por tanto, la formula nos queda:
−21
f =2 12 (440) = 130,81Hz (2.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 !!! !! !

Figura 2.1: Famila de acordes de C

Tabla 2.1: Forma canónica de la famila de acordes de C

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

2.1.2. Tipos de Acordes

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

Figura 2.2: Familia de acordes de C en el teclado

3 2
! x!!
! x!
G x! ! !
!

Figura 2.3: Famila de acordes de Cm

del acorde y finalmente en la Figura 2.4 el mapa en el teclado de Do menor.


3. C6 Acorde de Do sexta. En la Figura 2.5 se muestra el acorde de Do sex-
ta en su forma tradicional, también tenemos en la Tabla 2.3 la forma canónica del
acorde y finalmente en la Figura 2.6 el mapa en el teclado de Do sexta.
4. Cm6 Acorde de Do menor sexta. En la Figura 2.7 se muestra el acorde
de Do menor sexta en su forma tradicional, también tenemos en la Tabla 2.4 la forma
canónica del acorde y finalmente en la Figura 2.8 el mapa en el teclado de Do menor
sexta.
5. C7 Acorde de Do septima. En la Figura 2.9 se muestra el acorde de Do
septima en su forma tradicional, también tenemos en la Tabla 2.5 la forma canónica
del acorde y finalmente en la Figura 2.10 el mapa en el teclado de Do septima.
6. Cm7 Acorde de Do menor septima. En la Figura 2.11 se muestra el

Tabla 2.2: Forma canónica de la famila de acordes de Cm

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

Figura 2.4: Familia de acordes de Cm en el teclado

2 3 4!
!! !! !!
! !! !!
G !!! !!

Figura 2.5: Famila de acordes de C6

Tabla 2.3: Forma canónica de la famila de acordes de C6

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

Posición Raíz Primera Inversión Segunda Inversión Tercera Inversión

Figura 2.6: Familia de acordes de C6 en el teclado


2 3
!! !! x!!
G x! x!! !!
!

Figura 2.7: Famila de acordes de Cm6


Posición Raíz Primera Inversión Segunda Inversión Tercera Inversión

Figura 2.8: Familia de acordes de Cm6 en el teclado

22
Tabla 2.4: Forma canónica de la famila de acordes de Cm6

Tono de Do menor sexta


No. Inversión Fórmula o Vector Tono MIDI
Posición Raı́z n, n+3, n+7, n+9 36, 39, 43, 45
1a n, n+4, n+6, n+9 39, 43, 45, 48
2a n, n+2, n+5, n+8 43, 45, 48, 51
3a n, n+3, n+6, n+10 45, 48, 51, 55

2 3 4!
x! x! ! x!
! x!
x! !
x!
!
G x! x! ! !
!
!

Figura 2.9: Famila de acordes de C7

Tabla 2.5: Forma canónica de la famila de acordes de C7

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

Posición Raíz Primera Inversión Segunda Inversión Tercera Inversión

Figura 2.10: Familia de acordes de C7 en el teclado

23
2 3 4!
x! ! x!
x! ! x!
x! !
!
G x! !
x! ! x!
!
!

Figura 2.11: Famila de acordes de Cm7

Tabla 2.6: Forma canónica de la famila de acordes de Cm7

Tono de Do menor septima


No. Inversión Fórmula o Vector Tono MIDI
Posición Raı́z n, n+3, n+7, n+10 36, 39, 43, 46
1a n, n+4, n+7, n+9 39, 43, 46, 48
2a n, n+3, n+5, n+8 43, 46, 48, 51
3a n, n+2, n+5, n+9 46, 48, 51, 55

acorde de Do menor septima en su forma tradicional, también tenemos en la Tabla


2.6 la forma canónica del acorde y finalmente en la Figura 2.12 el mapa en el tecla-
do de Do menor septima.
7. Cdim Acorde de Do disminuido. En la Figura 2.13 se muestra el acorde
de Do disminuido su forma tradicional, también tenemos en la Tabla 2.7 la forma
canónica del acorde y finalmente en la Figura 2.14 el mapa en el teclado de Do dis-
minuido.
8. C+ Acorde de Do aumentado. En la Figura 2.15 se muestra el acorde
de Do aumentado su forma tradicional, también tenemos en la Tabla 2.8 la forma
canónica del acorde y finalmente en la Figura 2.16 el mapa en el teclado de Do au-
mentado.
9. C7+5 Acorde de Do septima más cinco. En la Figura 2.17 se muestra

Posición Raíz Primera Inversión Segunda Inversión Tercera Inversión

Figura 2.12: Familia de acordes de Cm7 en el teclado

24
2 3 4x!
!! !! x!
!! x!
!
G x!
x! x!
x!! x!! !!
!

Figura 2.13: Famila de acordes de Cdim

Tabla 2.7: Forma canónica de la famila de acordes de Cdim

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

Posición Raíz Primera Inversión Segunda Inversión Tercera Inversión

Figura 2.14: Familia de acordes de Cdim en el teclado

2 3
! x!!
G z!!!! z!!! z!!

Figura 2.15: Familia de Acordes de C+

Tabla 2.8: Forma canónica de la familia de acordes de C+

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

Figura 2.16: Familia de acordes de C+ en el teclado

2 3 4 z!
! x!!! !!
x! x! ! x!
G z!
!!
!
z!
!! z! !

Figura 2.17: Familia de acordes de C7+5

el acorde de Do septima más cinco su forma tradicional, también tenemos en la Tabla


2.9 la forma canónica del acorde y finalmente en la Figura 2.18 el mapa en el tecla-
do de Do septima más cinco.
10. C7b5 Acorde de Do septima bemol quinta. En la Figura 2.19 se mues-
tra el acorde de Do septima bemol quinta su forma tradicional, también tenemos en
la Tabla 2.10 la forma canónica del acorde y finalmente en la Figura 2.20 el mapa en
el teclado de Do septima bemol quinta.
11. C7b9 Acorde de Do séptima bemol novena. En la Figura 2.21 se mues-
tra el acorde de Do séptima su forma tradicional, también tenemos en la Tabla 2.11
la forma canónica del acorde y finalmente en la Figura 2.22 el mapa en el teclado de
Do séptima bemol quinta.

Tabla 2.9: Forma canónica de la familia de acordes de C7+5

Tono de Do séptima más cinco


No. Inversión Fórmula o Vector Tono MIDI
Posición Raı́z n, n+4, n+8, n+10 36, 40, 44, 46
1a n, n+4, n+6, n+8 40, 44, 46, 48
2a n, n+2, n+4, n+8 44, 46, 48, 52
3a n, n+2, n+6, n+10 46, 48, 52, 56

26
Posición Raíz Primera Inversión Segunda Inversión Tercera Inversión

Figura 2.18: Familia de acordes de C7+5

2 3 4x!
!! !!
! x!
x! x! x!
G !! ! ! !
x!
! x!
! x!

Figura 2.19: Familia de acordes de C7b5

Tabla 2.10: Forma canónica de la familia de acordes de C7b5

Tono de Do séptima bemol quinta


No. Inversión Fórmula o Vector Tono MIDI
Posición Raı́z n, n+4, n+6, n+10 36, 40, 42, 46
1a n, n+2, n+6, n+8 40, 42, 46, 48
2a n, n+4, n+6, n+10 42, 46, 48, 52
3a n, n+2, n+6, n+8 46, 48, 52, 54

Posición Raíz Primera Inversión Segunda Inversión Tercera Inversión

Figura 2.20: Familia de acordes de C7b5

2 3 ! 4x!
!!
x! ! x!
x! ! x!
x! x! x!
G !!! ! ! !

Figura 2.21: Familia de acordes de C7b9


Posición Raíz Primera Inversión Segunda Inversión Tercera Inversión

Figura 2.22: Familia de acordes de C7b5

27
Tabla 2.11: Forma canónica de la familia de acordes de C7b9

Tono de Do séptima bemol novena


No. Inversión Fórmula o Vector Tono MIDI
Posición Raı́z n, n+3, n+6, n+9 40, 43, 46, 49
1a n, n+3, n+6, n+9 43, 46, 49, 52
2a n, n+3, n+6, n+9 46, 49, 52, 55
3a n, n+3, n+6, n+9 49, 52, 55, 58

2 3 4!
!! !! !!
! !! !!
G !!! !!

Figura 2.23: Familia de acordes de Cmaj7

12. Cmaj7 Acorde de Do séptima menor mayor. En la Figura 2.23 se


muestra el acorde de Do séptima menor mayor en su forma tradicional, también te-
nemos en la Tabla 2.12 la forma canónica del acorde y finalmente en la Figura 2.24
el mapa en el teclado de Do séptima menor mayor.
13. Cm7b5 Acorde de Do menor séptima bemol quinta. En la Figura
2.25 se muestra el acorde de Do menor séptima bemol quinta su forma tradicional,
también tenemos en la Tabla 2.13 la forma canónica del acorde y finalmente en la
Figura 2.26 el mapa en el teclado de Do menor séptima bemol quinta.
14. C7sus4 Acorde de Do séptima suspendida cuarta. En la Figura 2.27

Tabla 2.12: Forma canónica de la familia de acordes de Cmaj7

Tono de Do séptima menor mayor


No. Inversión Fórmula o Vector Tono MIDI
Posición Raı́z n, n+4, n+7, n+11 36, 40, 43, 47
1a n, n+3, n+7, n+8 40, 43, 47, 48
2a n, n+4, n+5, n+9 43, 47, 48, 52
3a n, n+1, n+5, n+8 47, 48, 52, 55

28
Posición Raíz Primera Inversión Segunda Inversión Tercera Inversión

Figura 2.24: Familia de acordes de Cmaj7

2 3 4x!
! x!
! x!
!
x! x! x! x!
!
G x!
x!
!
x!
!
x! x!
! !

Figura 2.25: Familia de acordes de Cm7b5

Tabla 2.13: Forma canónica de la familia de acordes de Cm7b5

Tono de Do menor séptima bemol quinta


No. Inversión Fórmula o Vector Tono MIDI
Posición Raı́z n, n+3, n+6, n+10 36, 39, 42, 46
1a n, n+3, n+7, n+9 39, 42, 46, 48
2a n, n+4, n+6, n+9 42, 46, 48, 51
3a n, n+2, n+5, n+8 46, 48, 51, 54

Posición Raíz Primera Inversión Segunda Inversión Tercera Inversión

Figura 2.26: Familia de acordes de Cm7b5

29
2 3! 4!!
! x!
x!! ! x! !
! x!
G ! ! !
! ! !

Figura 2.27: Familia de acordes de C7sus4

Tabla 2.14: Forma canónica de la familia de acordes de C7sus4

Tono de Do séptima suspendida cuarta


No. Inversión Fórmula o Vector Tono MIDI
Posición Raı́z n, n+5, n+7, n+10 36, 41, 43, 46
1a n, n+2, n+5, n+7 41, 43, 46, 48
2a n, n+3, n+5, n+8 43, 46, 48, 51
3a n, n+2, n+5, n+8 46, 48, 51, 54

se muestra el acorde de Do séptima suspendida cuarta en su forma tradicional, tam-


bién tenemos en la Tabla 2.14 la forma canónica del acorde y finalmente en la Figu-
ra 2.28 el mapa en el teclado de Do séptima suspendida cuarta.
15. C9 Acorde de Do novena. En la Figura 2.29 se muestra el acorde de Do
novena en su forma tradicional, también tenemos en la Tabla 2.15 la forma canónica
del acorde y finalmente en la Figura 2.30 el mapa en el teclado de Do novena.
16. Cm9 Acorde de Do novena menor. En la Figura 2.31 se muestra el
acorde de Do novena menor en su forma tradicional, también tenemos en la Tabla
2.16 la forma canónica del acorde y finalmente en la Figura 2.32 el mapa en el tecla-
do de Do disminuido.
17. C9+5 Acorde de Do novena más cinco. En la Figura 2.33 se muestra

Posición Raíz Primera Inversión Segunda Inversión Tercera Inversión

Figura 2.28: Familia de acordes de C7sus4

30
2 3 ! 4x!
! !! !! !!!
x! x!!! x!
! x!
G !!! !

Figura 2.29: Familia de acordes de C9

Tabla 2.15: Forma canónica de la familia de acordes de C9

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

Posición Raíz Primera Inversión Segunda Inversión Tercera Inversión

Figura 2.30: Familia de acordes de C9

2 3 ! 4x!
!
! x!
! x!
! x!
!
x!
! x!
! x!
! !
G x!
!

Figura 2.31: Familia de Acordes de Cm9

Tabla 2.16: Forma canónica de la familia de acordes de Cm9

Tono de Do novena menor


No. Inversión Fórmula o Vector Tono MIDI
Posición Raı́z n, n+4, n+7, n+11 39, 43, 46, 50
1a n, n+3, n+7, n+8 43, 46, 50, 51
2a n, n+4, n+5, n+9 46, 50, 51, 55
3a n, n+1, n+5, n+8 50, 51, 55, 58

31
Posición Raíz Primera Inversión Segunda Inversión Tercera Inversión

Figura 2.32: Familia de acordes de Cm9

2 3 z! 4x!
! !! !! z!
!!
x!
z!
! x!
z!! x!
! !
G !!

Figura 2.33: Familia de acordes de C9+5

el acorde de Do novena aumentada quinta en su forma tradicional, también tenemos


en la Tabla 2.17 la forma canónica del acorde y finalmente en la Figura 2.34 el mapa
en el teclado de Do novena más cinco.
18. C9b5 Acorde de Do novena bemol quinta. En la Figura 2.35 se mues-
tra el acorde de Do novena bemol quinta en su forma tradicional, también tenemos
en la Tabla 2.18 la forma canónica del acorde y finalmente en la Figura 2.36 el mapa
en el teclado de Do novena bemol quinta.
19. Cmaj9 Acorde de Do novena menor mayor. En la Figura 2.37 se mues-
tra el acorde de Do novena menor mayor en su forma tradicional, también tenemos
en la Tabla 2.19 la forma canónica del acorde y finalmente en la Figura 2.38 el mapa
en el teclado de Do menor mayor.

Tabla 2.17: Forma canónica de la familia de acordes de C9+5

Tono de Do séptima menor mayor


No. Inversión Fórmula o Vector Tono MIDI
Posición Raı́z n, n+4, n+6, n+10 40, 44, 46, 50
1a n, n+2, n+6, n+8 44, 46, 50, 52
2a n, n+4, n+6, n+10 46, 50, 52, 56
3a n, n+2, n+6, n+8 50, 52, 56, 58

32
Posición Raíz Primera Inversión Segunda Inversión Tercera Inversión

Figura 2.34: Familia de Acordes de C9+5

2 3x! 4x!
! !! !! x!
!!
x!
!
x! x!
x!! x!
! !
G !!

Figura 2.35: Familia de Acordes de C9b5

Tabla 2.18: Forma canónica de la familia de acordes de C9+5

Tono de Do novena bemol quinta


No. Inversión Fórmula o Vector Tono MIDI
Posición Raı́z n, n+2, n+6, n+10, 40, 42, 46, 50
1a n, n+4, n+8, n+10 42, 46, 50, 52
2a n, n+4, n+6, n+10 46, 50, 52, 54
3a n, n+4, n+6, n+8 50, 52, 54, 58

Posición Raíz Primera Inversión Segunda Inversión Tercera Inversión

Figura 2.36: Familia de Acordes de C9+5

2 3! 4! !
!! !!! !!! !!
G !!! ! ! !

Figura 2.37: Familia de acordes de Cmaj9

33
Tabla 2.19: Forma canónica de la familia de acordes de Cmaj9

Tono de Do novena menor mayor


No. Inversión Fórmula o Vector Tono MIDI
Posición Raı́z n, n+3, n+7, n+10 40, 43, 47, 50
1a n, n+4, n+7, n+9 43, 47, 50, 52
2a n, n+3, n+5, n+8 47, 50, 52, 55
3a n, n+2, n+5, n+9 50, 52, 55, 59

Posición Raíz Primera Inversión Segunda Inversión Tercera Inversión

Figura 2.38: Familia de acordes de Cmaj9

20. C11 Acorde de Do oncena. En la Figura 2.39 se muestra el acorde de Do


oncena en su forma tradicional, también tenemos en la Tabla 2.20 la forma canónica
del acorde y finalmente en la Figura 2.40 el mapa en el teclado de Do oncena.
21. C11b9 Acorde de Do oncena bemol novena. En la Figura 2.41 se mues-
tra el acorde de Do oncena bemol novena en su forma tradicional, también tenemos
en la Tabla 2.21 la forma canónica del acorde y finalmente en la Figura 2.42 el mapa
en el teclado de Do oncena bemol novena.
22. C11+ Acorde de Do oncena aumentada. En la Figura 2.43 se mues-
tra el acorde de Do oncena aumentada en su forma tradicional, también tenemos en
la Tabla 2.22 la forma canónica del acorde y finalmente en la Figura 2.44 el mapa en
el teclado de Do oncena aumentada.

x! x!!
!! 2 !!! 3 !!! 4 !!
x! x!
G !!! ! ! !

Figura 2.39: Familia de acordes de C11

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

Posición Raíz Primera Inversión Segunda Inversión Tercera Inversión

Figura 2.40: Familia de acordes de C11

! !! !!!
! 2! 3! 4!
x!
x! x!
x! x! x!
G !!! !! x!! x!!

Figura 2.41: Familia de acordes de C11b9

Tabla 2.21: Forma canónica de la familia de acordes de C11b9

Tono de Do oncena bemol novena


No. Inversión Fórmula o Vector Tono MIDI
Posición Raı́z n, n+3, n+6, n+10 43, 46, 49, 53
1a n, n+3, n+7, n+9 46, 49, 53, 55
2a n, n+4, n+6, n+9 49, 53, 55, 58
3a n, n+2, n+5, n+8 53, 55, 58, 61

Posición Raíz Primera Inversión Segunda Inversión Tercera Inversión

Figura 2.42: Familia de acordes de C11b9

35
! !! !!!
z! 2 z! 3 z! 4 z!
x!! x!! x! ! !
G !!! !! ! x! !

Figura 2.43: Familia de acordes de C11+

Tabla 2.22: Forma canónica de la familia de acordes de C11+

Tono de Do oncena aumentada


No. Inversión Fórmula o Vector Tono MIDI
Posición Raı́z n, n+3, n+7, n+11 43, 46, 50, 54
1a n, n+4, n+8, n+9 46, 50, 54, 55
2a n, n+4, n+5, n+8 50, 54, 55, 58
3a n, n+1, n+4, n+8 54, 55, 58, 62

Posición Raíz Primera Inversión Segunda Inversión Tercera Inversión

Figura 2.44: Familia de acordes de C11+

36
! !! !!!
!! 2!!! 3 !!! 4 !!!
x! ! x!
G !!! !! x! ! x!!

Figura 2.45: Familia de acordes de C13

Tabla 2.23: Forma canónica de la familia de acordes de C13

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

23. C13 Acorde de Do trecena. En la Figura 2.45 se muestra el acorde de Do


trecena en su forma tradicional, también tenemos en la Tabla 2.23 la forma canónica
del acorde y finalmente en la Figura 2.46 el mapa en el teclado de Do trecena.
24. C13b9 Acorde de Do trecena bemol novena. En la Figura 2.47 se
muestra el acorde de Do oncena en su forma tradicional, también tenemos en la Tabla
2.24 la forma canónica del acorde y finalmente en la Figura 2.48 el mapa en el tecla-
do de Do trecena bemol novena.
25. C7/6 Acorde de Do septima sobre sexta. En la Figura 2.49 se mues-
tra el acorde de Do séptima sobre sexta en su forma tradicional, también tenemos en
la Tabla 2.25 la forma canónica del acorde y finalmente en la Figura 2.50 el mapa en
el teclado de Do séptima sobre sexta.

Posición Raíz Primera Inversión Segunda Inversión Tercera Inversión

Figura 2.46: Familia de acordes de C13

37
! !! !!!
!! 2!! 3x!!! 4 !!
x!
x! x!
x! x!
G !!! !! x! ! x!!

Figura 2.47: Familia de acordes de C13b9

Tabla 2.24: Forma canónica de la familia de acordes de C13b9

Tono de Do trecena bemol novena


No. Inversión Fórmula o Vector Tono MIDI
Posición Raı́z n, n+3, n+7, n+11 46, 49, 53, 57
1a n, n+4, n+8, n+9 49, 53, 57, 58
2a n, n+4, n+5, n+8 53, 57, 58, 61
3a n, n+1, n+4, n+8 57, 58, 61, 65

Posición Raíz Primera Inversión Segunda Inversión Tercera Inversión

Figura 2.48: Familia de acordes de C13b9

2 3 4!
!! x!!! !!
x!! x!!! !! x!!!
G !!!

Figura 2.49: Familia de acordes de C7/6

Tabla 2.25: Forma canónica de la familia de acordes de C7/6

Tono de Do séptima sobre sexta


No. Inversión Fórmula o Vector Tono MIDI
Posición Raı́z n, n+3, n+5, n+6 39, 42, 44, 45
1a n, n+2, n+3, n+9 42, 44, 45, 51
2a n, n+1, n+7, n+10 44, 45, 51, 54
3a n, n+6, n+9, n+11 45, 51, 54, 65

38
Posición Raíz Primera Inversión Segunda Inversión Tercera Inversión

Figura 2.50: Familia de acordes de C7/6

! !! !!!
2 3 4
! ! ! !
! ! ! !
G !!! !! ! !

Figura 2.51: Familia de acordes de C9/6

26. C9/6 Acorde de Do novena sobre sexta. En la Figura 2.51 se muestra


el acorde de Do novena sobre sexta en su forma tradicional, también tenemos en la
Tabla 2.26 la forma canónica del acorde y finalmente en la Figura 2.52 el mapa en el
teclado de Do novena sobre sexta.

2.2. Resumen

En est capı́tulo se presentó la definición de una nota como función matemática


y la relación de las notas dada por la frecuencia, también se construyeron los diferen-
tes tipos de acordes del tono de Do.

Tabla 2.26: Forma canónica de la familia de acordes de C9/6

Tono de Do novena sobre sexta


No. Inversión Fórmula o Vector Tono MIDI
Posición Raı́z n, n+3, n+5, n+10 40, 43, 45, 50
1a n, n+2, n+7, n+9 43, 45, 50, 52
2a n, n+5, n+7, n+10 45, 50, 52, 55
3a n, n+2, n+5, n+7 50, 52, 55, 57

39
Posición Raíz Primera Inversión Segunda Inversión Tercera Inversión

Figura 2.52: Familia de acordes de C9/6

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

El compilador KL (Kernel for a music Languaje) creado por el Dr. Maximino


Peña Guerrero como parte de su tesis doctoral, esta diseñado para funcionar como
un interprete musical, capaz de generar una partitura musical, a partir de un archi-
vo .kl (punto kl) o directamente en la pantalla del compilador introduciendo las no-
tas de la melodı́a, mediante el teclado de la PC. Además de introducir notas es posi-
ble utilizar algunos parámetros, como el número de octava de cada nota, su duración,
su intensidad, el tipo de figura de la nota, entre otros, el compilador esta compuesto
de tres partes, el analizador léxico, el analizador sintáctico y el analizador semántico,
cada uno de ellos se forma con diferentes funciones programadas en lenguaje C. En
primer lugar se analiza la sintaxis de los caracteres del teclado, si es correcta se ana-
liza la semántica de las notas y de algunos elementos gráficos como la barra de com-
pas o la dirección de las plicas de las notas.
Este trabajo pretende ampliar las caracterı́sticas y el funcionamiento de KL con

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.

Figura 3.1: Diagrama General de KL.

En esta tesis se tomaron algunas de las técnicas que se utilizaron en el diseño de


KL, como es la extracción de tokens para formar nuevas instrucciones y sus respecti-
vas funciones semánticas. Estas últimas harán el tratamiento o procesamiento de las
acciones que se requieran en la construcción de acordes y otros tópicos relevantes.

3.2. Comandos MIDI

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.

3.3. Tarjeta de Sonido de una PC

Para poder utilizar el MCG es necesario conocer el funcionamiento básico de


la tarjeta de sonido, en ella se encuentra un circuito integrado llamado Conversor
Analógico Digital que convierte las señales de audio analógicas en señales de audio di-
gitales y visceversa, con esta caracterı́stica es posible introducir una señal de audio a la
PC, al igual obtener una señal de la PC, que podemos utilizar en un amplificador, aud-
ifonos, altavoces, etc. Entre sus funciones básicas se encuentran la de grabación, repro-
ducción y sintésis. También tiene componentes electrónicos como buffer, procesador
de señal digital (DSP), conversor analógico digital (ADC), conversor digital analógi-
co (DAC). En la Figura 3.2 se muestra un diagrama general de la tarjeta de sonido.

3.4. Algoritmos del MCG

A continuación se definen los algoritmos y las rutinas de programación de es-


calas y acordes básicos, utilizados en el MCG.
Los algoritmos del sistema, tienen en su parte fundamental, el modulo de un
número, que se define, como el residuo de la división de dos números. Este número es
utilizado para recorrer la escalas en forma automática. Por ejemplo para formar una

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.

Escala Mayor utilizamos la siguiente rutina programada en lenguaje C, que manda a


llamar varias funciones como kopen(), knoton(), knotof() y kclose(), que sirven para el
manejo de las notas musicales en forma MIDI. Existe otra función llamada emayor-
arriba(), en la cual se calcula el valor del modulo del número que recibe como entra-
da y se regresa un número entero (1 o 2) dependiendo, del cumplimiento de la condi-
ción (or).

#include <windows.h>
#include <mmsystem.h>
#include <stdio.h>
int emayorarriba(int);

int main(void)
{
int i;
int x=0;
int n=48;

kopen(); // abrir midi

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);
}

A continuación se explican las funciones para el manejo de datos MIDI.


kopen(). Esta función la utilizamos para abrir el dispositivo de salida, que usare-
mos para enviar un mensaje MIDI.Tiene varios parámetros, en primer lugar tenemos
a un apuntador que identifica el dispositivo de salida MIDI, el segundo parámetro,
identifica el dispositivo MIDI que ha sido abierto. El tercer parámetro es un apun-
tador, que contiene a una función de reproducción, a un manejador de evento o un
identificador de hilo, si es llamada durante la reproducción. El cuarto parámetro es
una instancia de datos, que es pasada durante la reproducción. Finalmente el quinto
parámetro es una bandera para el dispositivo MIDI abierto, en este caso utilizamos
el valor estandard que no utiliza ninguna llamada a otra función.
kopen()
{
error = midiOutOpen(&handle, (UINT)-1, 0, 0, CALLBACK_NULL);
if (error)
{
printf("Error: midiOutOpen()\n");
return(0);
}
}

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.

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);
}

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.

int knotof(char nota)


{
static union {DWORD dwData; UCHAR bData[4];}u;
u.bData[0] = 0x80;
u.bData[1] = nota;
u.bData[2] = 0;
u.bData[3] = 0;
error = midiOutShortMsg(handle, u.dwData);
if (error)
{
printf("Error: midiOutShortMsg()\n");
midiOutClose(handle);
exit(1);
}
return(1);
}

Otra rutina de programación creada en lenguaje C reproduce la escala menor en

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;

kopen(); // abrir midi

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 knoton(char x);


int knotof(char x);
int tocarnota(char s[]);
char string[80];

int main(void)
{
char *token;
printf("KTK2: Play Notes. (c) Dr. Max P.G., march 9 2006.\n");
printf("Press [quit] for quit.\n");

error = midiOutOpen(&handle, (UINT)-1, 0, 0, CALLBACK_NULL);


if (error)
{
printf("Error: midiOutOpen()\n");
return(0);
}

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);
}

int tocarnota(char nota[])


{
if (strcmp("do",nota)==0)
{
knoton(72);
knotof(72);
}
else
if (strcmp("re",nota)==0)
{
knoton(74);
knotof(74);
}
else
if (strcmp("mi",nota)==0)
{
knoton(76);
knotof(76);
}
else
if (strcmp("fa",nota)==0)
{
knoton(77);
knotof(77);
}
else
if (strcmp("sol",nota)==0)
{
knoton(79);
knotof(79);
}
else
if (strcmp("la",nota)==0)
{
knoton(81);
knotof(81);
}

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);
}

int knotof(char nota)


{
static union {DWORD dwData; UCHAR bData[4];}u;
u.bData[0] = 0x80;
u.bData[1] = nota;
u.bData[2] = 0;
u.bData[3] = 0;
error = midiOutShortMsg(handle, u.dwData);
if (error)
{
printf("Error: midiOutShortMsg()\n");
midiOutClose(handle);
exit(1);
}
return(1);
}

50
Capı́tulo 4

Pruebas y Resultados

En este capı́tulo se presentan algunos programas realizados previamente al


diseño del MCG, como son la escala mayor, la escala menor y algunos acordes básicos.
Además hablamos un poco de la historia de Tex.

4.1. Desarrollo de Partituras en Tex

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

En las siguientes Figuras se muestran las pantallas en lı́nea de comandos de la


escala mayor y la escala menor. En la Figura 4.1 tenemos la impresión de números
hexadecimales correspondientes a los tonos MIDI, comienza en el número 48, que es
la nota DO4 y termina con el número 60 que se refiere a la nota DO5 . Por otro lado
en la Figura 4.2 tenemos también la impresión de números hexadecimales, iniciando
en el número 45 correspondiente a la nota LA3 .

Figura 4.1: Escala Mayor.

4.3. Ejemplo de un Programa con KL

Un programa de KL utiliza instrucciones empleadas para dibujar una partitu-


ra completa. En la siguiente rutina de programación tenemos un ejemplo de un pro-
grama diseñado con código de KL, que a su vez es compilado para generar un archi-
vo TEX. Una vez con el archivo TEX, es posible obtener un archivo .dvi y visualizar-
lo con la herramienta DVI viewer de Miktex o directamente en un archivo .PDF, el
cual contiene la partitura del ejemplo mencionado, que en este caso es la escala ma-
yor, mostrada en la Figura 4.3.

52
Figura 4.2: Escala Menor.

Programa en KL que muestra la Escala Mayor.


titulo(ESCALA MAYOR)
clave ( sol )
--as inicio de cancion

--compas 1
do
re
mi
fa
sol
la
si
do(5,up)

exit

Instrucciones en latex para generar una partitura.


\input musicnft
\input musictex
\input musicext
\def\nbinstruments{1}\relax % un solo instrumento.
\centerline{\enorme ESCALA MAYOR}\relax
\cleftoksi{0000}
\debutmorceau
\def\clefdesoli{\relax}
%--as inicio de cancion
%--compas 1
\notes \qu{c}\enotes
\notes \qu{d}\enotes
\notes \qu{e}\enotes

53
\notes \qu{f}\enotes
\notes \qu{g}\enotes
\notes \qu{h}\enotes
\notes \qu{i}\enotes
\notes \qu{j}\enotes
\finmorceau
\by

Figura 4.3: Escala Mayor generada con el compilador KL.

Otra forma de utilizar KL es introduciendo directamente en la lı́nea de coman-


dos las notas musicales y de forma automatica se generan las instrucciones necesarias
para obtener un archivo .kl. En la Figura 4.4 se observa este ejemplo.

4.4. Tipos de Acordes

Como se mencionó anteriormente existen diferentes tipos de acordes, en la Figu-


ra 4.5 se muestra una ventana donde se observan tres números hexadecimales 60, 64
y 67 correspondientes a las notas Do5 , Mi5 y Sol5 que forman el acorde de Do ma-
yor; en las siguientes lı́neas hay más números pertenecientes a los acordes de los tonos
restantes.
Otro tipo de acorde es el acorde menor, que se muetra en la Figura 4.6, aquı́ los
números hexadecimales son 60, 63 y 67, que corresponden a las notas Do5 , Mi[5 y

54
Figura 4.4: Lı́nea de comandos de KL.

Tabla 4.1: Costos para realizar el prototipo.

Herramientas Costo (pesos)


Computadora Personal 15,000.00
Impresora 5,000.00
Teclado MIDI 10,000.00
Total 30,000.00

Sol5 , formando ası́ el acorde de Do menor.

4.5. Estudio Económico

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.

Figura 4.6: Acorde menor.

56
Tabla 4.2: Costos para implementar el proyecto de forma comercial

Personal Costo (pesos) Total (Cálculo a 6 meses)(Pesos)


1 Ingeniero de software 30,000.00 180,000.00
2 Programadores 15,000.00 90,000.00
Herramientas Costo(pesos) Total (Cálculo a 6 meses)(Pesos)
Compilador 10,000.00 10,000.00
Estación de trabajo 30,000.00 30,000.00
Impresora 10,000.00 10,000.00
Software de graficación 10,000.00 10,000.00
Equipo MIDI 50,000.00 50,000.00
Total 380,000.00

4.6. Limitaciones y trabajos futuros

Actualmente el MCG trabaja en lı́nea de comandos del sistema operativo; es-


to puede parecer un poco simple, si estamos acostumbrados a trabajar con ambientes
gráficos, sin embargo a pesar de esta limitación, desempeña sus funciones adecuada-
mente de acuerdo a su diseño.
Mas adelante el MCG puede convertirse en una aplicación que interactue de for-
ma más sencilla con sus usuarios, para esto es necesario introducir algortimos de re-
des neuronales e inteligencia artificial, para el manejo de varios instrumentos MIDI
en forma paralela. También se planea adicionar una base de datos, para poder acce-
der a todas las notas de la escala musical y no solo a tonos definidos, de la misma
manera es posible diseñar una interfaz gráfica para facilitar el uso del sistema.
Es importante mencionar que este trabajo es una pequeña aportación al proyec-
to de KL, el cual seguirá enriqueciendose, para tener una herramienta que ayude al
compositor a acercarse a la tecnologı́a, en pro de su beneficio, sin necesidad de con-
tar con una infraestructura costosa y poco fácil de obtener.

57
Conclusiones

En este trabajo se presentó un sistema generador de acordes musicales, con el


fin de ayudar al estudiante de composición musical o a aquellas personas que gusten
de crear música, a realizar su obra de manera sencilla; esto da como resultado que
los costos de interpretación sean menores, ya que no es necesario contratar a musicos
profesionales para escuchar su obra y ası́ mismo poder realizar cambios a su obra si
lo cree coveniente.
Para su diseño se estudiaron primeramente conceptos musicales, desde el sig-
nificado de las notas y su manejo en el pentagrama, pasando por la formación de es-
calas hasta llegar a la construcción de los principales acordes en tono de Do.
El problema que se presentó fue diseñar el algoritmo adecuado; para ello se tomo
en cuenta que la escala diatónica tiene 7 notas y sigue una regla para su construcción,
que es: T T St T T T St donde T es un tono y St un semitono, entonces utilizamos
el modulo de un número, que sirve para recorrer la escala en forma automática. Por
ejemplo para una escala mayor, se obtenı́an los siguientes modulos: x %7 = 0 x %7 = 1
x %7 = 3 x %7 = 4 x %7 = 5 dependiendo del valor de x el modulo cambia y se ob-
tiene una constante igual a 2 para un tono y una constante igual a 1 para un semitono.
Se presentó la dificultad de no encontrar información accesible a la programación
de drivers multimedia para poder manipular los puertos de la tarjeta de sonido, por
lo que solo se utilizaron funciones básicas para este propósito, las cuales se mencio-
nan a continuación: midioutopen() para abrir el puerto MIDI, midioutshortmsg() para
enviar el mensaje MIDI al puerto y midioutclose() para cerrar el puerto de salida; el
uso de estas funciones permite enviar las notas o acordes, a través del puerto MIDI y

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.

[3] Peña G. M. “Cáptura de Multiples Eventos MIDI en tiempo de Ejecución”,


Inédita. México. Tesis que presenta para aspirar al grado de Doctor en Cien-
cias Ingeniero en Comunicaciones y Electrónica, Centro de Investigación y Es-
tudios avanzados del IPN, 2005. 160 pgs.

[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.

[6] Petzold Charles, Programming Windows, 5a Edición, Microsoft Press, 2000.


1479 pags.

60
Φ

61

S-ar putea să vă placă și