Various tools and utilities to find correlations between disparate objects in a Stream.

See the chapter Overview: Importing File and Data Formats for more information and examples of converting formats into and out of music21.


class music21.analysis.correlate.ActivityMatch(streamObj)

Given a Stream, find if one object is active while another is also active.

Plotting routines to graph the output of dedicated methods in this class are available.

PlotScatterPitchSpaceDynamicSymbol and PlotScatterWeightedPitchSpaceDynamicSymbol employs the pitchToDynamic() method.

Sample output is as follows:


ActivityMatch methods


Create an analysis of pitch to dynamic symbol.

If dataPoints is True, all data matches between source and destination are returned. If False, 3 point weighted coordinates are created for each unique match.

No dynamics here.

>>> s = corpus.parse('bach/bwv8.6.xml')
>>> am = analysis.correlate.ActivityMatch([0].flat)
>>> am.pitchToDynamic()
Traceback (most recent call last):
CorrelateException: cannot create correlation an object that is not found in the 
Stream: <class 'music21.dynamics.Dynamic'>

Many dynamics

>>> s = corpus.parse('schoenberg')
>>> am = analysis.correlate.ActivityMatch([0].flat)
>>> data = am.pitchToDynamic()
>>> len(data)
>>> data[0]
[83.0, 7]