en:music21

Dies ist eine alte Version des Dokuments!


music21

The Python library music21 is comprehensively documented on the project page of MIT Boston: In addition to a User Guide with chapters on numerous topics, there is extensive module documentation and an alphabetical index of all topics and commands.
Especially in view of this very extensive documentation, it makes sense to list the most important commands related to computer-aided analysis procedures separately and to describe them with short examples.

The most important and useful commands in music21 are listed here. More complex command sequences can be found with examples in the tutorials notes.

(1) Handling files

The following commands load the music1 library and then the Prelude in C major from the Well-Tempered Clavier as variable 'sBach'.

 from music21 import *
 # This initial command imports the Python library music21
 
 sBach = converter.parse('https://analyse.hfm-weimar.de/database/04/BaJoSe_BWV846_COM_COM_DasWohltem_004_00816.xml')
 

Now the piece will be displayed on MuseSore:

 sBach.show()			

Here's how to see the score information in musicxml format:

 sBach.show('text') 

And this is how notes are played as midi:

 sBach.show('midi') 			

Selection of bars / parts:

 a = sBach.parts[0] 		
 # selects the first voice (here: right hand) as variable 'a'. 
 b = sBach.measures(4,7)		
 # chooses measure 4 to 7 as variable 'b'
 c = sBach.parts[0].measures(2,4)	
 # chooses bar 2 to 4 of the first voice as 'c'
 Alternative: sBach.measures(2,4).show()
 # selects and displays.

Show number of elements:

 len(sBach)	
 # shows the number of elements on the next lower level
 len(sBach.flat)	
 # names the number of all contained elements, e.g. notes

Save the selection:

 sBach.write()
 a.write()	
 # saves the variable 'sBach' or 'a' (see above: the first voice) as xml-file (default)
 # Other formats can be chosen, e.g. 
 sBach.write('midi')
 # alternative command for the first voice:
 sBach.parts[0].write()

(2) View graphs:

 sBach.plot('pianoroll')		
 sBach.parts[2].plot('pianoroll')		
 # only the second voice is displayed
 sBach.measure(2,5).plot('pianoroll')	
 # only measures 2-5 are displayed
 graph.plotStream(sBach) 			
 # = alternative method

 sBach.plot('histogram')			
 # histogram of pitch frequencies

(3) Writing notes

 n1 = note.Note('g4', type='quarter')
 n2 = note.Note('a4', type='quarter')
 n3 = note.Note('g4', type='half')
 # notes are connected ("streamed") to measures, measures to parts and parts to scores:
 m1 = stream.Measure()
 m1.append([n1, n2, n3])
 p1 = stream.Part
 p1.append([m1])
  • en/music21.1645956389.txt.gz
  • Zuletzt geändert: 2022/02/27 10:06
  • von andres_romero