Dies ist eine alte Version des Dokuments!
Music21
La biblioteca Python music21 está ampliamente documentada en la página del proyecto del MIT Boston: Además de una Guía del usuario con capítulos sobre numerosos temas, hay una extensa Documentación de módulos así como un Índice alfabético de todos los temas y comandos.
Especialmente en vista de esta extensa documentación, tiene sentido enumerar los comandos más importantes por separado y describirlos con breves ejemplos.
Los comandos más importantes de music21 en un vistazo
Aquí se enumeran los comandos más importantes y útiles de music21. Se pueden encontrar secuencias de comandos más complejas con ejemplos en las Notas de los tutoriales.
(1) Manejo de archivos
Los siguientes comandos cargan la biblioteca music21 y luego el Preludio en Do mayor del Clave bien temperado como variable 'sBach'.
from music21 import *
# Este comando inicial importa la biblioteca de Python music21
sBach = converter.parse('https://analyse.hfm-weimar.de/database/04/BaJoSe_BWV846_COM_COM_DasWohltem_004_00816.xml')
Ahora la pieza se muestra en MuseSore:
sBach.show()
Así se ve la información de la partitura en formato musicxml:
sBach.show('texto')
Y así es como se reproducen las notas como midi:
sBach.show('midi')
Selección de barras / piezas:
a = sBach.parts[0] # selecciona la primera voz (aquí: mano derecha) como variable 'a'. b = sBach.medidas(4,7) # selecciona las medidas 4 a 7 como variable 'b' c = sBach.parts[0].measures(2,4) # selecciona los compases 2 a 4 de la primera voz como variable 'c' Alternativa: sBach.measures(2,4).show() # selecciona y muestra.
Muestra el número de elementos:
len(sBach) # muestra el número de elementos en el siguiente nivel inferior len(sBach.flat) # nombra el número de todos los elementos contenidos, por ejemplo, notas
Guardar la selección:
sBach.write()
a.write()
# Guarda la variable 'sBach' o 'a' (ver arriba: la primera voz) como archivo xml (por defecto)
# También se pueden elegir otros formatos, por ejemplo
sBach.write('midi')
# comando alternativo para la primera voz:
sBach.parts[0].write()
(2) Ver gráficos:
sBach.plot('pianoroll')
sBach.parts[2].plot('pianoroll')
# sólo se muestra la segunda voz
sBach.measure(2,5).plot('pianoroll')
# sólo se muestran las barras 2-5
graph.plotStream(sBach)
# = método alternativo
sBach.plot('histograma')
# Histograma de frecuencias de tono
(3) Escribir notas
n1 = note.Note('g4', type='quarter')
n2 = note.Note('a4', type='quarter')
n3 = note.Note('g4', type='half')
# Las notas están conectadas ("streamed") a los compases, los compases a las partes y las partes a las partituras:
m1 = stream.Measure()
m1.append([n1, n2, n3])
p1 = stream.Part
p1.append([m1])