Subido por Liliana Guerra

tema6

Anuncio
Bloque II
Experimentamos con las notas. Herramientas musicológicas avanzadas
Introducción a music21
[6.1] ¿Cómo estudiar este tema?
[6.2] Introducción
[6.3] Instalación
[6.4] Tutorial básico de music21
[6.5] Trabajamos desde cero con las notas
TEMA
6
[6.6] Resumen
TEMA 6 – Esquema
2
Trabajamos desde cero con las
notas
Operaciones básicas
Introducción a la instalación
Sintaxis de tinynotation
Extracción de elementos
Procesado del corpus de music21
Tutorial Básico de music21
Compases
Partes
Matemáticas y Física Aplicadas a la Música
Esquema
Matemáticas y Física Aplicadas a la Música
Ideas clave
6.1. ¿Cómo estudiar este tema?
Continuamos el bloque 2 dedicado a herramientas musicológicas avanzadas. En este
segundo tema instalaremos y empezaremos a trabajar con music21 sobre Python. No
existe nada publicado en castellano al respecto, pero hay bastante información en
inglés en la web de music21 http://web.mit.edu/music21/
Para este tema recomendamos leer los capítulos 1 y 2 de la guía de usuario de music21.
6.2. Introducción
Music21 es una librería de Python que facilita enormemente el cálculo sobre
partituras o elementos musicales. Desde el punto de vista musicológico es una
herramienta más que interesante para extraer parámetros y conclusiones de partituras
de épocas diversas. Posee un «corpus» de obras accesible directamente para facilitar los
cálculos, pero cualquier partitura en los formatos más habituales (MusicXML, hundrum,
MIDI…) puede ser analizada.
6.3. Instalación
La instalación es bastante sencilla y multiplataforma. Comentaremos la instalación sobre
Windows (la más habitual) pero el alumno puede usar otra si su sistema operativo es
diferente.
Para descargar la última versión hay que ir a
https://code.google.com/p/music21/downloads/list
Recomendamos descargar el .exe al ser la instalación muy sencilla.
TEMA 6 – Ideas clave
3
Matemáticas y Física Aplicadas a la Música
Si no dispones de un editor de MusicXML, puedes bajarte e instalar de forma gratuita
Finale notepad 2012 desde http://www.finalemusic.com/products/finale-notepad/ o
MuseScore de http://musescore.org/es
Para comprobar que todo está correctamente instalado nos vamos PyScripter y
escribimos:
from music21 import corpus
sBach = corpus.parse('bach/bwv7.7')
sBach.show()
Al ejecutar estas 3 líneas de código el sistema debería levantar nuestro editor de
partituras (Finale notepad, o el que tengamos asociado a MusicXML) y mostrar la
siguiente pantalla.
TEMA 6 – Ideas clave
4
Matemáticas y Física Aplicadas a la Música
Para «jugar» con la base de datos de partituras simplemente hay que cambiar
«bach/bwv7.7»
con
lo
que
queramos
acceder.
La
librería
está
en:
http://web.mit.edu/music21/doc/systemReference/referenceCorpus.html
Si quisiéramos acceder a un fichero en local, solo tendríamos que cambiar
corpus.parse por converter.parse especificando la ruta.
6.4. Tutorial básico de music21
Vamos a modificar las líneas de código anteriores para ver algunas posibilidades de
music21.
Imaginemos que queremos extraer solo una parte, la del soprano:
from music21 import corpus
sBach = corpus.parse('bach/bwv7.7')
sBach.parts[0].show()
TEMA 6 – Ideas clave
5
Matemáticas y Física Aplicadas a la Música
O un compás, el 3:
from music21 import corpus
sBach = corpus.parse('bach/bwv7.7')
sBach.measure(3).show()
O el compás 3 del contralto solamente:
from music21 import corpus
sBach = corpus.parse('bach/bwv7.7')
sBach.parts[1].measure(3).show()
O una nota, la tercera del contralto del compás 3:
from music21 import corpus
sBach = corpus.parse('bach/bwv7.7')
sBach.parts[1].measure(3).notes[3].show()
TEMA 6 – Ideas clave
6
Matemáticas y Física Aplicadas a la Música
O reducir a acordes la partitura:
from music21 import corpus
sBach = corpus.parse('bach/bwv7.7')
sBach.chordify().show()
Por supuesto podemos aunar la potencia de Python con music21. Veamos un ejemplo
algo más complejo. Imaginemos que queremos hacer una melodía con la primera nota
de cada compás del soprano en este coral de Bach:
#importamos todas las librerías de music21
from music21 import *
sBach = corpus.parse('bach/bwv7.7')
#contenedor de objetos music21
s=stream.Stream()
#Cogemos los compases del soprano
compases=sBach.parts[0].getElementsByClass(stream.Measure)
#iteramos através de cada compás y cogemos la primera nota
for compas in compases:
s.append(compas.notes[0])
TEMA 6 – Ideas clave
7
Matemáticas y Física Aplicadas a la Música
#mostramos el resultado
s.show()
El resultado:
NOTA: la función getElementsByClass es muy útil para coger todos los elementos de un
tipo determinado, en este caso compases. La clase especificada en este caso,
stream.Measure, hace referencia a los compases.
6.5. Trabajamos desde cero con las notas
Dejemos de momento el corpus de music21 para escribir una melodía desde cero. Lo
podemos hacer de varias maneras. Lo más sencillo es através de notación
tinyNotation. Básicamente consiste en escribir el nombre de la nota seguido de su
duración. Si la duración no cambia, la siguiente nota coge la duración anterior.
from music21 import *
#escribimos un string en el formato tinynotation
tinynotation="tinynotation: 3/4 c4 d8 f g16 a g f#"
TEMA 6 – Ideas clave
8
Matemáticas y Física Aplicadas a la Música
#convertimos music21
notasMusic21=converter.parse(tinynotation)
#mostramos el resultado
notasMusic21.show()
Para saber más de esta notación:
http://web.mit.edu/music21/doc/moduleReference/moduleTinyNotation.html#music
21.tinyNotation.TinyNotationStream
el resultado:
También podemos escribir notas directamente con parámetros de music21. Es algo más
complicado, pero más potente desde el punto de vista de la programación. Veamos un
ejemplo.
from music21 import *
#declaramos el stream, dos notas y un silencio
s = stream.Stream()
n1 = note.Note()
n2 = note.Note()
r1 = note.Rest()
#definimos nuestra nota 1
n1.pitch.name = 'E4'
TEMA 6 – Ideas clave
9
Matemáticas y Física Aplicadas a la Música
n1.duration.type = 'half'
#definimos nuestra nota 2
n2.pitch.name = 'F4'
n2.duration.type = 'quarter'
#definimos nuestro silencio
r1.quarterLength = 1
#lo ponemos todo en el stream
s.append(n1)
s.append(n2)
s.append(r1)
#mostramos el resultado
s.show()
TEMA 6 – Ideas clave
10
Matemáticas y Física Aplicadas a la Música
El resultado:
6.6. Resumen
En este tema hemos empezado a ver las posibilidades de music21 como librería de
Python. Las posibilidades de análisis y creación musical son enormes. Reconocemos que
para el alumno con poca experiencia en programación puede ser algo complicado al
principio, pero no te preocupes. Es cuestión de práctica, curiosidad, estudio y un poco de
paciencia. Las dos siguientes semanas continuaremos profundizando en Python y
music21.
TEMA 6 – Ideas clave
11
Matemáticas y Física Aplicadas a la Música
Lo + recomendado
No dejes de leer…
music21: A Toolkit for Computer-Aided Musicology and Symbolic Music
Data
Artículo de ISMIR sobre music21.
Accede al artículo a través del aula virtual o desde la siguiente dirección web:
http://dspace.mit.edu/handle/1721.1/84963
No dejes de ver…
Music21 ScoreFollower Demo
Interesante el desarrollo realizado sobre
music21 para el paso de página de partituras.
Accede al vídeo a través del aula virtual o desde la siguiente dirección web:
https://www.youtube.com/watch?v=4lNYqGYnjog
TEMA 6 – Lo + recomendado
12
Matemáticas y Física Aplicadas a la Música
+ Información
A fondo
Music21
Te recomendamos leer alguno de los artículos de music21 en academia.edu.
Accede al artículo a través del aula virtual o desde la siguiente dirección web:
http://www.academia.edu/Documents/in/Music21
TEMA 6 – + Información
13
Matemáticas y Física Aplicadas a la Música
Test
1. El siguiente programa:
A. Muestra un coral del Bach en xml dentro del corpus de music21.
B. No funciona.
C. Muestra todas las obras de Bach en orden cronológico.
D. Muestra solo el primer compás del coral.
2. El siguiente programa:
A. Muestra el tercer compás del soprano.
B. Muestra el segundo compás del contralto.
C. Muestra el tercer compás del contralto.
D. Da error.
3. La siguiente secuencia se puede escribir como:
A. tn="tinynotation: 2/4 c8 d e f"
B. tn="tinynotation: 2/4 c4 d e2 f"
C. tn="tinynotation: 3/4 c4 d e f"
D. tn="tinynotation: 2/4 c4 d4 c2 e2"
TEMA 6 – Test
14
Matemáticas y Física Aplicadas a la Música
4. El siguiente programa produce la siguiente salida:
A.
B.
C.
D.
TEMA 6 – Test
15
Matemáticas y Física Aplicadas a la Música
5. El siguiente programa produce la siguiente salida:
A
B
C
D
TEMA 6 – Test
16
Descargar