music21.analysis.reduceChordsOld¶
Automatically reduce a MeasureStack to a single chord or group of chords.
ChordReducer¶
- class music21.analysis.reduceChordsOld.ChordReducer¶
ChordReducer
methods
- ChordReducer.computeMeasureChordWeights(measureObj, weightAlgorithm=None)¶
>>> s = analysis.reduceChordsOld.testMeasureStream1().notes >>> cr = analysis.reduceChordsOld.ChordReducer() >>> cws = cr.computeMeasureChordWeights(s) >>> for pcs in sorted(cws): ... print("%18r %2.1f" % (pcs, cws[pcs])) (0, 4, 7) 3.0 (0, 11, 4, 5) 1.0
Add beatStrength:
>>> cws = cr.computeMeasureChordWeights(s, weightAlgorithm=cr.quarterLengthBeatStrength) >>> for pcs in sorted(cws): ... print("%18r %2.1f" % (pcs, cws[pcs])) (0, 4, 7) 2.2 (0, 11, 4, 5) 0.5
Give extra weight to the last element in a measure:
>>> cws = cr.computeMeasureChordWeights(s, ... weightAlgorithm=cr.quarterLengthBeatStrengthMeasurePosition) >>> for pcs in sorted(cws): ... print("%18r %2.1f" % (pcs, cws[pcs])) (0, 4, 7) 3.0 (0, 11, 4, 5) 0.5
Make consonance count a lot:
>>> cws = cr.computeMeasureChordWeights(s, weightAlgorithm=cr.qlbsmpConsonance) >>> for pcs in sorted(cws): ... print("%18r %2.1f" % (pcs, cws[pcs])) (0, 4, 7) 3.0 (0, 11, 4, 5) 0.5
- ChordReducer.multiPartReduction(inStream, maxChords=2, closedPosition=False, forceOctave=False)¶
Return a multipart reduction of a stream.
- ChordReducer.qlbsmpConsonance(c)¶
Everything from before plus consonance
- ChordReducer.quarterLengthBeatStrength(c)¶
- ChordReducer.quarterLengthBeatStrengthMeasurePosition(c)¶
- ChordReducer.quarterLengthOnly(c)¶
- ChordReducer.reduceMeasureToNChords(measureObj, numChords=1, weightAlgorithm=None, trimBelow=0.25)¶
>>> s = analysis.reduceChordsOld.testMeasureStream1() >>> cr = analysis.reduceChordsOld.ChordReducer()
Reduce to a maximum of 3 chords; though here we will only get one because the other chord is below the trimBelow threshold.
>>> newS = cr.reduceMeasureToNChords(s, 3, ... weightAlgorithm=cr.qlbsmpConsonance, trimBelow = 0.3) >>> newS.show('text') {0.0} <music21.chord.Chord C4 E4 G4 C5> >>> newS.notes.first().quarterLength 4.0
- ChordReducer.reduceThisMeasure(mI, measureIndex, maxChords, closedPosition, forceOctave)¶
Functions¶
- music21.analysis.reduceChordsOld.testMeasureStream1()¶
returns a simple measure stream for testing:
>>> s = analysis.reduceChordsOld.testMeasureStream1() >>> s.show('text') {0.0} <music21.meter.TimeSignature 4/4> {0.0} <music21.chord.Chord C4 E4 G4 C5> {2.0} <music21.chord.Chord C4 E4 F4 B4> {3.0} <music21.chord.Chord C4 E4 G4 C5>