You are on page 1of 16

Bloque II

Experimentamos con las notas. Herramientas musicolgicas avanzadas

Introduccin a music21
[6.1] Cmo estudiar este tema?
[6.2] Introduccin
[6.3] Instalacin
[6.4] Tutorial bsico de music21
[6.5] Trabajamos desde cero con las notas

TEMA

[6.6] Resumen

Esquema

TEMA 6 Esquema

Tutorial Bsico de music21


Introduccin a la instalacin
Procesado del corpus de music21
Extraccin de elementos
Compases
Trabajamos desde cero con las
notas

Sintaxis de tinynotation

Matemticas y Fsica Aplicadas a la Msica

Partes

Operaciones bsicas

Matemticas y Fsica Aplicadas a la Msica

Ideas clave
6.1. Cmo estudiar este tema?
Continuamos el bloque 2 dedicado a herramientas musicolgicas 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 informacin en
ingls en la web de music21 http://web.mit.edu/music21/
Para este tema recomendamos leer los captulos 1 y 2 de la gua de usuario de music21.

6.2. Introduccin
Music21 es una librera de Python que facilita enormemente el clculo sobre
partituras o elementos musicales. Desde el punto de vista musicolgico es una
herramienta ms que interesante para extraer parmetros y conclusiones de partituras
de pocas diversas. Posee un corpus de obras accesible directamente para facilitar los
clculos, pero cualquier partitura en los formatos ms habituales (MusicXML, hundrum,
MIDI) puede ser analizada.

6.3. Instalacin
La instalacin es bastante sencilla y multiplataforma. Comentaremos la instalacin sobre
Windows (la ms habitual) pero el alumno puede usar otra si su sistema operativo es
diferente.
Para descargar la ltima versin hay que ir a
https://code.google.com/p/music21/downloads/list
Recomendamos descargar el .exe al ser la instalacin muy sencilla.

TEMA 6 Ideas clave

Matemticas y Fsica Aplicadas a la Msica

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 lneas de cdigo el sistema debera levantar nuestro editor de


partituras (Finale notepad, o el que tengamos asociado a MusicXML) y mostrar la
siguiente pantalla.

TEMA 6 Ideas clave

Matemticas y Fsica Aplicadas a la Msica

Para jugar con la base de datos de partituras simplemente hay que cambiar
bach/bwv7.7

con

lo

que

queramos

acceder.

La

librera

est

en:

http://web.mit.edu/music21/doc/systemReference/referenceCorpus.html
Si quisiramos acceder a un fichero en local, solo tendramos que cambiar
corpus.parse por converter.parse especificando la ruta.

6.4. Tutorial bsico de music21


Vamos a modificar las lneas de cdigo 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

Matemticas y Fsica Aplicadas a la Msica

O un comps, el 3:
from music21 import corpus
sBach = corpus.parse('bach/bwv7.7')
sBach.measure(3).show()

O el comps 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 comps 3:


from music21 import corpus
sBach = corpus.parse('bach/bwv7.7')
sBach.parts[1].measure(3).notes[3].show()

TEMA 6 Ideas clave

Matemticas y Fsica Aplicadas a la Msica

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 ms complejo. Imaginemos que queremos hacer una meloda con la primera nota
de cada comps del soprano en este coral de Bach:
#importamos todas las libreras 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 atravs de cada comps y cogemos la primera nota
for compas in compases:
s.append(compas.notes[0])

TEMA 6 Ideas clave

Matemticas y Fsica Aplicadas a la Msica

#mostramos el resultado
s.show()

El resultado:

NOTA: la funcin 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 meloda desde cero. Lo
podemos hacer de varias maneras. Lo ms sencillo es atravs de notacin
tinyNotation. Bsicamente consiste en escribir el nombre de la nota seguido de su
duracin. Si la duracin no cambia, la siguiente nota coge la duracin 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

Matemticas y Fsica Aplicadas a la Msica

#convertimos music21
notasMusic21=converter.parse(tinynotation)
#mostramos el resultado
notasMusic21.show()

Para saber ms de esta notacin:


http://web.mit.edu/music21/doc/moduleReference/moduleTinyNotation.html#music
21.tinyNotation.TinyNotationStream
el resultado:

Tambin podemos escribir notas directamente con parmetros de music21. Es algo ms


complicado, pero ms potente desde el punto de vista de la programacin. 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

Matemticas y Fsica Aplicadas a la Msica

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

Matemticas y Fsica Aplicadas a la Msica

El resultado:

6.6. Resumen
En este tema hemos empezado a ver las posibilidades de music21 como librera de
Python. Las posibilidades de anlisis y creacin musical son enormes. Reconocemos que
para el alumno con poca experiencia en programacin puede ser algo complicado al
principio, pero no te preocupes. Es cuestin de prctica, curiosidad, estudio y un poco de
paciencia. Las dos siguientes semanas continuaremos profundizando en Python y
music21.

TEMA 6 Ideas clave

11

Matemticas y Fsica Aplicadas a la Msica

Lo + recomendado
No dejes de leer
music21: A Toolkit for Computer-Aided Musicology and Symbolic Music
Data
Artculo de ISMIR sobre music21.
Accede al artculo a travs del aula virtual o desde la siguiente direccin 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 pgina de partituras.

Accede al vdeo a travs del aula virtual o desde la siguiente direccin web:
https://www.youtube.com/watch?v=4lNYqGYnjog

TEMA 6 Lo + recomendado

12

Matemticas y Fsica Aplicadas a la Msica

+ Informacin
A fondo
Music21
Te recomendamos leer alguno de los artculos de music21 en academia.edu.
Accede al artculo a travs del aula virtual o desde la siguiente direccin web:
http://www.academia.edu/Documents/in/Music21

TEMA 6 + Informacin

13

Matemticas y Fsica Aplicadas a la Msica

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 cronolgico.
D. Muestra solo el primer comps del coral.
2. El siguiente programa:

A. Muestra el tercer comps del soprano.


B. Muestra el segundo comps del contralto.
C. Muestra el tercer comps 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

Matemticas y Fsica Aplicadas a la Msica

4. El siguiente programa produce la siguiente salida:

A.

B.

C.

D.

TEMA 6 Test

15

Matemticas y Fsica Aplicadas a la Msica

5. El siguiente programa produce la siguiente salida:

TEMA 6 Test

16

You might also like