FECHA 20-06-2011
NÚMERO RAE
PROGRAMA Ingeniería de Sonido Universidad de San Buenaventura
AUTOR GONZÁLEZ Díaz, Sebastián
TÍTULO Diseño De Un Sistema Que Genera Animación A Partir De Secuencias Musicales MIDI
PALABRAS CLAVES animación, música, secuencia, midi, análisis, imagen, visual, académica, clásica, apreciación, programación, python, pure data, gem
DESCRIPCIÓN El presente Trabajo de Grado logra generar un sencillo lenguaje gráfico que traduce la música en imágenes sincrónicas; parte de las expresiones musicales académicas traducidas al protocolo de comunicación MIDI, para ser transformada la información haciendo uso del software libre, en órdenes de entorno gráfico, para estructurar dicha animación bajo los parámetros de la teoría musical, generando así una experiencia visual de la música controlada mediante una interfaz. El lenguaje visual creado puede dirigirse entre otras cosas a la enseñanza de la apreciación musical en todas las edades.
FUENTES BIBLIOGRÁFICAS
Bibliografía Sobre Lenguajes De Desarrollo De Programación, Midi Y Software ELEANOR SELFRIDGE-FIELD BEYOND
MIDI, The Handbook Of Musical Codes GEM “ENTORNO GRÁFICO PARA MULTIMEDIA”
(PAGINA OFFICIAL) http://www.iua.upf.edu/~csora/gmv/index.php
GONZALEZ DUQUE RAUL
Python para todos JOHANNES KREIDLER
Loadbang: Programming Electronic Music in Pure Data PURE DATA (PAGINA OFFICIAL)
http://puredata.info/
Python PROGRAMMING LANGUAGE (PAGINA OFFICIAL) http://www.Python.org
Bibliografía Sobre Imagen D. A. DONDIS
La Sintaxis de la Imagen DE MORENTIN JUAN MAGARIÑOS
Lo que explica la semántica visual JOSÉ Mª GONZÁLEZ-SERNA SÁNCHEZ
Sintaxis de la Imagen [en línea] Semántica de la Imagen [en línea] < http://www.auladeletras.net/mat_med.html#>
MAGARIÑOS DE MORENTIN, J
La(s) semiótica(s) de la imagen visual.,Cuadernos 17, Revista de la Facultad de Humanidades y Ciencias Sociales de la Universidad Nacional de Jujuy; noviembre,
PEP ALSINA, FREDERIC SESÉ
El área de educación musical Historia de la música con propuestas didácticas y 49 audiciones
KANDINSKY
Punto y línea sobre el plano De lo Espiritual en el Arte
Bibliografía Sobre Visualization Musical Y Teoría Musical ALVIRA RODRÍGUEZ JOSÉ
Teoría Musical; Aprendizaje [en línea]. http://teoria.com/aprendizaje/lectura/15-armaduras.htm
ANIMUSIC
Pagina Oficial [en línea] http://www.animusic.com/ BACH, J. S.
Inventions & Sinfonies BWV 772-801 “Clavierbüchlein vor Wilhelm Friedemann Bach” Clave bien temperado BWV 846-869 y BWV 870-893
DRA. ANA MARÍA SEDEÑO VALDELLÓS
Artículo publicado en Julio del 2007 en la revista nº 0004 de Sinfonía Virtual, España
DR. H. RIEMANN
Analysis of J. S. Bach’s Wohltemperirtes Clavier HELEN L. KAUFMANN
The Home Book of Music Appreciation KLAUS EIDAM
La verdadera vida de Johann Sebastian Bach LLOYD ULTAN
Music theory: problems and practices in the Middle Ages and Renaissance
MUSIC ANIMATION MACHINE
Página Oficial [en línea] http://www.musanim.com/mam/mamhist.htm
ROSEN, CHARLES:
Bach y Händel, La Música para Teclado STEPHEN ANTHONY MALINOWSKI
Computer-Assisted Performance music animation machine http://www.musanim.com (pagina official)
THOMAS WHITNEY SURETTE
The Appreciation of Music WILLI APEL
Harvard dictionary of music
NÚMERO RAE
PROGRAMA Ingeniería de Sonido Universidad de San Buenaventura
CONTENIDOS Descompilado de archivos MIDI en python Filtrado de tipos de mensajes MIDI Construcción de herramienta de análisis y métodos musicales para una secuencia MIDI haciendo uso de matrices concatenadas Análisis de alteraciones y búsqueda de la tonalidad Uso de la tonalidad para la búsqueda de notas triadas y pertenecientes a los grados de la escala en la secuencia Lista de ordenes con el protocolo Qlist para Pure Data Mover archivos entre directorios de Windows El secuenciador Qlist El protocolo MIDI en Pure Data Animación en Gem Programación haciendo uso de la función curve3d para la creación del escenario Programación de color y de luces con la función spot light Programación de las esferas animadas Programación de la interfaz gráfica en Tkinter
METODOLOGÍA Enfoque De La Investigación El enfoque para este proyecto es empírico-analítico porque su fin está hallado en el hacer como creación donde la principal pregunta para su realización es el “cómo”, y puede llegar a ser diseñado, cuyo producto (el sistema) proviene de una estructura en particular a la metodología de investigación orientando el trabajo a la contrastación permanente de las aseveraciones teorías como aseveraciones teóricas musicales, la semiología y la semántica de la imagen trasformadas a través de métodos tecnológicos hallados en los lenguajes de programación dando como fin un sistema que transforma los procesos musicales, en procesos visuales. El núcleo problémico de este proyecto está desarrollado dentro del núcleo de “Análisis y Procesamiento de Señales”, ya que el sistema consiste en tomar una señal lineal (información MIDI en código binario) y transformarla en una señal bidimensional (imagen) que varía en el tiempo. En detalle, se está diseñando una herramienta mediante la programación que, vinculando varios software, logra crear un método de análisis para el protocolo MIDI, que a su vez genera información necesaria para que un software de animación actúe respecto de dicho análisis. Todo es controlado por una interfaz gráfica que enlaza la herramienta de análisis con el software que genera la animación y un secuenciador MIDI. La línea de investigación de la facultad en este proyecto que, como ya se mencionó, se desarrolla dentro del campo de “Análisis y Procesamiento de Señales (APS)”, busca, a través de los métodos y la conceptualización del campo de la ingeniería de sonido, instrumentar el desarrollo de nuevas tecnologías encaminadas al apoyo de la composición y la enseñanza de la apreciación musical, creando un sistema novedoso de automatización de la animación, mediante la construcción, análisis y enlace de programas, a partir de la información musical encontrada en el protocolo MIDI. La línea de investigación de la universidad dentro de las líneas de investigación de la Universidad de San
Buenaventura y de acuerdo con el Consejo de Investigación Bonaventuriano (CIB), éste proyecto se inscribe en la línea “Tecnologías actuales y sociedad”, ya que busca desarrollar una interfaz interactiva, a través de la actualización constante de los conocimientos tecnológicos y por medio de software libre, relacionando de una forma directa la estructura y la teoría musical con un lenguaje visual sincrónico, generando animaciones, para el apoyo y desarrollo de la composición y de la apreciación musical, facilitando la enseñanza del contrapunto musical y contribuyendo al desarrollo de la educación musical en la sociedad.
Hipótesis Utilizando software libre, diseñar un sistema que permita relacionar la teoría musical y la expresión gráfica con el fin de crear un método dirigido hacia la enseñanza de la apreciación musical.
Variables
Variables Independientes
- Elementos la teoría musical hallados en las Invenciones y Sinfonías, y el Clave Bien Temperado.
- Secuencias con el protocolo de comunicación MIDI - Programación y edición del color - Programación y edición de la luz - Programación y edición del plano - Programación y edición de las esferas
Variables Dependientes
- Descompilado de archivos MIDI - Filtrado de tipos de mensajes MIDI - Análisis y métodos haciendo uso de matrices
concatenadas - Análisis de alteraciones, tonalidad, grados de notas
y triadas en la secuencia - Lista de eventos generada en protocolo Qlist - Secuenciador Qlist para la animación y para el
sintetizador o muestreador - Acción de la animación para el conjunto de
elementos desarrollados en GEM - Interfaz Gráfica
Proceso Para el desarrollo del sistema se ha creado una estructura metodológica que desglosa cada una de las etapas de la siguiente manera: • Generar un protocolo de información que haga uso de la secuencia MIDI para que Pure Data sea capaz de enviar información MIDI hacia un instrumento virtual, en tiempo real. • Generar un programa para que el software de animación GEM entienda la información recibida y la ejecute en tiempo real. • Crear un lenguaje visual sencillo para representar varios elementos de la estructura musical. • Crear la comunicación necesaria para que Pure Data entienda las órdenes generadas por el programa de análisis y genere la animación. • Hacer una interfaz gráfica que permita manipular y enlazar los programas que deben ser usados. Para éste proyecto se ha escogido el contrapunto, que es una rama de la teoría musical que estudia la composición de música polifónica, mediante el enlace de dos o más melodías. Sin embargo, como este campo es bastante amplio en toda la música académica y sería muy ambicioso cubrir todo el contrapunto, se han escogido las “Invenciones y Sinfonías” BWV 772-801, de Johann Sebastian Bach, que son 30 breves piezas para piano, que sirven tradicionalmente al aprendizaje del contrapunto y que tuvieron el fin de enseñar al hijo del compositor; Friedman, la polifonía . Las Invenciones son 15 piezas a dos voces y las Sinfonías son 15 piezas a tres voces. Bach, al componerlas, usó las escalas más sencillas,
haciendo un pequeño clave bien temperado didáctico para sus hijos . Luego se tomaron los dos libros de “El Clave Bien Temperado” BWV 846-869 y BWV 870-893, que son un conjunto grande de partituras usadas para el estudio de la interpretación polifónica, como también un referente cumbre para el estudio de la forma musical del periodo barroco en cuanto al preludio y la fuga . Cada libro posee 24 grupos constituidos por un preludio y una fuga en todas las tonalidades mayores y menores de la gama cromática completando toda la escala cromática de mayor a menor. Es, por tanto, una colección enorme que comprende 48 preludios y 48 fugas cuyo contenido es a la vez musical, teórico y didáctico. Este trabajo está inicialmente dirigido hacia niños que ya tengan conocimientos musicales y nociones de armonía y contrapunto , así como también a jóvenes que tengan la capacidad o estén cerca de interpretar las obras de “El Clave Bien Temperado”. Entonces, la interfaz mostrará a los usuarios, por medio de dos canales de comunicación: auditivo y visual, la forma cómo la música ha sido escrita y estudiada, con lo cual las obras podrán ser entendidas mucho más didácticamente, introduciéndolos en el significado y las estructuras en las cuales se escribieron.
CONCLUSIONES El concepto de sinestesia para aquellas personas que no la poseen (non-sinestésicos), les puede hacer pensar en cuáles serían las posibilidades, si en ellas existiera esta singularidad (como problema o virtud) generando otros panoramas de percepción y por ende reacciones psicofísicas, ampliando su capacidad de concepción de la realidad. Hacer visual la música es la meta que nace con este proyecto en donde a la final y de cualquier manera va a existir un arte que va a germinar en otro arte. En este proyecto logra crear una base para futuros desarrollos tecnológicos relacionando con la música, la programación y la animación. Dicha base amplía el conocimiento de los sistemas exponiendo claramente diferentes rutas para analizar, procesar y transformar la información, mediante el desarrollo de los recursos de software libre. Ofrece un variado panorama de posibilidades a quienes busquen en el tema ampliar el
conocimiento y crecimiento de la tecnología, especialmente para el software que es de todos y para todos (Open Source). Para que el programa fuera capaz de hallar los resultados esperados, es decir, que procesara la estructura musical, se tuvo que partir de información binaria hallada en el protocolo de comunicación y haciendo uso de pequeños programas, diseñar métodos de análisis que vayan descifrando la información numérica hasta lograr informaciones básicas sobre la estructura musical, teniendo en cuenta que dicho protocolo no se ha diseñado en si para la escritura musical sino más bien fue creado para la comunicación musical; “los archivos MIDI están diseñados para reproducir música, y no para la notación musical o impresión; en otras palabras, los archivos no incluyen información sobre la notación como ligaduras, articulaciones y/o maquetación. Tampoco puede discernir la escritura enarmónica (como la diferencia entre Fa# y Solb) ”. Es decir, el proyecto logró desarrollar un programa capaz de interpretar la información musical de un protocolo de comunicación estándar y espera llegar a descifrar procesos más complejos de la teoría musical, como las funciones armónicas y las formas musicales. Es un objetivo logrado haber creado las herramientas para que el desarrollador interesado pueda, haciendo uso de la programación, reconocer los procesos musicales, mediante un solo sistema que analiza innumerables posibilidades de escritura en archivos MIDI. Una de estas herramientas consiste en tomar la secuencia y diferenciar las notas alteradas de la misma, continuar con la aclaración de la información enarmónica y descubrir si las notas alteradas son sostenidos o bemoles hasta, finalmente, dar con la tonalidad mayor o menor en la que fue compuesta la pieza. Otra herramienta lograda que parte de la anterior, es la que genera la visualización de un flujo de eventos de manera matricial sin perder de vista las propiedades armónicas musicales de la secuencia; y que está bastante cerca de poder discernir las líneas melódicas de una pieza polifónica; además, ya es un recurso que facilita el análisis de las funciones armónicas. Como instrumento de enseñanza, el programa puede
expresar de manera visual conceptos como ritmo, altura, intensidad, consonancia y disonancia; notas únicas o simultáneas; tonalidades mayores y menores; grados de la escala y triadas pertenecientes a los grados del a escala. Logra intuir la polifonía musical aproximándose a la separación de líneas musicales y también ayuda a discernir diferencias musicales como tipos de piezas, compositores, periodos musicales con simplemente visualizar la animación. De esta manera cumple el objetivo de convertirse en una herramienta para la enseñanza de la apreciación musical. Faltaría solamente evidenciarlo y demostrarlo mediante disciplinas inherentes a la comprobación y el desarrollo de pruebas educativas, psicofísicas y otras disciplinas relacionadas. Para llegar a los resultados visuales, el proyecto, tuvo que experimentar variadas relaciones gráficas, unidas a los conceptos musicales, convocando así al nacimiento intrínseco de un nuevo ”lenguaje” de comunicación musical. Este sistema está más cerca de alcanzar un tipo de experiencia sinestésica, provocando también una base para la creación más acertada del fenómeno sincrónico visual-musical. Otro logro es instrumentar la relación del protocolo MIDI con el secuenciador Qlist de Pure Data, convirtiéndolo en un medio de transformación del lenguaje binario de un archivo MIDI a un archivo con el protocolo Qlist. La ventaja es que cualquier programador en Python puede valerse de este desarrollo y aprovechar el sistema para extraer información del protocolo MIDI para emplearlo en su propio beneficio. Otro beneficio es haber logrado la entrada de una secuencia MIDI a Pure Data obteniendo variables fáciles de manejar. En el campo de la animación, la posibilidad de usar la curva 3d (el plano) fue implementada de manera sencilla, al desarrollar un sistema que permite la variación de valores en los tres ejes cartesianos, de manera que se pueden desplazar de una manera ordenada y cómoda. Mediante esta creación se pueden experimentar muchas formas y unir éstas variables controladas creando movimiento del plano en tiempo real. Otro desarrollo que facilitó el proceso de animación fue la creación de un
control simple para transformar rápidamente los valores RGB, logrando tener todas las gamas de color en un simple control, así mismo para esta aplicación se diseño otro control con el que se puede degradar u oxidar el color sin perder la tonalidad de color original. Una aplicación más consistió en hacer un centro de mando para manipular las propiedades de las luces y a la cual se le añadió la aplicación de color; es decir, que para posteriores desarrollos en GEM ya no sería necesario programar cada luz sino que al utilizar ésta estructura se tiene acceso a grandes posibilidades para la luz y su color. En conclusión los programas creados en Pure Data fueron desarrollos para hacer posible la rápida manipulación de las animaciones en tiempo real del entorno gráfico GEM, mediante estructuras diseñadas, facilitando el uso de las propiedades y de los objetos de animación. Los recursos y las posibilidades encontrados en el software libre son poderosas y suficientes para desarrollos posteriores del sistema. Además, la comunidad que rodea el código abierto es supremamente bondadosa en facilitar el aprendizaje de las herramientas Open Source.
DISEÑO DE UN SISTEMA QUE GENERA ANIMACIÓN
A PARTIR DE SECUENCIAS MUSICALES MIDI
SEBASTIÁN GONZÁLEZ DÍAZ
20043167068
UNIVERSIDAD DE SAN BUENAVENTURA
FACULTAD DE INGENIERÍA
PROGRAMA DE SONIDO
BOGOTÁ
2011
DISEÑO DE UN SISTEMA QUE GENERA ANIMACIÓN
A PARTIR DE SECUENCIAS MUSICALES MIDI
SEBASTIÁN GONZÁLEZ DÍAZ
20043167068
Proyecto de Grado
UNIVERSIDAD DE SAN BUENAVENTURA
FACULTAD DE INGENIERÍA
PROGRAMA DE SONIDO
BOGOTÁ
2011
Nota de aceptación
______________________________
______________________________
______________________________
______________________________
______________________________
______________________________
Jurado
______________________________
Jurado
Bogotá, 30 de mayo de 2011
AGRADECIMIENTO
Primero que nada doy gracias a Él Todo, de quien nace y se crea la primera causa, por la cual todos provenimos y existe la unidad, es por él que puedo ser y tengo la fortuna de poder modificar la materia y la energía para crear. No podría faltar mi madre, María Fernanda Díaz, gracias a su ejemplo y su gran valentía he salido adelante, su fuerza y coraje que nos ha impulsado a mí y a toda la familia por ser cada día mejores. A mi padre, José Luis González, su sabiduría y consejos aunque a veces necios, me dieron la visión para el desarrollo de este proyecto, gracias por toda su ayuda; el cariño de mi abuelita, la paciencia de Santiago, el apoyo de Natalia y la compañía de Simón. Son muchas más las personas a las que debo y quiero agradecer, todas y cada una de ellas que me prestaron atención y contribuyeron a esta idea, entre ellos quiero destacar a: Ingeniero Carlos Andrés Cabas El Señor Hernán Espinoza Doctor Jaime Durán Maestro Jaime Morán Ingeniero Luis Andrés Murcia Físico Luis Jorge Herrera Ingeniero Manuel Dávila Ingeniero Miljail Posada Diseñador Oscar Mauricio Reyes La Señorita Roxana Puente Por último agradezco la maravillosa contribución de los desarrolladores en código abierto, creadores de programas que hicieron posible la construcción de éste sistema como MIDICSV, Python, Pure Data y GEM, Rose Garden; para ellos mi más profunda admiración por su trabajo.
RESUMEN
El presente Trabajo de Grado logra generar un sencillo lenguaje gráfico que
traduce la música en imágenes sincrónicas; parte de las expresiones musicales
académicas traducidas al protocolo de comunicación MIDI, para ser transformada
la información haciendo uso del software libre, en órdenes de entorno gráfico, para
estructurar dicha animación bajo los parámetros de la teoría musical, generando
así una experiencia visual de la música controlada mediante una interfaz. El
lenguaje visual creado puede dirigirse entre otras cosas a la enseñanza de la
apreciación musical en todas las edades.
TABLA DE CONTENIDO
INTRODUCCIÓN ..............................................................................................................................7
1. PLANTEAMIENTO DEL PROBLEMA ..............................................................................8
1.1. ANTECEDENTES .............................................................................................................8
1.2. DESCRIPCIÓN Y FORMULACIÓN DEL PROBLEMA ........................................... 13
1.3. JUSTIFICACIÓN ............................................................................................................ 14
1.4. OBJETIVOS DE LA INVESTIGACIÓN ...................................................................... 17
1.4.1. OBJETIVO GENERAL ........................................................................................................ 17
1.4.2. OBJETIVOS ESPECÍFICOS .............................................................................................. 17
1.5. ALCANCES Y LIMITACIONES DEL PROYECTO .................................................. 18
1.5.1. ALCANCES .......................................................................................................................... 18
1.5.2. LIMITACIONES .................................................................................................................... 19
2. METODOLOGÍA ................................................................................................................ 20
2.2. HIPÓTESIS ..................................................................................................................... 25
3. NUCLEOS PROBLÉMICOS / LÍNEA DE INVESTIGACIÓN DE LA FACULTAD /
LÍNEA DE INVESTIGACIÓN DE LA UNIVERSIDAD .............................................................. 25
3.1. NÚCLEOS PROBLÉMICOS ........................................................................................ 25
3.2. LÍNEA DE INVESTIGACIÓN DE LA FACULTAD ................................................... 25
3.3. LÍNEA DE INVESTIGACIÓN DE LA UNIVERSIDAD .............................................. 26
4. MARCO DE REFERENCIA .............................................................................................. 26
4.1. MARCO TEÓRICO – CONCEPTUAL ........................................................................ 26
4.1.1. PYTHON ................................................................................................................................ 26
4.1.2. TKINTER ............................................................................................................................... 28
4.1.3. MIDICSV ................................................................................................................................ 28
4.1.4. COMUNICACIÓN OPEN SOUND CONTROL ................................................................ 29
4.1.5. PURE DATA ......................................................................................................................... 30
4.1.6. MIDI ........................................................................................................................................ 31
4.1.7. TEORÍA MUSICAL .............................................................................................................. 32
4.1.8. SIGNIFICADO DE LA APRECIACIÓN MUSICAL ......................................................... 32
4.1.9. LA IMAGEN .......................................................................................................................... 34
4.2. MARCO LEGAL O NORMATIVO ............................................................................... 34
4.2.1. LICENCIA DE MIDICSV ..................................................................................................... 34
4.2.2. LICENCIA DE Python Y TKINTER .................................................................................. 35
4.2.3. LICENCIA DE PURE DATA Y GEM ................................................................................. 35
5. DESARROLLO INGENIERIL ........................................................................................... 37
5.1. ESTRUCTURA DEL PROGRAMA ............................................................................. 37
5.2. DESCOMPILADO DE ARCHIVOS MIDI EN PYTHON ........................................... 39
5.3. CONTEO DE EVENTOS ON Y OFF ........................................................................... 40
5.4. FILTRADO, LISTAS, Y EVENTOS IMPORTANTES ............................................... 41
5.5. HERRAMIENTA DE ANÁLISIS ................................................................................... 43
5.6. MÉTODO DE ANÁLISIS MÚSICAL PARA UNA SECUENCIA MIDI ................... 51
5.6.1. MATRIZ CONCATENADA “evnt=[ ]” DE NOTAS SIMULTANEAS POR DURACION ............................................................................................................................................. 53
5.7. ANÁLISIS - SECUENCIA MIDI - TEORÍA MUSICAL ............................................. 56
5.7.1. DICCIONARIOS REQUERIDOS PARA EL ANÁLISIS ................................................. 57
5.7.2. ANÁLISIS DE ALTERACIONES Y BÚSQUEDA DE LA TONALIDAD ...................... 59
5.7.3. DEFINIENDO LA TONALIDAD ......................................................................................... 66
5.7.4. USO DE LA TONALIDAD .................................................................................................. 71
5.7.5. TRIADAS Y FUNCIONES ARMÓNICAS DE LA SECUENCIA ................................... 75
5.7.6. LISTA DE ORDENES PARA PURE DATA ..................................................................... 77
5.8. MOVER ARCHIVOS GENERADOS AL DIRECTORIO GEM ................................ 88
5.9. PROGRAMACIÓN EN PURE DATA .......................................................................... 88
5.9.1. QLIST, PYPD, SECUENCIA DE EVENTOS ................................................................... 89
5.9.2. PROTOCOLO MIDI EN PURE DATA .............................................................................. 92
5.9.3. VENTANA DE ANIMACIÓN GEM .................................................................................... 93
5.9.4. PROGAMACION DEL PLANO CURVE3D ...................................................................... 94
5.9.5. PROGRAMACIÓN DE COLOR Y DE LUCES SPOT LIGHT ....................................... 96
5.9.6. PROGAMACIÓN DE LAS ESFERAS ............................................................................ 109
5.9.7. PROGRAMACIÓN DEL COLOR DE NOTAS PARA .................................................. 115
5.9.8. MONITOR ............................................................................................................................ 118
5.10. PROGRAMACIÓN DE LA INTERFAZ GRÁFICA EN TKINTER ..................... 119
5.10.1. ESTRUCTURA DE LA INTERFAZ ................................................................................. 120
5.10.2. INICIANDO EL PROGRAMA ........................................................................................... 121
5.10.3. LA FUNCIÓN __INIT__ ((( MUSIC ))) ((( GARDEN ))) .............................................. 122
5.10.4. LA FUNCIÓN INICIO ......................................................................................................... 123
5.10.5. LA FUNCIÓN BUSCAR .................................................................................................... 125
5.10.6. LA FUNCIÓN AUXSLCTON ............................................................................................ 130
5.10.7. LA FUNCIÓN SLCTON .................................................................................................... 132
5.10.8. LA FUNCIÓN AXMG ......................................................................................................... 133
5.10.9. LA FUNCIÓN MG .............................................................................................................. 134
5.10.10. LA FUNCIÓN AUXABRIRPD ...................................................................................... 135
5.10.11. LA FUNCIÓN ABRIRPD .............................................................................................. 136
5.10.12. LA FUNCIÓN AUXVENTANA ..................................................................................... 137
5.10.13. LA FUNCIÓN VENTANA ............................................................................................. 138
5.10.14. LAS FUNCIONES TEST 1 ,2, 3, 4 .............................................................................. 139
5.10.15. LA FUNCIÓN AUXPLAYSTOP ................................................................................... 140
5.10.16. LA FUNCIÓN PLAY ...................................................................................................... 141
5.10.17. LA FUNCIÓN STOP ...................................................................................................... 141
5.10.18. LA FUNCIÓN SALIR .................................................................................................... 142
6. PRESENTACIÓN Y ANÁLISIS DE RESULTADOS .................................................. 142
6.1. REQUISITOS PARA LA EJECUCION DE MUSIC GARDEN .............................. 142
6.2. INICIO DE LA INTERFAZ GRÁFICA ....................................................................... 143
6.3. ANIMACIÓN ................................................................................................................. 150
6.3.1. ALTURA Y PALETA DE COLORES POR TONALIDAD ............................................ 150
6.3.2. TONALIDADES MAYORES Y MENORES .................................................................... 151
6.3.3. VELOCIDAD DE NOTA PIANO-FORTE ........................................................................ 152
6.3.4. NOTAS SIMULTÁNEAS CONSONANCIAS Y DISONANCIAS ................................ 152
6.3.5. GRADOS DE LA ESCALA Y TRIADAS ........................................................................ 153
6.4. DETRÁS DE LA INTERFAZ Y LA ANIMACIÓN .................................................... 155
7. CONCLUSIONES Y RECOMENDACIONES .............................................................. 158
7.1. CONCLUSIONES ........................................................................................................ 158
7.2. RECOMENDACIONES ............................................................................................... 161
8. BIBLIOGRAFÍA ................................................................................................................. 163
GLOSARIO .................................................................................................................................... 166
INTRODUCCIÓN
En la década de los 60´s Stephen Anthony Malinowski, compositor americano e
ingeniero de software, tuvo la idea de usar las nuevas tecnologías de la
información para ver la música. Graficó mediante software las líneas melódicas de
una sonata de Bach para violín, donde hizo que dichas líneas siguieran la música.
Así, empezó a diseñar y a construir una máquina de animación musical, que
finalmente se convirtió en un programa que representa las voces musicales
mediante imágenes abstractas y logra un fuerte vínculo entre la música y la
imagen. A partir de estos primeros logros poco a poco surge la idea de generar
animaciones a partir de los principios de la música, cuya estructura, establecida
mediante el análisis de programación de sistemas, es llevada hacia el control de
la animación. Para facilitar dicho análisis se usa el protocolo MIDI.
El Proyecto de Grado es una alternativa para el procesamiento de la información
musical hallada en una secuencia MIDI, que establece, a través de la
programación, métodos de análisis que posibilitan la exploración musical de
dichos eventos. Crea un enlace entre música e imagen en movimiento en tiempo
real que permite la exploración de nuevas secuencias.
Uno de los aportes más significativos de este Proyecto es el uso de software libre,
de uso y distribución gratuita, lo que hace que el producto sea accesible a todo el
público y que no requiera de mayores recursos. Por lo tanto el Proyecto es firme
en el propósito de que los desarrollos logrados compartan la filosofía de software
libre y que su código fuente esté abierto para quienes deseen modificarlo de
acuerdo con la Licencia Pública General de GNU Opening Service, llamada
comúnmente GPL de GNU1.
1 GNU Operating System [en línea]. < http://www.gnu.org/licenses/quick-guide-gplv3.html > [citado en
06/04/11 de 2011]
1. PLANTEAMIENTO DEL PROBLEMA
1.1. ANTECEDENTES
La visualización de la música puede rastrearse desde las primeras intenciones del
hombre de plasmar con grafismos su estructura. La manera fundamental de
visualizar la música es la propia escritura musical y una parte de la paleografía
(ciencia que estudia las escrituras antiguas) que se centra en la escritura musical,
se refiere a la “notación”, del latín notatione-notationis, que se refiere a la
representación de la música por medio de signos convencionales. Draffkorn-Kilmer
encontró una tablilla datada hacia el 1500 a.C. que habla del Himno a la Creación;
en Grecia el fragmento más antiguo es un papiro que contiene un pasaje coral de
una comedia de Orestes. s. I a.C. Siglos más tarde aparecen las notaciones
neumáticas latinas como una manera más evolucionada de visualización de la
música, que relativamente aparece entre el s. VIII y el s. IX, junto con el uso de
puntos o marcas, donde cada uno de esos puntos representa una nota.
Posteriormente hacia el s. X en la notación diastemática los neumas están
cuidadosamente situados distanciándose según su altura en relación a una línea;
después aparece la notación cuadrada y para el s. XI al s. XII se puede decir que
aparece la notación polifónica primitiva y la idea de tono y semitono. Este sistema
funciona con tetracordos pero que no parten del de abajo sino del central
(re,mi,fa,sol)2.
En el s. XI aproximadamente entre los años 992 al 1050, el monje benedictino
Guido de Arezzo desarrollo de la notación absoluta de las alturas (en la que cada
nota ocupa una posición en la pauta de acuerdo con la nota deseada), fue el
idealizador del solfeo, sistema de enseñanza que permite al estudiante cantar los
2 HISTORIA DE LA NOTACIÓN: Dra. Beatriz Montes [en línea].
[citado en 07-04-
2011]:
nombres de las notas, los nombres fueron sacados de las primeras sílabas
iniciales de un Himno a San Juan Bautista, llamado Ut queant Laxis, escritas por el
historiador lombardo Pablo el Diácono, en el Siglo VIII. Posteriormente, en el siglo
XVII, Giovanni Battista Doni sustituyó la nota ut por do, que facilitaba el solfeo por
terminar en vocal y creando así el sistema de notación con pautas de cinco líneas
que se convirtió en el patrón para toda la música occidental manteniéndose así
hasta el día de hoy3.
Ut queant laxis Para que puedan
Resonare fibris Con toda su voz
Mira gestorum Cantar tus maravillosas
Famuli tuorum Hazañas estos tus siervos,
Solve polluti Deshaz el reato de
Labii reatum Nuestros manchados labios
Sancte Ioannes ¡Oh, bendito San Juan!4
Otro de los grandes hechos que contribuyen a la visualización de la música es la
ópera, “obra teatral cuyo texto se canta, total o parcialmente, con acompañamiento
de orquesta”5 y que aparece entre las décadas de 1570 y 1580, desarrollado por
artistas y profesores llamados la Camerata Florentina en torno al conde Giovanni
Bardicon con el fin de dar vida nuevamente al arte dramático de la antigua
Grecia6.
La historia de los primeros pasos de sincronización de la imagen y el sonido,
aparece en el cine sonoro. Los hermanos Lumiére, en 1897, contrataron un
cuarteto de saxofones para que acompañase a sus sesiones de cinematógrafo en
su local de París y hubo compositores de valía, como Saint-Saéns que 3 Ibíd. (HISTORIA DE LA NOTACIÓN: Dr. Beatriz Montes [en línea]).
4 Lloyd Ultan: Music theory: problems and practices in the Middle Ages and Renaissance (pag 32)
5Diccionario De La Lengua Española RAE [en línea].
>http://buscon.rae.es/draeI/SrvltConsulta?TIPO_BUS=3&LEMA=cultura > [citado en 07-04-2011] 6 Historia de la Ópera desde sus orígenes hasta los Musicales: Rojas Zeledón Ivette [en línea].
[citado en 07-04-2011]
compusieron partituras para acompañar la proyección de una película. En 1877
usando el fonógrafo y el cinematógrafo y gracias a los inventos de Thomas Alba
Edison, se echan las bases de la sincronización imagen-audio. En el año 1893, el
físico francés Démeny inventó lo que se llamó fotografía parlante y en 1922 Jo
Engel, Hans Vogt y Joseph Massole presentan el primer film, Der branstifer
incorporando las aportaciones del ingeniero norteamericano Lee de Forest, dando
lugar al Movietone, entonces Lee de Forest presenta su invento llamado Phonofilm
que grababa el audio encima de la película. Nuevamente Lee de Forest en 1926,
por medio de la Warner Brothers, logra un producto mejorado llamado el
Vitaphone de sincronización disco-imagen con la que graba una pieza interpretada
por la New York Philarmonic Orchestra, una pieza de violín tocada por Mischa
Elman, una audición de la cantante Anna Case y la película de Alan Crosland, Don
Juan. Finalmente Iwan Serrurier en 1924 crea la Moviola como una gran
innovación en la edición de películas en film7.
La imagen construida a partir de la música puede hallar una referencia directa en
la película “Fantasía” De Walt Disney en 1940. Su característica principal es que
se trata de una animación con música académica y casi no hay diálogos. Fue
grabada bajo la dirección de Leopold Stokowski y siete de las ocho piezas fueron
interpretadas por la Orquesta de Filadelfia. El arte animado posee diferentes
grados de abstracción o de la literalidad utilizada con el fin de ilustrar y acompañar
el concierto de varias formas visuales8.
También como antecedente existe el Videoarte que nació con la creación
magnetoscopio –portapack- que Sony envía a EE.UU., a Nueva York
concretamente, y que compra el músico Nam June Paik y que dio lugar a un
extenso conjunto de acciones y tipos de obras artísticas entre las que se
encuentran las videoinstalaciones, las videoperformances, los videoambientes y
7Enrique Martínez-Salanova Sánchez: EL Cine Sonoro [en línea].
[citado en 07-04-2011] 8 Tomlinson Holman: Surround Sound Up And Runnig (pag 4, 16)
las videoesculturas. Durante los primeros años del vídeo se produjo una frecuente
y fructífera colaboración entre los artistas de la música y los artistas de la imagen.
Paik procedía de la música electrónica y John Cage era, a través de Paik, el
músico de vanguardia que más cerca estuvo de la creación videográfica. Por su
parte, Gary Hill investigó las relaciones entre sonido e imagen hasta conseguir
visualizar sus vibraciones y reproducir la estructura de la materia sonora en la
gama de grises de la imagen en blanco y negro, como sucede en Elements
(1978), Sums & Differences (1978) y Soundings (1979). Consigue, en esta última
cinta, convertir el sonido en movimientos y sensaciones táctiles, a través de las
imágenes del altavoz que modifica los materiales con los que entra en contacto”9.
Un fuerte referente nace en 1989 donde Wayne Lytle funda la Animusic con el fin
de animar la música de instrumentos. Este artista ha ganado premios y se ha
presentado en diversos contextos electro-acústicos a nivel mundial. En 1991 Lytle
recibió un premio de IBM para su primer trabajo en la animación de la música. En
1995 Lytle trabajó con el artista David Crognale, creando una animación
estereoscópica para VRex, la premiada versión llamada “Concierto en 3D”, y la
versión normal llamada “Más allá de los Muros”, después publicó “Animusic:
Special Edition” en DVD con sonido envolvente 5.1, después publicó “Animusic 2”
y ya anunció la publicación de “Animusic 3.”10 Sin embargo las visualizaciones en
tiempo real a partir de una señal solo se dan cuando aparecen los reproductores
de audio en los computadores personales. Es así como en 1985 con un software
llamado “Sound to Light Generator”, muy usando para mediados y finales de los
noventas, se implementaron programas como Winamp, Audion, y el SoundJam.
Luego aparece Cthugha en 1994 para DOS y después, en 1999, ya había varias
docenas de software que se distribuían libremente para la visualización musical.
En particular el MiljDrop creado por Ryan Geiss, G-Force por Andy O'Meara, y
Advanced Visualization Studio (AVS) por Nullsoft, fueron grandes visualizadores
9 Dra. Ana María Sedeño Valdellós: Artículo publicado en Julio del 2007 en la revista nº 0004 de Sinfonía
Virtual, España (pag 4). 10
Animusic: (página oficial) [en línea]. [citado en 07-04-2011]
de música, AVS ahora es parte de Winamp y publicó su código fuente para libres
desarrollos (open-sourced); G-Force un producto de la compañía de Andy
O'Meara (creadora del SoundSpectrum), fue aprobada para su uso en iTunes, y en
Windows Media Player11.
Otras opciones que han crecido con el pasar de los tiempos son software que se
utilizan para mezclar videos en tiempo real, fenómeno al que se le ha llamado
videojockey o VJ y que consiste en la actividad de proyectar visuales sobre la
performance musical de un discjockey; su antecedente originario está en la
“Factory” de Andy Warhol, donde había personajes que sincronizaban imágenes
proyectadas como fondo a las bandas que tocaban allí. Otros maestros son Lucky
People Centre o Exploding Cinema. Más tarde, en los ochenta, se da el auge de
ciertas bandas y artistas como Kevin Godley & Lol Creme y sus videoclips y el
fenómeno de la música dance. Su desarrollo se ha acelerado desde la aparición
de ciertas condiciones tecnológicas que han ampliado el número de posibilidades
y han hecho más accesible el acceso a esta actividad12.
Finalmente quien más se ha acercado al propósito de generar imágenes a partir
de la música como apreciación musical en tiempo real es el mencionado Stephen
Anthony Malinowski, quien en 1981 decide escribir un programa mediante una
maquina llamada ATARI 800 (BASIC, FORTH, 6502 Assembler); en 1983 con la
aparición de MIDI Malinowski fue puliendo cada vez más su proyecto hasta lograr
la Music Animation Machine que existe hoy en día13.
11
PRIETO, Darío: “Imágenes de recorta y pega: Música de colores” en La Luna del Siglo XX, n. 230, 11 de
julio de 2003 12
Dra. Ana María Sedeño Valdellós: Artículo publicado en Julio del 2007 en la revista nº 0004 de Sinfonía
Virtual, España. 13
Music Animation Machine (página official) [en linea].
[citado en 16/10/09 de 2009]
1.2. DESCRIPCIÓN Y FORMULACIÓN DEL PROBLEMA
A lo largo de la historia el ser humano buscó visualizar la música y representarla
de forma gráfica, desde la primitiva notación musical, pasando por el arte
operático y el cine, hasta las últimas interfaces digitales; de tal manera que, cada
vez más, los últimos desarrollos tecnológicos e industriales han logrado traducir la
creación auditiva en una creación visual que corresponda con el sentido del arte
musical. Sin embargo, a pesar de los numerosos intentos de representar la música
visualmente, no se ha aprovechado suficientemente las nuevas tecnologías
digitales para convertir la información musical en un lenguaje gráfico coherente
con su estructura teórica en tiempo real y en aplicar estos logros a la enseñanza
musical. Aún no se ha desarrollado, a través de la ingeniería, un algoritmo que
permita “transformar” la música, mediante el protocolo MIDI, en órdenes que
vayan dirigidas a la animación de un entorno gráfico, creando, mediante la
programación, una interfaz gráfica que enlace los programas necesarios para tal
propósito, brindando la posibilidad de interactuar con el usuario. Por ello surge la
siguiente pregunta:
¿Cómo diseñar un sistema que permita relacionar la teoría musical y la expresión
gráfica con el fin de crear un método dirigido hacia la enseñanza de la apreciación
musical utilizando software libre?
1.3. JUSTIFICACIÓN
El ingeniero de sonido puede aliar la parte ingenieril con la parte artística. Este
Proyecto toma en cuenta factores artísticos que son posibles de analizar a través
de la abstracción y los conocimientos de carácter ingenieril, con el propósito de
crear algoritmos que logren la transformación de la información musical en
imágenes coherentes y sincrónicas. Por esta razón, la ingeniería de sonido es un
campo propicio para la creación de este tipo de interfaz.
La importancia de este trabajo radica en presentar a las personas interesadas una
experiencia que pueda caber en la categoría de sinestesia14 consistente en lograr
“ver la música”, mediante el uso del software libre y la programación,
desarrollando un sistema que pueda analizar la música de una secuencia MIDI y
generar órdenes enviadas hacia una animación, para que ésta se ejecute en
tiempo real. Se proyecta, así, un enlace entre la imagen y la música con miras a
instrumentar la enseñanza de la apreciación musical, para que las personas
puedan entender la música, no como un complejo tonal, es decir, una mezcla de
sonidos en presente, sino enmarcada en un espacio visual, temporalmente más
tranquilo y con más oportunidades didácticas. Así mismo este Proyecto es una
aproximación al aprendizaje de la comprensión teórico-musical de quienes, al “
visualizar la música “, podrán ver su arquitectura y establecer una relación entre
varios parámetros musicales como tonalidad, altura, ritmo, escalas, acordes,
intensidad, consonancia, disonancia y parte de las funciones armónicas, así como
un acercamiento a la polifonía.
Para “visualizar la música” usando las nuevas tecnologías de la computación, es
necesario cumplir con varias etapas como, primero, establecer el enlace en tiempo
real de un lenguaje de programación con un secuenciador de eventos MIDI y un
motor de animación dispuesto a actuar mediante órdenes; segundo, realizar el
14
SYNAESTHESIA.COM: [en línea]. < http://www.synaesthesia.com/ > [citado en 17/04/04 de 2011]
análisis de secuencias MIDI a través de un lenguaje de programación basado en
la teoría musical, para generar ordenes de animación; tercero, crear la relación
entre música y lenguaje visual frente a los distintos conceptos teóricos tanto de la
música como del lenguaje gráfico, para aplicarla a los elementos extraídos de una
secuencia MIDI; cuarto, diseñar la animación; y quinto, diseñar una interfaz
grafica capaz de reunir y acoplar todos los elementos descritos en las etapas
anteriores.
Algunas de estas etapas han llegado a ser grandes proyectos de la teoría del arte
como los de Alexander Scriabin, Olivier Messiaen15 y Vassily Kandinsky16, que
establecieron la relación entre la música y el color; en el campo de la
programación, los que establecieron la comunicación entre distintos programas
para que funcionen en tiempo real como el OSC (Open Sound Control); o el
proyecto de la pianista Carmen Paz17, que relaciona nuevamente los colores y la
música tratando de crear su propia sinestesia; o el proyecto Audiogames18 que
consiste en crear un “espacio sonificado” interactivo en donde la “etapa de
sincronización” es vital para su desarrollo. Así pues, apoyar efectivamente la
composición o la enseñanza de la apreciación musical, por medio de un programa,
es un trabajo bastante amplio que requerirá el trabajo de diferentes disciplinas
como la ingeniería de sistemas, la música, el diseño gráfico aplicado a la
multimedia, entre otras. Por eso este proyecto es una aproximación dirigida a la
enseñanza de la apreciación musical buscando caminos para desarrollar todas las
etapas y dejando este conocimiento para su posterior contribución proyectándose
en el campo de la “visualización musical”.
15
LOS COLORES, VEO LA MÚSICA. EL COMPOSITOR SINESTÉSICO OLIVIER MESSIAEN: Pérez
Navarro, Daniel [en línea]. < http://www.filomusica.com/filo48/sinestesia.html > [citado en 17/04/04 de
2011] 16
DE LO ESPIRITUAL EN EL ARTE: Kandinsky, Vassily (1952). 17
COLORES/PROYECTO DE FINAL DE CARRERA: Carmen Paz [en línea].
[citado en 17/04/04 de 2011].
18 AUDIOGAMES: [en línea]. < http://wiki.medialab-prado.es/index.php/Audiogames> [citado en 17/04/04 de
2011]
Hay una gran variedad de formas de representar la música visualmente, que van
desde las comunes visualizaciones que usan los reproductores de multimedia, o
los programas que mezclan “loops” de videos e imágenes y que son usados por
los software llamados VideoJockeys (VJ), como el Arkaos VJ o el Resolume VJ,
entre muchos otros; hasta las animaciones diseñadas para la música, como las
“músic machines”, que construyen imágenes que corresponden a la música. El
referente cásico es la película “Fantasía” de Walt Disney. Pero son muy pocos los
que realmente se interesan por representar la estructura teórica musical, como lo
hace la “Music Animation Machine”. El propósito de este proyecto es ir más allá,
con una interfaz gráfica que convierta la estructura musical en un lenguaje gráfico
coherente y sincrónico que pueda llegar a establecer una fuerte relación entre la
música y la imagen, teniendo en cuenta que las interfaces en tiempo real que
permiten al usuario ver cierta correspondencia entre la música y lo visual, son aún
aplicaciones básicas y sin el componente didácticos.
Se hace uso del protocolo MIDI, porque es el protocolo en que está escrita la
música en el lenguaje de digital; por lo tanto es la forma más directa de manipular
la información musical en el entorno de las nuevas tecnologías de la información y
de la comunicación.
Este proyecto ha sido completamente factible porque se cuenta con recursos
teóricos de programación, además de que el software utilizado es libre, gratuito,
amplio y abierto para realizar éste tipo de proyectos y no se requiere más recursos
que el computador personal e Internet.
1.4. OBJETIVOS DE LA INVESTIGACIÓN
1.4.1. OBJETIVO GENERAL
Crear un sistema que genere animación a partir de secuencias musicales MIDI
como la base para crear una herramienta dirigida hacia la enseñanza de la
apreciación musical, utilizando software libre.
1.4.2. OBJETIVOS ESPECÍFICOS
Transformar y analizar el protocolo MIDI a través de un lenguaje de
programación, para convertir la información en órdenes de entorno gráfico.
Estructurar los parámetros que permitan relacionar la música con la animación
gráfica a través del protocolo MIDI usando un entorno de desarrollo de
programación como Pure Data.
Desarrollar una interfaz gráfica que permita al usuario interactuar enlazando las
herramientas visuales con el protocolo MIDI.
1.5. ALCANCES Y LIMITACIONES DEL PROYECTO
1.5.1. ALCANCES
Crear un sistema suficientemente amplio que apoye la composición y enseñanza
de la apreciación musical, de tal manera que pueda abarcar aspectos
fundamentales de la estructura musical como las funciones armónicas y las formas
musicales, logrando de esta manera un programa de análisis musical exhaustivo y
profundo.
Instrumentar el desarrollo de imágenes animadas en Blender, dotándolas de una
narrativa acorde con el análisis y además de características visuales de la
animación en 3D, incluso haciendo uso de estereoscopía. Este análisis se puede
lograr implementando el código de Python en el motor de juegos Blender Game
Engin.
El Proyecto podría convertirse en un objeto de estudio e investigación para
disciplinas como la musicología, la psicología, la educación y la música. Puede
utilizarse como un recurso para las personas con limitaciones auditivas para que
puedan llegar a visualizar imágenes que representan la música.
Lograr un espacio interactivo entre música y lenguaje visual en tiempo real, en el
que la animación acompaña al intérprete a través de la obra.
Desarrollar una herramienta que permita manipular los parámetros de la imagen
de forma interactiva y tener la posibilidad de desarrollar animaciones, por ejemplo,
un programa inteligente que aprenda la estructura musical y que, al volver a repetir
la pieza, le agregue más formas a la animación, pidiendo al usuario confirmación
entre los pasos de repetición.
Usar este sistema como una herramienta para el aprendizaje musical y para la
composición musical.
Usar el programa en otras plataformas como Linux y Macintosh.
Lograr, a través de la automatización de objetos animados en Pure Data, controlar
loops de video, luces, máquinas en tiempo real o también a partir del análisis de
una secuencia musical MIDI.
1.5.2. LIMITACIONES
Pure Data es una herramienta poderosa con variadas aplicaciones, pero presenta
dificultad al no disponer de una herramienta directa para programar objetos de una
manera simple, utilizando condicionales, ciclos o vectores, como en la
programación convencional, a menos que se desee entender el código fuente y
desarrollar la aplicación (objeto) que se necesita.
2. METODOLOGÍA
Para el desarrollo del sistema se ha creado una estructura metodológica que
desglosa cada una de las etapas de la siguiente manera:
Generar un protocolo de información que haga uso de la secuencia MIDI
para que Pure Data sea capaz de enviar información MIDI hacia un
instrumento virtual, en tiempo real.
Generar un programa para que el software de animación GEM entienda la
información recibida y la ejecute en tiempo real.
Crear un lenguaje visual sencillo para representar varios elementos de la
estructura musical.
Crear la comunicación necesaria para que Pure Data entienda las órdenes
generadas por el programa de análisis y genere la animación.
Hacer una interfaz gráfica que permita manipular y enlazar los programas
que deben ser usados.
Para éste proyecto se ha escogido el contrapunto, que es una rama de la teoría
musical que estudia la composición de música polifónica, mediante el enlace de
dos o más melodías. Sin embargo, como este campo es bastante amplio en toda
la música académica y sería muy ambicioso cubrir todo el contrapunto, se han
escogido las “Invenciones y Sinfonías” BWV 772-801, de Johann Sebastian Bach,
que son 30 breves piezas para piano, que sirven tradicionalmente al aprendizaje
del contrapunto y que tuvieron el fin de enseñar al hijo del compositor; Friedman,
la polifonía19. Las Invenciones son 15 piezas a dos voces y las Sinfonías son 15
piezas a tres voces. Bach, al componerlas, usó las escalas más sencillas,
haciendo un pequeño clave bien temperado didáctico para sus hijos20. Luego se
tomaron los dos libros de “El Clave Bien Temperado” BWV 846-869 y BWV 870-
893, que son un conjunto grande de partituras usadas para el estudio de la
interpretación polifónica, como también un referente cumbre para el estudio de la
forma musical del periodo barroco en cuanto al preludio y la fuga21. Cada libro
posee 24 grupos constituidos por un preludio y una fuga en todas las tonalidades
mayores y menores de la gama cromática completando toda la escala cromática
de mayor a menor. Es, por tanto, una colección enorme que comprende 48
preludios y 48 fugas cuyo contenido es a la vez musical, teórico y didáctico.22
Este trabajo está inicialmente dirigido hacia niños que ya tengan conocimientos
musicales y nociones de armonía y contrapunto23, así como también a jóvenes que
tengan la capacidad o estén cerca de interpretar las obras de “El Clave Bien
Temperado”. Entonces, la interfaz mostrará a los usuarios, por medio de dos
canales de comunicación: auditivo y visual, la forma cómo la música ha sido
escrita y estudiada, con lo cual las obras podrán ser entendidas mucho más
didácticamente, introduciéndolos en el significado y las estructuras en las cuales
se escribieron.
19
Klaus Eidam: La verdadera vida de Johann Sebastian Bach (pag 117) 20
BACH, J. S.: Inventions & Sinfonies BWV 772-801. 21
“Clave bien temperado,” Enciclopedia Microsoft® Encarta® 2009 22
Rosen, Charles: Bach y Händel, La Música para Teclado (Keyboard Music) (pag 26) 23
Dr. H. Riemann: Analysis of J. S. Bach’s Wohltemperirtes Clavier (pag 11)
2.1. DIAGRAMA DE FLUJO
Ilustración 1: Diagrama de flujo general del sistema
Se escoge a Python 2.7 como lenguaje de programación por la compatibilidad que
existe con los programas que se quieren controlar, además, el uso de su sintaxis
es amable con el usuario y también porque uno de los alcances de este proyecto
es implementar el código desarrollado en Blender. La estructura del código del
sistema está dada por programación orientada a objetos con el fin de facilitar el
uso de cada uno del los sub programas que se van a desarrollar.
Los archivos MIDI con extensiones *.mid o *.midi son archivos que se encuentran
almacenados en formato binario y para su lectura se usó el programa gratuito
MIDICSV, que toma el archivo y lo transforma en una lista de eventos con el
formato CSV (valores separados por comas). Es un tipo de programa denominado
parsing (analizador). Luego, haciendo uso de Python, se analiza la secuencia MIDI
entrante, ejecutando MIDICSV y capturando su resultado en un archivo de texto.
Nuevamente con Python se toma la lista de eventos en texto y se procesa filtrando
los valores relevantes para ser guardados en variables de tipo listas (matrices); los
datos de interés hallados en el protocolo MIDI son la información relacionada a la
parte musical.
En algunos archivos MIDI la música aparece dispersa en diferentes tracks,
entonces se resuelve unir todos los canales un uno solo ya que este proyecto está
limitado a piezas para piano. Otra característica importante que debe tener en
cuenta para el análisis, es la organización de los eventos de menor a mayor en
cuanto a duración y las notas también de menor a mayor, cuando son
simultáneas, puesto que en una secuencia dichas notas suelen aparecer
dispersas. Cabe decir que este tipo de organización de la información digital no
altera la obra musical. Una vez obtenida la información dentro de listas en Python,
se debe crear un programa para descifrar la información guardada y crear archivos
MIDI de prueba para experimentar los procesos que se van elaborando. Como se
va a analizar un flujo de información, los valores resultantes deben ser de fácil
manipulación, para ello se crean programas que establecen relaciones numéricas
más cómodas para su entendimiento.
Otro proceso importante es definir la duración de las notas en una secuencia por
su valor individual y no por el orden de activación y desactivación referido a toda la
secuencia, como un tiempo marcado con cronómetro (time). Para poder analizar la
música no basta con tener una lista de eventos MIDI. Se opta por crear un método
para poder visualizar la música dentro de los eventos; para ello hay que filtrar
nuevamente la información despreciando las notas de apagado y tomando las
notas de encendido. Como las notas simultáneas vienen una detrás de otra, es
necesario poder verlas al tiempo, como en una partitura, así las notas simultáneas
pueden ser visualizadas verticalmente de una manera armónica. Entonces se
puede crear una matriz concatenada para que las notas que suceden al mismo
tiempo sean guardadas en un mismo vector por el tiempo o duración al que
corresponde y así visualizar la música de una manera similar a una partitura.
Teóricamente en un archivo MIDI, para saber a qué tonalidad pertenece una
secuencia, se utiliza el evento KEY_SIGNATURE, pero no todos los archivos MIDI
poseen este evento. Se debe crear un método para encontrar la tonalidad y
establecer diccionarios acordes con la información pertinente, como los grados de
la escala y, dependiendo de si es mayor o menor, agregarle las alteraciones
correspondientes a los eventos para volver a analizar la secuencia, logrando el
verdadero nombre de las notas y de las alteraciones. Más adelante se establecen
las notas importantes de acuerdo con las funciones armónicas, así como las
triadas en la secuencia, logrando deducirlas aunque estén invertidas.
La documentación de Pure Data respecto a Qlist no es suficiente para su uso, por
lo tanto hay que deducir cuál es el proceso para lograr leer cada evento y
comunicárselo a la función que envía la información MIDI al sintetizador. Una vez
es encontrada la manera de utilizar esta herramienta se va a utilizar no solo como
un comunicador de eventos MIDI sino también como un receptor de otras
informaciones útiles para generar ordenes a la animación.
La animación debe tener relación con la música en diferentes aspectos, los
objetos a representar como notas son esferas, el primer aspecto musical a
representar será la altura dada por los valores de nota, entonces las esferas se
desplazarán de acuerdo a una relación matemática en el eje horizontal, al activar
una nota la esfera va a encenderse y rebotar, la velocidad de nota define su
desplazamiento en el eje z es decir que a medida que aumenta la intensidad del
sonido, las esferas se irán acercando y si la intensidad es suave las esferas se
desplazarán hacia atrás, en el caso de que hayan notas simultaneas, habrán más
esferas una detrás de otra representando las notas segunda, tercera, cuarta etc.
las esferas pueden tener un rastro que visualmente refiera a ésta y de donde a
donde se está desplazando; por último las esferas van a adquirir un color y éste va
a depender de la relación que se establecerá entre la música y la imagen.
2.2. HIPÓTESIS
Utilizando software libre, diseñar un sistema que permita relacionar la teoría
musical y la expresión gráfica con el fin de crear un método dirigido hacia la
enseñanza de la apreciación musical.
3. NUCLEOS PROBLÉMICOS / LÍNEA DE INVESTIGACIÓN DE LA
FACULTAD / LÍNEA DE INVESTIGACIÓN DE LA UNIVERSIDAD
3.1. NÚCLEOS PROBLÉMICOS
Este proyecto está desarrollado dentro del núcleo de “Análisis y Procesamiento de
Señales”, ya que el sistema consiste en tomar una señal lineal (información MIDI
en código binario) y transformarla en una señal bidimensional (imagen) que varía
en el tiempo. En detalle, se está diseñando una herramienta mediante la
programación que, vinculando varios software, logra crear un método de análisis
para el protocolo MIDI, que a su vez genera información necesaria para que un
software de animación actúe respecto de dicho análisis. Todo es controlado por
una interfaz gráfica que enlaza la herramienta de análisis con el software que
genera la animación y un secuenciador MIDI.
3.2. LÍNEA DE INVESTIGACIÓN DE LA FACULTAD
Este proyecto que, como ya se mencionó, se desarrolla dentro del campo de
“Análisis y Procesamiento de Señales (APS)”, busca, a través de los métodos y la
conceptualización del campo de la ingeniería de sonido, instrumentar el desarrollo
de nuevas tecnologías encaminadas al apoyo de la composición y la enseñanza
de la apreciación musical, creando un sistema novedoso de automatización de la
animación, mediante la construcción, análisis y enlace de programas, a partir de la
información musical encontrada en el protocolo MIDI.
3.3. LÍNEA DE INVESTIGACIÓN DE LA UNIVERSIDAD
Dentro de las líneas de investigación de la Universidad de San Buenaventura y de
acuerdo con el Consejo de Investigación Bonaventuriano (CIB), éste proyecto se
inscribe en la línea “Tecnologías actuales y sociedad”, ya que busca desarrollar
una interfaz interactiva, a través de la actualización constante de los
conocimientos tecnológicos y por medio de software libre, relacionando de una
forma directa la estructura y la teoría musical con un lenguaje visual sincrónico,
generando animaciones, para el apoyo y desarrollo de la composición y de la
apreciación musical, facilitando la enseñanza del contrapunto musical y
contribuyendo al desarrollo de la educación musical en la sociedad.
4. MARCO DE REFERENCIA
En este capítulo se va a dar una mirada global de las herramientas importantes
para el desarrollo que has sido necesarias para la creación del sistema.
4.1. MARCO TEÓRICO – CONCEPTUAL
4.1.1. PYTHON
Python es un lenguaje de programación de alto nivel de sintaxis limpia, código
legible y abierto; fue escogido para la generación del programa y lo tanto es
importante conocer algunas de sus propiedades y de las estructuras que pueden
llegar a ser indispensables para la creación del sistema.
La primera propiedad a considerar son las funciones24 que son un fragmento de
código con un nombre que le identifica y que realiza una serie de tareas para
devolver un valor. Si no devuelven un valor se le llaman procedimientos.25 Las
funciones se elaboran en innumerables programas para analizar la información,
hay bastantes ejemplos que pueden ser encontrados en Internet y en libros gratis
subidos en la red. Las funciones son la base para la programación orientada a
objetos donde se utilizarán las clases y los objetos. Un objeto es una entidad que
agrupa un estado y una funcionalidad relacionados. El estado del objeto se define
a través de variables llamadas atributos, mientras que la funcionalidad se modela
a través de funciones a las que se les conoce con el nombre de métodos del
objeto. Una clase, es una plantilla con la que se organiza los objetos, en esta
plantilla se definen los atributos y métodos que tendrán los objetos.26
Muchos de los procesos que se van a realizar, se hacen usando listas que son
vectores dentro de Python, una variable en donde se pueden almacenar varios
datos de una sola vez; para lo cual hay que tener en cuenta las propiedades27,
útiles para el manejo de listas como el método para definirlas, citar rápidamente su
información usando atajos, añadir o quitar elementos, buscar dentro de una lista y
usar listas concatenadas. Otro elemento vital son los diccionarios, que definen una
relación uno a uno entre claves y valores útiles para citar rápidamente información
o generar, mediante la clave, valores correspondientes en grandes procesos como
introducir el valor de nota MIDI, obtener su nombre y su octava. También tiene
propiedades como definir un diccionario, mezcla de tipos de datos en un
diccionario, eliminación de elementos de un diccionario.
24
Francisco Callejo Giménez: Inmersión en PYTHON (pag 3) 25
Raúl González Duque: PYTHON para Todos: (pag 36) 26
PYTHON Para Todos: Raúl González Duque: (pag 42) 27
Francisco Callejo Giménez: Inmersión en PYTHON (pag 9-12)
También se hace necesario manipular la información entre los directorios de
trabajo. Generalmente cuando se empieza a trabajar en Python el directorio en el
que se está trabajando es el mismo donde se está guardando el proyecto, pero
también se puede cambiar este directorio, o generar archivos en un lugar y luego
pasar a otro donde también se van a crear archivos. Por último una de las
aplicaciones importantes de Python para el proyecto, es que logra ejecutar un
programa abriendo un archivo creado en el mismo programa y al finalizar el
proceso cerrarlo.
4.1.2. TKINTER
El módulo Tkinter (“Tk”) es la interfaz estándar de Python con un gran conjunto de
herramientas GUI. Tkinter está disponible en la mayoría de plataformas Unix, así
como en los sistemas Windows y Macintosh. Tkinter consiste en una serie de
módulos. La interfaz Tk se encuentra en un módulo binario denominado _tkinter,
este módulo contiene la interfaz de bajo nivel de Tk; Tkinter que incluye una serie
amplia de módulos de Python.
Para la organización de el flujo de eventos, se va a utilizar el método de
ordenamiento por sacudida28 que es una optimización del método de intercambio
directo o burbuja; en este algoritmo cada pasada tiene dos etapas: “de derecha a
izquierda” se trasladan los elementos más pequeños hacia la parte izquierda del
arreglo, en la segunda etapa “de izquierda a derecha” se trasladan los elementos
más grandes hacia la parte derecha del arreglo, el algoritmo termina cuando en
una etapa no se producen intercambios.
4.1.3. MIDICSV
28
Estudiantes de la UTN-FRSF: Tutorial-PYTHON.com.ar (http://tutorial-PYTHON.com.ar/?p=67 vista el
09/04/11)
Entre las herramientas externas que se van a utilizar esta MIDICSV29 que es un
programa con el que se toma un archivo MIDI y lo transforma en una lista de
eventos con el formato CSV (valores separados por comas) cuyas siglas
provienen de Comma Separated Values. A este tipo de programas se le llaman
parsing (analizador). Al pedirle a MIDICSV que analice un archivo, éste va a
generar una lista sujeta a una estructura de registro la cual indica cada uno de los
eventos que el archivo tiene, dentro de esta los parámetros que se van a utilizar
son “0, 0, HEADER, FORMAT, NTRACKS, DIVISIÓN” que es el registro de
cabecera del archivo MIDI, “TRACK, TIME, TIME_SIGNATURE, NUM, DENOM,
CLICK, NOTESQ” El compás, la tasa de clic del metrónomo, el “TRACK, TIME,
KEY_SIGNATURE, KEY, MAJOR/MINOR”, donde especifica el valor numérico de
la clave, mayor / menor “TRACK, TIME, TEMPO, NUMBER” que contiene el tempo
y los eventos de activación de nota “TRACK, TIME, NOTE_ON_C, CHANNEL,
NOTE,
4.1.4. COMUNICACIÓN OPEN SOUND CONTROL
Hay comunicaciones que no se pueden lograr directamente y por esto se va a usar
Open Sound Control (OSC) que es un protocolo para la comunicación entre
sistemas, computadores, sintetizadores y otros dispositivos multimedia optimizada
para la tecnología de redes modernas. Este protocolo proporciona lo necesario
para el control en tiempo real de los medios de procesamiento de sonido y otros,
sin dejar de ser flexible y fácil de implementar”30; Para enviar información desde
Python haciendo uso de OSC hay que tener la librería pyOSC31 Hallada en la
dirección http://opensoundcontrol.org/implementation/Python-simple-osc, luego tomar el
archivo OSC.py y guardarlo en el directorio de Python, en la carpeta Lib y la
subcarpeta site-packages, para este caso la dirección es C:\Python27\Lib\site- 29
Walker John: MIDICSV [en linea]. < http://www.fourmilab.ch/webtools/midicsv/ > [citado en 08-04-2011] 30
Open Sound Control: página oficial [en linea][ citado en
04-05-2011] 31
Librería OSC para PYTHON: pyOSC: [en linea]< https://trac.v2.nl/wiki/pyOSC>[ citado en 04-05-2011]
packages. Luego estructurar el envió de información por medio de este protocolo
(se encuentra más en detalle en el apéndice). Para recibir la información OSC en
Pure Data debe tener la versión extendida
(http://puredata.info/community/projects/software) que ya cuenta con este
protocolo de comunicación por defecto.
4.1.5. PURE DATA
La animación y el secuenciador MIDI se van a trabajar con Pure Data (PD) que es
un entorno gráfico de programación en tiempo real diseñado para aplicaciones de
audio, vídeo y procesamiento de gráficos32, Pure Data cuenta con la ayuda que
guía a el usuario facilitando de gran manera el trabajo mediante ejemplos
mostrándole las posibilidades que tiene en cuanto a la programación de cada
objeto, adicionalmente recomienda otros objetos relacionados con él mismo.
Una de las herramientas indispensables de Pure Data es Qlist que en realidad es
un secuenciador basado en texto, el objeto Qlist lee archivos de texto que
contienen mensajes en diferentes tiempos. Se tuvo que descubrir la manera en
que funciona éste protocolo ya que en el manual de Pd no se especifica de una
manera clara la forma de construir o usar una secuencia MIDI y si está tomada
de un archivo, interpretarla y enviarla a través de los puertos de salida (MIDI) en
Pure Data. (En el apéndice se encuentra dicha deducción).
Para hacer uso del protocolo MIDI es necesario direccionar las entradas y salidas
en Pure Data, también hay que manejar la estructura para la entrada y salida de
información MIDI, se utilizara también el objeto acorde “chord” que va a ser útil
para la ejecución en tiempo real de la animación con un controlador.
32
Pure Data: Pagina Oficial (www.puredata.org el 24/10/09)
http://puredata.info/community/projects/software
La herramienta de animación en Pure Data se llama Gem33 (Graphics Environment
for Multimedia) y es un entorno de programación visual para generar, procesar y
manipular gráficos (imágenes, vídeos, cámara) en tiempo real. Es una librería que
forma parte del entorno Pure Data. Para poder utilizar Gem hay que usar la
versión extendida de Pure Data.
4.1.6. MIDI
MIDI, un acrónimo de Musical Instrument Digital Interface. MIDI ha asumido
múltiples significados y puede referirse a una interfaz de hardware, a un formato
de archivo, a los datos en un archivo MIDI estándar, o a las especificaciones de
simulación instrumental de General MIDI. La ubicuidad del término no
necesariamente corresponde a la uniformidad de procesos, ni a la capacidad de
intercambio de datos sin pérdida alguna de información, ni a las solicitudes sin una
cierta limitación de la capacidad.
MIDI se originó como un protocolo en tiempo real para permitir la comunicación
entre los dispositivos de hardware independiente (por ejemplo, entre dos teclados
electrónicos, o entre un teclado electrónico y una computadora personal).
Concretamente, la intención era hacer que la onda de sonido, frecuencia y la
duración de presión de información obtenida para un controlador se interpretara a
través diversos dispositivos. Lo primero fue identificar la duración de tecla
presionada y luego grabar su encendido y apagado “on” and “off” durante ese
tiempo. La especificación del protocolo se publicó en 1988 y está disponible sin
costo en muchas redes electrónicas y en los apéndices de muchas referencias
estándar en MIDI. Como un hardware de interface, MIDI busca la forma de hacer
procesos en tiempo real, en el lenguaje MIDI, la música consiste en una cadena
de eventos que suceden uno a la vez y momento a momento, procesos de flujos
33
Generación Musical y Visual: GEM - Pure Data: [en line] < http://www.dtic.upf.edu/~csora/gmv/index.php
> [ citado en 04-05-2011]
http://www.dtic.upf.edu/~csora/gmv/index.php
de eventos que a veces deben estar en constante movimiento controlados por un
reloj34.
El Standard MIDI File (SMF) es un formato estandarizado para guardar
secuencias, o sea series ordenadas de eventos MIDI determinados en su
ubicación temporal en términos de compases y tiempos. Hay diversos tipos de
secuenciadores tanto de software como de hardware. Cada secuenciador tiene su
propio formato de secuencias y el MIDI File es una forma de guardar la
información básica en un formato estandarizado para poder transferir y leer
archivos de un secuenciador a otro.
4.1.7. TEORÍA MUSICAL
Para analizar las piezas propuestas por éste proyecto (Invenciones y Sinfonías, y
el Clave Bien Temperado) se deberá tener claro los conceptos de la teoría
musical35 como: armaduras de clave, intervalos, las escalas, los tipos de escalas,
las triadas, los grados de las escalas y, en menor medida, las funciones
armónicas; con el fin de poder hacer análisis armónico. También es importante
entender aspectos como las texturas musicales de las sinfonías e invenciones de
J. S. Bach, así como qué es una invención o qué es una sinfonía, qué es el clave
bien temperado, donde se encuentran términos como: preludio y fuga. Toda esta
información se encuentra en el apéndice
4.1.8. SIGNIFICADO DE LA APRECIACIÓN MUSICAL
“Apreciación musical” es un tipo de formación musical destinado a desarrollar la
habilidad de escuchar inteligentemente la música. El oyente aficionado a menudo
34
Eleanor Selfridge-Field Beyond: MIDI, The Handbook Of Musical Codes (pág. 43) 35
Alvira Rodríguez José: Teoría Musical; Aprendizaje [en línea]. [citado en 29/10/09 de 2009]
ha demostrado una facultad analítica y crítica bastante igual a la de muchos
intérpretes profesionales, el arte de escuchar como una actividad del pensamiento
es el objetivo de los cursos de apreciación, que puede ser tan exigente y tan
satisfactoria como la interpretación. Para entender la música, es importante
conocer los diferentes aspectos que la componen, desde su parte teórica hasta la
misma historia; cómo el compositor hace uso de todos y cada uno de los
elementos que ésta le brinda y cómo el escucha accede e interactúa con ella.
La percepción, la valoración afectiva y la toma de conciencia intelectual de
cualquier producto artístico forman el tercer eslabón de la cadena al que en pocas
ocasiones, y menos aún en el terreno musical se ha dedicado la debida atención.
Tradicionalmente y hasta el momento actual, casi todo el tiempo y los recursos
empleados en la formación musical se han dedicado a dos aspectos de evidente
importancia como son la creación musical, aspecto centrado en la figura del
compositor y la interpretación, centrada en la figura del intérprete, pero se ha
eludido, en cambio, la dedicación necesaria a un tercer aspecto de trascendencia
última en cualquier manifestación artística: se está refiriendo a la apreciación de la
obra, aspecto centrado en el oyente. Lógicamente toda persona que escucha se
convierte en un oyente. Pero hay muchas formas de escuchar, y en esto van a
intervenir factores tan importantes como la capacidad de atención y la formación
musical de quien escucha. Muchas personas tienen un gran conocimiento auditivo
de numerosas grandes obras de la música, aunque no sepan leer ni interpretar
una partitura; en muchos casos, sus opiniones y sus gustos son excelentes, pero
no saben expresarlo con un lenguaje apropiado, lo que les puede producir una
sensación de frustración e inseguridad que les impida comunicar sus opiniones
ante los músicos.
Así pues, la importancia de dotar al oyente de las herramientas precisas para la
captación plena de las obras musicales, se constituye en una necesidad
cuantitativa, dada la superioridad numérica de los auditores frente a los
compositores e intérpretes, además de constituir el tercero de los grandes ámbitos
que como eslabones inseparables de una misma cadena completan el proceso
artístico: compositor, intérprete y oyente36.
4.1.9. LA IMAGEN
Para el desarrollo de la animación es importante estudiar algo sobre la imagen, en
este caso, estudiar conceptos como la sintaxis de la imagen; la forma, la luz, la
sombra, la simbología del color, los principios de la composición (claridad,
contraste, armonía); también temas como la semántica visual de la imagen, y
temas afines. Los detalles de esta información se encuentran en el apéndice.
4.2. MARCO LEGAL O NORMATIVO
Este proyecto está trabajando con software no privatizado y por ello es importante
distinguir entre los diversos tipos de licencias que pueden existir: La información
en detalle se encuentra en el apéndice, donde se desarrollan conceptos como las
licencias de software libre, la definición de software libre37, la licencia pública
general de GNU, la licencia pública general reducida de GNU, licencia pública
general de affero de GNU, licencia de documentación libre de GNU, copyleft38.
4.2.1. LICENCIA DE MIDICSV
Este software es de dominio público. Tiene el permiso para usar, copiar, modificar
y distribuir este software y su documentación con cualquier propósito y sin cargo a
la presente se otorga, sin ningún tipo de condiciones o restricciones. Este software
36
Thomas Whitney Surette: The Appreciation of Music (pag 15) 37
GNU Operating System (http://www.gnu.org/philosophy/free-sw.es.html vista el 13/10/09) 38
GNU Operating System (http://www.gnu.org/licenses/licenses.es.html vista el 13/10/09)
http://www.gnu.org/philosophy/free-sw.es.htmlhttp://www.gnu.org/licenses/licenses.es.html
se otorga sin ninguna garantía implícita o explícita39. Por John Walker, Febrero,
2004, Revisado Enero de 2008
4.2.2. LICENCIA DE Python Y TKINTER
La Python Software Foundation License, o PSFL por sus siglas en inglés, es una
licencia de software libre permisiva, al estilo de la licencia BSD, es decir, que
cumple con los requisitos OSI para ser declarada licencia de software libre;
además, es compatible con la licencia GPL. A diferencia de la licencia GPL, y
como la mayoría de licencias tipo BSD, la licencia PSFL no es una licencia
copyleft, y permite modificaciones del código fuente, así como la creación de
trabajos derivados, sin requerir que ni las modificaciones ni los trabajos derivados
tengan que ser a su vez de código abierto. La licencia PSFL está dentro de las
listas de licencias aprobadas tanto por la Free Software Foundation como por la
Open Source Initiative.40
4.2.3. LICENCIA DE PURE DATA Y GEM41
Pd es un proyecto de código abierto y tiene una gran base de desarrolladores
trabajando en nuevas extensiones al programa; está publicado bajo una licencia
similar a la licencia BSD. La licencia BSD es la licencia de software otorgada
principalmente para los sistemas BSD (Berkeley Software Distribution). Es una
licencia de software libre permisiva como la licencia de OpenSSL o la MIT License.
Esta licencia tiene menos restricciones en comparación con