music21-rs

Reports

commit 94ed57a / music21 11.0.0b12 from float3/music21 5151b5189 / Python 3.13.16 / Linux-6.17.0-1022-azure-x86_64-with-glibc2.39

The wheel music21_rs

Full report →

The Python package: what of music21 it answers, how it fares installed over music21, and what the binding costs.

Both at once. music21's own documentation and tests, run over the wheel's classes answering out of the crate.

Test suites

6873 passing, all green

SuiteTestsResultPassedFailedCommand
Workspace crate passed 1185 0 cargo test --workspace --all-targets
Workspace doctests crate passed 177 0 cargo test --workspace --doc
Python parity and music21's doctests cratewheel passed 157 0 cargo test --manifest-path python-parity/Cargo.toml -- --test-threads=1
Python wheelmusic21_rs-0.10.0-cp313-cp313-manylinux_2_34_x86_64.whl wheel passed — — maturin build --release --manifest-path python/Cargo.toml
Python wheel tests wheel passed 199 0 python -m pytest python/tests
music21's own test suiteRun twice, once on music21 and once on the crate, and diffed: music21's own suite fails a number of its own tests in any environment, so what counts is that the two sets match.0 of these fail on music21 itself; 0 fail only under music21_rs cratewheel passed 5155 0 cargo run --release -p xtask --features python -- music21-suite

A suite whose tooling is not installed is skipped, with the reason, rather than failed. One marked for both runs music21's code over the wheel's classes, which answer out of the crate, so a failure there may be either's.

Test coverage

of music21-rs, across every instrumented suite

Lines
92.4%82743 of 89579, 6836 not reached
Functions
93.6%10295 of 11000, 705 not reached
Regions
90.6%100892 of 111388, 10496 not reached

Coverage is not a run of its own: the suites are run instrumented and the profiles merged. The workspace tests, their rustdoc examples and the parity suite reach it, music21's own suite among them, run against the crate linked into the parity suite; whatever goes through the installed wheel does not. Generated tables and the tooling crates are excluded. Read it file by file →

Speed and size against music21

crate 68.0× median, wheel 32.5× median, across 24 cases

Casemusic21cratewheelcrate ×wheel ×binding
construction
Pitch('C#4')1.5 µs123 ns2.0 µs12.3×0.8×+1.8 µs
Note('C#4')7.0 µs134 ns863 ns52.2×8.1×+729 ns
Interval('P5')15.0 µs74 ns462 ns202.7×32.5×+388 ns
Chord('C4 E4 G4')28.2 µs666 ns6.5 µs42.4×4.3×+5.9 µs
chord analysis
Chord.commonName5 chords893.1 µs9.0 µs12.5 µs99.1×71.2×+3.5 µs
Chord.root()5 chords194.8 µs—15.9 µs—12.2×—
Chord.inversion()5 chords291.0 µs3.9 µs7.8 µs74.1×37.4×+3.9 µs
Chord.forteClass5 chords418.7 µs6.1 µs9.8 µs68.4×42.7×+3.7 µs
Chord.primeForm5 chords421.3 µs6.8 µs10.5 µs61.8×40.2×+3.7 µs
Chord.intervalVector5 chords421.1 µs7.2 µs10.5 µs58.2×40.2×+3.2 µs
Chord.isDominantSeventh()5 chords412.9 µs4.4 µs7.6 µs93.7×54.0×+3.2 µs
Chord.orderedPitchClasses5 chords184.2 µs4.9 µs8.2 µs37.7×22.6×+3.3 µs
Chord: forteClass + primeForm + intervalVectorone chord, three questions93.7 µs3.0 µs3.8 µs31.2×24.6×+800 ns
pitch
Pitch.transpose('M3')41.9 µs378 ns2.6 µs110.9×15.9×+2.3 µs
Pitch.frequency1.4 µs305 ns2.2 µs4.7×0.7×+1.9 µs
Pitch.getEnharmonic()33.8 µs—2.4 µs—13.9×—
Interval(p1, p2)16.6 µs295 ns3.8 µs56.2×4.4×+3.5 µs
serial
pcToToneRow(...).matrix()4.2 ms5.4 µs5.9 µs772.5×711.1×+466 ns
ToneRow.zeroCenteredTransformation408.6 µs496 ns817 ns824.3×500.2×+321 ns
figured bass
Segment(G2, '7').allCorrectSinglePossibilities()4.4 ms53.3 µs83.9 µs82.1×52.1×+30.6 µs
Segment(G2, '7') to Segment(C3), a dominant seventh resolving17.2 ms259.4 µs340.6 µs66.3×50.5×+81.2 µs
Segment(C3) to Segment(D3, '4,3'), every pair of voicings6.2 ms90.5 µs154.8 µs68.0×39.8×+64.3 µs
warm object
Chord.commonName (cached)music21 memoizes120 ns—78 ns—1.5×—
Chord.forteClass (cached)music21 memoizes2.3 µs—75 ns—29.9×—

music21 11.0.0b12, Python 3.13.16 (Linux-6.17.0-1022-azure-x86_64-with-glibc2.39). Every side must agree on the answer before any of them is timed. wheel is what a caller installs, asked through the same Python API as music21; crate is the same operation in Rust with no Python in the way, and binding is what lies between the two. Each case builds a fresh object, except those marked cached.

3927 of music21's own tests, timed on every side102s on music21, 97s on music21-rs, 98s on music21-rs-wheel; music21-rs median 1.00×, music21-rs-wheel median 1.00×

Testmusic21music21-rsmusic21-rs-wheelmusic21-rs ×music21-rs-wheel ×
furthest ahead
timeSignatureToMidiEvents (music21.midi.translate)404 ms3 ms3 ms135.44×137.09×
findTransformedHistorical (music21.serial.TwelveToneRow)92 ms1 ms1 ms77.87×78.64×
isTranspositionallySymmetrical (music21.chord.Chord)108 ms3 ms3 ms38.44×38.56×
testFigureFromChordAddOmit (music21.harmony.Test.testFigureFromChordAddOmit)100 ms3 ms3 ms33.97×32.67×
fromIntervalVector (music21.chord)59 ms2 ms2 ms26.96×27.04×
getZRelation (music21.chord.Chord)56 ms2 ms2 ms25.76×26.47×
findHistorical (music21.serial.TwelveToneRow)31 ms1 ms1 ms25.25×25.46×
testOctaveRepeatingScaleStepsReachingAnEnharmonicOctave (music21.scale.test_scale_main.Test.testOctaveRepeatingScaleStepsReachingAnEnharmonicOctave)68 ms3 ms3 ms24.18×24.50×
fromForteClass (music21.chord)39 ms2 ms2 ms21.54×21.79×
simplifyMultipleEnharmonics (music21.pitch)38 ms2 ms2 ms18.73×19.13×
testMelodicMinorB (music21.scale.test_scale_main.Test.testMelodicMinorB)40 ms2 ms2 ms18.59×18.68×
TranspositionChecker (music21.analysis.transposition)38 ms2 ms2 ms15.47×15.16×
furthest behind
testARFFNumericClassValues (music21.features.outputFormats.Test.testARFFNumericClassValues)17 ms1.99 s2.00 s0.01×0.01×
testIncludeClassLabelAndId (music21.features.outputFormats.Test.testIncludeClassLabelAndId)30 ms2.00 s1.98 s0.01×0.02×
testParallelRun (music21.features.base.Test.testParallelRun)334 ms2.31 s2.31 s0.14×0.14×
testIncludeFlagsOff (music21.features.base.Test.testIncludeFlagsOff)445 ms2.39 s2.40 s0.19×0.19×
test_makeBeams__paddingRight (music21.stream.tests.Test.test_makeBeams__paddingRight)2 ms10 ms10 ms0.23×0.23×
SaxophoneFractionFeature (music21.features.jSymbolic)4 ms13 ms13 ms0.32×0.33×
setMinorRootParse (music21.romanText.translate.PartTranslator)3 ms8 ms8 ms0.34×0.34×
populateFromSortedList (music21.tree.core.AVLTree)3 ms7 ms7 ms0.42×0.41×
test_example04_4 (music21.braille.test.Test.test_example04_4)6 ms14 ms14 ms0.44×0.43×
testCoreUnit2 (music21.mei.test_base.Test.testCoreUnit2)5 ms12 ms12 ms0.44×0.43×
quarterConversion (music21.duration)17 ms36 ms38 ms0.47×0.44×
testTextExpressionsD (music21.musicxml.test_xmlToM21.Test.testTextExpressionsD)12 ms23 ms24 ms0.51×0.49×

A test counts only where every side ran it, passed it, and took longer than a millisecond, and what the garbage collector took inside a test is taken off before the sides are compared — a full collection lands on whichever test is running, and each test is timed once. music21-rs is the crate linked into the binary that ran the suite — the working tree — and music21-rs-wheel is the wheel a caller installs, so what lies between those two is the packaging rather than the code. All 3927 tests, side by side →

What each costs to install

music21
88.3 MBinstalled package, corpus and all
music21-rs
8.2 MBthe source cargo publishes
music21_rs wheel
5.6 MBwhat pip installs

Against music21's own tests

9191 of 11558 examples and 666 of 666 unit tests, across 47 modules, 7 with no harness yet

ModuleDocstringsExamplesUnit tests
music21.stream.baseno harness yet
0 of 144
0 of 2278
271 of 271
music21.chord
108 of 108
981 of 981
31 of 31
music21.pitch
84 of 84
934 of 934
38 of 38
music21.interval
107 of 107
771 of 771
14 of 14
music21.duration
53 of 53
588 of 588
16 of 16
music21.roman
34 of 34
560 of 560
34 of 34
music21.voiceLeading
61 of 61
515 of 515
2 of 2
music21.meter.base
34 of 34
387 of 387
22 of 22
music21.meter.core
39 of 39
386 of 386
none
music21.harmony
26 of 26
364 of 364
28 of 28
music21.expressions
40 of 40
350 of 350
12 of 12
music21.scale
62 of 62
344 of 344
58 of 58
music21.note
33 of 33
341 of 341
13 of 13
music21.key
18 of 18
245 of 245
7 of 7
music21.figuredBass.possibility
16 of 16
211 of 211
none
music21.tempo
27 of 27
196 of 196
17 of 17
music21.figuredBass.resolution
13 of 13
172 of 172
none
music21.clef
29 of 29
151 of 151
4 of 4
music21.instrument
15 of 15
150 of 150
12 of 12
music21.serial
22 of 22
149 of 149
6 of 6
music21.figuredBass.notation
12 of 12
129 of 129
3 of 3
music21.analysis.discrete
25 of 25
122 of 122
7 of 7
music21.figuredBass.segment
12 of 12
122 of 122
none
music21.beam
13 of 13
112 of 112
2 of 2
music21.analysis.neoRiemannian
13 of 13
107 of 107
6 of 6
music21.sieve
25 of 25
107 of 107
9 of 9
music21.articulations
27 of 27
105 of 105
2 of 2
music21.figuredBass.checker
12 of 12
102 of 102
none
music21.figuredBass.realizer
8 of 8
80 of 80
3 of 3
music21.figuredBass.examples
11 of 11
71 of 71
none
music21.chord.tables
10 of 10
65 of 65
5 of 5
music21.scale.scala
7 of 7
55 of 55
5 of 5
music21.dynamics
6 of 6
49 of 49
6 of 6
music21.volume
9 of 9
46 of 46
9 of 9
music21.analysis.windowedno harness yet
0 of 3
0 of 35
5 of 5
music21.analysis.transposition
7 of 7
28 of 28
7 of 7
music21.figuredBass.realizerScale
4 of 4
26 of 26
none
music21.figuredBass.harmony
4 of 4
24 of 24
none
music21.analysis.harmonicFunction
2 of 2
22 of 22
4 of 4
music21.analysis.floatingKeyno harness yet
0 of 2
0 of 14
1 of 1
music21.analysis.patelno harness yet
0 of 2
0 of 14
none
music21.analysis.metricalno harness yet
0 of 2
0 of 13
none
music21.tie
2 of 2
13 of 13
1 of 1
music21.analysis.pitchAnalysisno harness yet
0 of 1
0 of 7
none
music21.analysis.enharmonics
1 of 1
6 of 6
4 of 4
music21.analysis.segmentByRestsno harness yet
0 of 2
0 of 6
2 of 2
music21.figuredBass.rules
1 of 1
5 of 5
none
every module
1032 of 1188
9191 of 11558
666 of 666

music21's own docstrings and unit tests, run over the wheel's classes answering out of the crate, so a row here is a row for both. A docstring passes only when every one of its examples does. Every docstring is read as music21's own runner reads it, which rewrites an object's address to 0x... before comparing; the unit-test column is music21's own test suite, attributed per module, where a test music21 itself fails counts as not passing.

music21's API, member by member

1635 members:1348 in the crate973 in the wheel

189 classes
▶Chordchord/__init__.py crate 97 of 97
wheel 97 of 97

Chord analysis and the notation its notes carry. The per-note getters and setters music21 deprecated in v11 are the note's own methods here, reached through notes_mut.

music21Cratemusic21-rsWheel
formatVectorStringportedformat_vector_stringin the wheel
addportedaddin the wheel
annotateIntervalsportedannotate_intervalsin the wheel
areZRelationsportedare_z_relationsin the wheel
bassportedbassin the wheel
canBeDominantVportedcan_be_dominant_vin the wheel
canBeTonicportedcan_be_tonicin the wheel
closedPositionportedclosed_positionin the wheel
containsSeventhportedcontains_seventhin the wheel
containsTriadportedcontains_triadin the wheel
geometricNormalFormportedgeometric_normal_formin the wheel
getChordStepportedchord_stepin the wheel
getColorportedcolorin the wheel
getNoteheadportednoteheadin the wheel
getNoteheadFillportednotehead_fillin the wheel
getStemDirectionportedstem_directionin the wheel
getTieportedtiein the wheel
getVolumeportedvolumein the wheel
getZRelationportedz_relationin the wheel
hasAnyEnharmonicSpelledPitchesportedhas_any_enharmonic_spelled_pitchesin the wheel
hasAnyRepeatedDiatonicNoteportedhas_any_repeated_diatonic_notein the wheel
hasRepeatedChordStepportedhas_repeated_chord_stepin the wheel
intervalFromChordStepportedinterval_from_chord_stepin the wheel
inversionportedinversionin the wheel
setInversionportedset_inversionin the wheel
inversionNameportedinversion_namein the wheel
inversionTextportedinversion_textin the wheel
isAugmentedSixthportedis_augmented_sixthin the wheel
isAugmentedTriadportedis_augmented_triadin the wheel
isConsonantportedis_consonantin the wheel
isDiminishedSeventhportedis_diminished_seventhin the wheel
isSeventhOfTypeportedis_seventh_of_typein the wheel
isDiminishedTriadportedis_diminished_triadin the wheel
isDominantSeventhportedis_dominant_seventhin the wheel
isFalseDiminishedSeventhportedis_false_diminished_seventhin the wheel
isFrenchAugmentedSixthportedis_french_augmented_sixthin the wheel
isGermanAugmentedSixthportedis_german_augmented_sixthin the wheel
isHalfDiminishedSeventhportedis_half_diminished_seventhin the wheel
isIncompleteMajorTriadportedis_incomplete_major_triadin the wheel
isIncompleteMinorTriadportedis_incomplete_minor_triadin the wheel
isItalianAugmentedSixthportedis_italian_augmented_sixthin the wheel
isMajorTriadportedis_major_triadin the wheel
isMinorTriadportedis_minor_triadin the wheel
isTranspositionallySymmetricalportedis_transpositionally_symmetricalin the wheel
isSeventhportedis_seventhin the wheel
isNinthportedis_ninthin the wheel
isSwissAugmentedSixthportedis_swiss_augmented_sixthin the wheel
isTriadportedis_triadin the wheel
removeRedundantPitchesportedremove_redundant_pitchesin the wheel
removeRedundantPitchClassesportedremove_redundant_pitch_classesin the wheel
removeRedundantPitchNamesportedremove_redundant_pitch_namesin the wheel
rootportedrootin the wheel
semiClosedPositionportedsemi_closed_positionin the wheel
semitonesFromChordStepportedsemitones_from_chord_stepin the wheel
setColorportedset_colorin the wheel
setNoteheadportedset_noteheadin the wheel
setNoteheadFillportedset_notehead_fillin the wheel
setStemDirectionportedset_stem_directionin the wheel
setTieportedset_tiein the wheel
setVolumeportedset_volumein the wheel
simplifyEnharmonicsportedsimplify_enharmonicsin the wheel
isSortedDiatonicAscendingportedis_sorted_diatonic_ascendingin the wheel
sortAscendingportedsort_ascendingin the wheel
sortChromaticAscendingportedsort_chromatic_ascendingin the wheel
sortDiatonicAscendingportedsort_diatonic_ascendingin the wheel
sortFrequencyAscendingportedsort_frequency_ascendingin the wheel
transposeportedtransposein the wheel
chordTablesAddressportedchord_tables_address_entryin the wheel
commonNameportedcommon_namein the wheel
durationporteddurationin the wheel
fifthportedfifthin the wheel
forteClassportedforte_classin the wheel
forteClassNumberportedforte_class_numberin the wheel
forteClassTnportedforte_class_tnin the wheel
forteClassTnIportedforte_class_tniin the wheel
fullNameportedfull_namein the wheel
hasZRelationportedhas_z_relationin the wheel
intervalVectorportedinterval_class_vectorin the wheel
intervalVectorStringportedinterval_vector_stringin the wheel
isPrimeFormInversionportedis_prime_form_inversionin the wheel
multisetCardinalityportedmultiset_cardinalityin the wheel
notesportednotesin the wheel
normalOrderportednormal_orderin the wheel
normalOrderStringportednormal_order_stringin the wheel
orderedPitchClassesportedpitch_classesin the wheel
orderedPitchClassesStringportedordered_pitch_classes_stringin the wheel
pitchClassCardinalityportedpitch_class_cardinalityin the wheel
pitchClassesportednote_pitch_classesin the wheel
pitchNamesportedpitch_namesin the wheel
pitchedCommonNameportedpitched_common_namein the wheel
pitchesportedpitchesin the wheel
primeFormportedprime_formin the wheel
primeFormStringportedprime_form_stringin the wheel
qualityportedqualityin the wheel
scaleDegreesportedscale_degreesin the wheel
seventhportedseventhin the wheel
thirdportedthirdin the wheel
▶Pitchpitch.py crate 43 of 45
wheel 45 of 45
2 to port
music21Cratemusic21-rsWheel
groupsmissingthe group names music21 picks elements out of a stream by (getElementsByGroup); a stream here picks by kind and by position, and nothing in it carries group namesin the wheel
informClientmissingobserver callback for a containing note; there is nonein the wheel
accidentalportedaccidentalin the wheel
microtoneportedmicrotonein the wheel
isTwelveToneportedis_twelve_tonein the wheel
getCentShiftFromMidiportedcent_shift_from_midiin the wheel
alterportedalterin the wheel
convertQuarterTonesToMicrotonesportedconvert_quarter_tones_to_microtonesin the wheel
convertMicrotonesToQuarterTonesportedconvert_microtones_to_quarter_tonesin the wheel
psportedpsin the wheel
midiportedmidiin the wheel
nameportednamein the wheel
unicodeNameportedunicode_namein the wheel
nameWithOctaveportedname_with_octavein the wheel
unicodeNameWithOctaveportedunicode_name_with_octavein the wheel
fullNameportedfull_namein the wheel
stepportedstepin the wheel
pitchClassportedpitch_classin the wheel
pitchClassStringportedpitch_class_stringin the wheel
octaveportedoctavein the wheel
octaveIsImplicitportedoctave_is_implicitin the wheel
implicitOctaveportedimplicit_octavein the wheel
germanportedgermanin the wheel
italianporteditalianin the wheel
spanishportedspanishin the wheel
frenchportedfrenchin the wheel
frequencyportedfrequency_hzin the wheel
freq440portedfrequency_hzin the wheel
getHarmonicportedharmonicin the wheel
harmonicFromFundamentalportedharmonic_from_fundamentalin the wheel
harmonicStringportedharmonic_stringin the wheel
harmonicAndFundamentalFromPitchportedharmonic_and_fundamental_from_pitchin the wheel
harmonicAndFundamentalStringFromPitchportedharmonic_and_fundamental_string_from_pitchin the wheel
isEnharmonicportedis_enharmonicin the wheel
getHigherEnharmonicportedget_higher_enharmonicin the wheel
getLowerEnharmonicportedget_lower_enharmonicin the wheel
simplifyEnharmonicportedsimplify_enharmonicin the wheel
getEnharmonicportedget_enharmonicin the wheel
getAllCommonEnharmonicsportedall_common_enharmonicsin the wheel
diatonicNoteNumporteddiatonic_note_numberin the wheel
transposeportedtransposein the wheel
transposeBelowTargetportedtranspose_below_targetin the wheel
transposeAboveTargetportedtranspose_above_targetin the wheel
updateAccidentalDisplayportedupdate_accidental_displayin the wheel
getStringHarmonicportedstring_harmonicin the wheel
▶Accidentalpitch.py crate 12 of 12
wheel 12 of 12
music21Cratemusic21-rsWheel
listNamesportedlist_namesin the wheel
setportedsetin the wheel
isTwelveToneportedis_twelve_tonein the wheel
setAttributeIndependentlyportedset_attribute_independentlyin the wheel
inheritDisplayportedinherit_displayin the wheel
nameportednamein the wheel
alterportedalterin the wheel
modifierportedmodifierin the wheel
displayTypeporteddisplay_typein the wheel
displayStatusporteddisplay_statusin the wheel
unicodeportedunicodein the wheel
fullNameportedfull_namein the wheel
▶Microtonepitch.py crate 3 of 3
wheel 3 of 3
music21Cratemusic21-rsWheel
alterportedalterin the wheel
centsportedcentsin the wheel
harmonicShiftportedharmonic_shiftin the wheel
▶Intervalinterval.py crate 29 of 29
wheel 29 of 29
music21Cratemusic21-rsWheel
genericportedgenericin the wheel
nameportedshort_namein the wheel
niceNameportednamein the wheel
simpleNameportedsimple_namein the wheel
simpleNiceNameportedsimple_nice_namein the wheel
semiSimpleNameportedsemi_simple_namein the wheel
semiSimpleNiceNameportedsemi_simple_nice_namein the wheel
directedNameporteddirected_namein the wheel
directedNiceNameporteddirected_nice_namein the wheel
directedSimpleNameporteddirected_simple_namein the wheel
directedSimpleNiceNameporteddirected_simple_nice_namein the wheel
semitonesportedsemitonesin the wheel
directionporteddirectionin the wheel
specifierportedspecifierin the wheel
specificNameportedspecific_namein the wheel
isDiatonicStepportedis_diatonic_stepin the wheel
isChromaticStepportedis_chromatic_stepin the wheel
isStepportedis_stepin the wheel
isSkipportedis_skipin the wheel
isConsonantportedis_consonantin the wheel
complementportedcomplementin the wheel
intervalClassportedinterval_classin the wheel
centsportedcentsin the wheel
transposePitchportedtranspose_pitchin the wheel
reverseportedreversedin the wheel
pitchStartportedpitch_startin the wheel
pitchEndportedpitch_endin the wheel
noteStartportednote_startin the wheel
noteEndportednote_endin the wheel
▶GenericIntervalinterval.py crate 26 of 26
wheel 26 of 26
music21Cratemusic21-rsWheel
valueportedvaluein the wheel
directedporteddirectedin the wheel
undirectedportedundirectedin the wheel
directionporteddirectionin the wheel
isSkipportedis_skipin the wheel
isDiatonicStepportedis_diatonic_stepin the wheel
isStepportedis_stepin the wheel
isUnisonportedis_unisonin the wheel
simpleUndirectedportedsimple_undirectedin the wheel
semiSimpleUndirectedportedsemi_simple_undirectedin the wheel
undirectedOctavesportedundirected_octavesin the wheel
octavesportedoctavesin the wheel
simpleDirectedportedsimple_directedin the wheel
semiSimpleDirectedportedsemi_simple_directedin the wheel
perfectableportedis_perfectablein the wheel
niceNameportednice_namein the wheel
simpleNiceNameportedsimple_nice_namein the wheel
semiSimpleNiceNameportedsemi_simple_nice_namein the wheel
staffDistanceportedstaff_distancein the wheel
mod7inversionportedmod7_inversionin the wheel
mod7portedmod7in the wheel
complementportedcomplementin the wheel
reverseportedreversein the wheel
transposePitchportedtranspose_pitchin the wheel
transposePitchKeyAwareportedtranspose_pitch_key_awarein the wheel
getDiatonicportedget_diatonicin the wheel
▶DiatonicIntervalinterval.py crate 25 of 25
wheel 25 of 25
music21Cratemusic21-rsWheel
nameportednamein the wheel
niceNameportednice_namein the wheel
specificNameportedspecific_namein the wheel
simpleNameportedsimple_namein the wheel
simpleNiceNameportedsimple_nice_namein the wheel
semiSimpleNameportedsemi_simple_namein the wheel
semiSimpleNiceNameportedsemi_simple_nice_namein the wheel
directionporteddirectionin the wheel
directedNameporteddirected_namein the wheel
directedNiceNameporteddirected_nice_namein the wheel
directedSimpleNameporteddirected_simple_namein the wheel
directedSimpleNiceNameporteddirected_simple_nice_namein the wheel
directedSemiSimpleNameporteddirected_semi_simple_namein the wheel
directedSemiSimpleNiceNameporteddirected_semi_simple_nice_namein the wheel
isStepportedis_stepin the wheel
isDiatonicStepportedis_diatonic_stepin the wheel
isSkipportedis_skipin the wheel
perfectableportedis_perfectablein the wheel
mod7inversionportedmod7_inversionin the wheel
mod7portedmod7in the wheel
reverseportedreversein the wheel
getChromaticportedget_chromaticin the wheel
transposePitchportedtranspose_pitchin the wheel
specifierAbbreviationportedspecifier_abbreviationin the wheel
centsportedcentsin the wheel
▶ChromaticIntervalinterval.py crate 13 of 13
wheel 13 of 13
music21Cratemusic21-rsWheel
centsportedcentsin the wheel
directedporteddirectedin the wheel
undirectedportedundirectedin the wheel
directionporteddirectionin the wheel
mod12portedmod12in the wheel
simpleUndirectedportedsimple_undirectedin the wheel
simpleDirectedportedsimple_directedin the wheel
intervalClassportedinterval_classin the wheel
isChromaticStepportedis_chromatic_stepin the wheel
isStepportedis_stepin the wheel
reverseportedreversein the wheel
getDiatonicportedget_diatonicin the wheel
transposePitchportedtranspose_pitchin the wheel
▶Specifierinterval.py crate 4 of 4
wheel 4 of 4
music21Cratemusic21-rsWheel
niceNameportednice_namein the wheel
inversionportedinversionin the wheel
semitonesAbovePerfectportedsemitones_above_perfectin the wheel
semitonesAboveMajorportedsemitones_above_majorin the wheel
▶interval.py functionsinterval.py crate 20 of 20
wheel 20 of 20

Module-level helpers.

music21Cratemusic21-rsWheel
convertStaffDistanceToIntervalportedstaff_distance_to_generic_numberin the wheel
convertDiatonicNumberToStepportedconvert_diatonic_number_to_stepin the wheel
parseSpecifierportedparse_specifierin the wheel
convertGenericportedconvert_genericin the wheel
convertSemitoneToSpecifierGenericMicrotoneportedconvert_semitone_to_specifier_generic_microtonein the wheel
convertSemitoneToSpecifierGenericportedconvert_semitone_to_specifier_genericin the wheel
intervalToPythagoreanRatioportedpythagorean_ratioin the wheel
notesToGenericportednotes_to_genericin the wheel
notesToChromaticportednotes_to_chromaticin the wheel
intervalsToDiatonicportedintervals_to_diatonicin the wheel
intervalFromGenericAndChromaticportedfrom_generic_and_chromaticin the wheel
getWrittenHigherNoteportedwritten_higher_pitchin the wheel
getAbsoluteHigherNoteportedabsolute_higher_pitchin the wheel
getWrittenLowerNoteportedwritten_lower_pitchin the wheel
getAbsoluteLowerNoteportedabsolute_lower_pitchin the wheel
transposePitchportedtranspose_pitchin the wheel
transposeNoteportedtranspose_notein the wheel
notesToIntervalportedbetween_pitchesin the wheel
addportedsumin the wheel
subtractporteddifferencein the wheel
▶KeySignaturekey.py crate 7 of 7
wheel 7 of 7
music21Cratemusic21-rsWheel
asKeyportedas_keyin the wheel
alteredPitchesportedaltered_pitchesin the wheel
accidentalByStepportedaccidental_by_stepin the wheel
transposeportedtransposein the wheel
transposePitchFromCportedtranspose_pitch_from_cin the wheel
getScaleportedscalein the wheel
sharpsportedsharpsin the wheel
▶Keykey.py crate 6 of 6
wheel 6 of 6

tonalCertainty belongs to a key that came out of analysis, so it lives on the ranked estimates in analysis.

music21Cratemusic21-rsWheel
relativeportedrelativein the wheel
parallelportedparallelin the wheel
tonicPitchNameWithCaseportedtonic_pitch_name_with_casein the wheel
deriveByDegreeportedderive_by_degreein the wheel
tonalCertaintyportedtonal_certaintyin the wheel
transposeportedtransposein the wheel
▶ConcreteScalescale/__init__.py crate 23 of 27
wheel 25 of 27
4 to port2 not in wheel
music21Cratemusic21-rsWheel
writemissingwrites a file, and this library does no file IO: a caller saves the Scala text scala_data and file_string give, or a score musicxml::to_musicxml writesnot in the wheel
showmissingopens the scale in another program, which is the caller's to donot in the wheel
isConcretemissingevery Scale here has a tonic, so the question has one answer; the wheel answers it for a scale built without onein the wheel
abstractmissinga scale's pattern is its ScaleType or the steps it was given, read with scale_type and custom_steps; there is no abstract scale object beside it, and the wheel hands music21 one built from thosein the wheel
nameportedmusic21_namein the wheel
getTonicportedtonicin the wheel
getDegreeMaxUniqueporteddegree_countin the wheel
transposeportedtransposein the wheel
tuneportedtunein the wheel
romanNumeralportedroman_numeralin the wheel
getPitchesportedpitchesin the wheel
getChordportedchordin the wheel
pitchFromDegreeportedpitch_at_degreein the wheel
pitchesFromScaleDegreesportedpitches_from_scale_degreesin the wheel
intervalBetweenDegreesportedinterval_between_degreesin the wheel
getScaleDegreeFromPitchporteddegree_ofin the wheel
getScaleDegreeAndAccidentalFromPitchporteddegree_and_accidental_ofin the wheel
solfegportedsolfegin the wheel
nextPitchportednext_pitch_abovein the wheel
isNextportedis_nextin the wheel
matchportedmatch_pitchesin the wheel
findMissingportedfind_missingin the wheel
deriveRankedportedderive_rankedin the wheel
deriveportedderivein the wheel
deriveAllportedderive_allin the wheel
deriveByDegreeportedderive_by_degreein the wheel
getScalaDataportedscala_datain the wheel
▶scale/__init__.py classesscale/__init__.py crate 22 of 32
wheel 26 of 32
10 to port6 not in wheel

The ConcreteScale subclasses, as ScaleType variants or runtime constructors.

music21Cratemusic21-rsWheel
AbstractDiatonicScalemissingthe IntervalNetwork layernot in the wheel
AbstractOctatonicScalemissingthe IntervalNetwork layernot in the wheel
AbstractHarmonicMinorScalemissingthe IntervalNetwork layernot in the wheel
AbstractMelodicMinorScalemissingthe IntervalNetwork layernot in the wheel
AbstractCyclicalScalemissingthe IntervalNetwork layernot in the wheel
AbstractOctaveRepeatingScalemissingthe IntervalNetwork layernot in the wheel
Scalemissingthe abstract basein the wheel
AbstractScalemissinga pattern with no tonic is a ScaleType or a list of steps; the wheel's AbstractScale stands on those and builds music21's IntervalNetwork from themin the wheel
ConcreteScalemissingrealized by Scale, StepScale and ScalaScalein the wheel
DiatonicScalemissingthe diatonic modes are ScaleType variantsin the wheel
MajorScaleportedMajorScalein the wheel
MinorScaleportedMinorScalein the wheel
DorianScaleportedDorianScalein the wheel
PhrygianScaleportedPhrygianScalein the wheel
LydianScaleportedLydianScalein the wheel
MixolydianScaleportedMixolydianScalein the wheel
HypodorianScaleportedHypodorianScalein the wheel
HypophrygianScaleportedHypophrygianScalein the wheel
HypolydianScaleportedHypolydianScalein the wheel
HypomixolydianScaleportedHypomixolydianScalein the wheel
LocrianScaleportedLocrianScalein the wheel
HypolocrianScaleportedHypolocrianScalein the wheel
HypoaeolianScaleportedHypoaeolianScalein the wheel
HarmonicMinorScaleportedHarmonicMinorScalein the wheel
MelodicMinorScaleportedMelodicMinorScalein the wheel
OctatonicScaleportedOctatonicScalein the wheel
OctaveRepeatingScaleportedoctave_repeatingin the wheel
CyclicalScaleportedcyclicalin the wheel
ChromaticScaleportedChromaticScalein the wheel
WholeToneScaleportedWholeToneScalein the wheel
SieveScaleportedsievein the wheel
ScalaScaleportedScalaScalein the wheel
▶RomanNumeralroman.py crate 11 of 11
wheel 11 of 11
music21Cratemusic21-rsWheel
adjustMinorVIandVIIByQualityportedadjust_minor_vi_and_vii_by_qualityin the wheel
transposeportedtransposein the wheel
romanNumeralportedroman_numeralin the wheel
figureportedfigurein the wheel
figureAndKeyportedfigure_and_keyin the wheel
keyportedkeyin the wheel
scaleDegreeWithAlterationportedscale_degree_with_alterationin the wheel
bassScaleDegreeFromNotationportedbass_scale_degree_from_notationin the wheel
functionalityScoreportedfunctionality_scorein the wheel
isNeapolitanportedis_neapolitanin the wheel
isMixtureportedis_mixturein the wheel
▶TimeSignaturemeter/base.py crate 31 of 33
wheel 33 of 33
2 to port

The bar, the beats, the beams and the accent partitions, as the four MeterSequences music21 hangs off a meter; the tree is modelled here rather than the numbers being derived from the ratio alone.

music21Cratemusic21-rsWheel
resetValuesmissingrebuilding a meter in place; a new one is built insteadin the wheel
loadmissingrebuilding a meter in place; a new one is built insteadin the wheel
ratioStringportedratio_stringin the wheel
ratioEqualportedratio_equalin the wheel
numeratorportednumeratorin the wheel
denominatorporteddenominatorin the wheel
barDurationportedbar_durationin the wheel
beatLengthToQuarterLengthRatioportedbeat_length_to_quarter_length_ratioin the wheel
quarterLengthToBeatLengthRatioportedquarter_length_to_beat_length_ratioin the wheel
beatCountportedbeat_countin the wheel
beatCountNameportedbeat_count_namein the wheel
beatDurationportedbeat_durationin the wheel
beatDivisionCountportedbeat_division_countin the wheel
beatDivisionCountNameportedbeat_division_count_namein the wheel
beatDivisionDurationsportedbeat_division_durationsin the wheel
beatSubDivisionDurationsportedbeat_sub_division_durationsin the wheel
classificationportedclassificationin the wheel
summedNumeratorportedsummed_numeratorin the wheel
getBeamsportedbeams_forin the wheel
setDisplayportedset_displayin the wheel
getAccentportedaccentin the wheel
setAccentWeightportedset_accent_weightin the wheel
averageBeatStrengthportedaverage_beat_strengthin the wheel
getMeasureOffsetOrMeterModulusOffsetportedoffset_in_barin the wheel
getAccentWeightportedaccent_weightin the wheel
getBeatportedbeat_at_offsetin the wheel
getBeatOffsetsportedbeat_offsetsin the wheel
getBeatDurationportedbeat_durationin the wheel
getOffsetFromBeatportedoffset_from_beatin the wheel
getBeatProgressportedbeat_progressin the wheel
getBeatProportionportedbeat_proportionin the wheel
getBeatProportionStrportedbeat_proportion_stringin the wheel
getBeatDepthportedbeat_depthin the wheel
▶MetronomeMarktempo.py crate 10 of 10
wheel 10 of 10
music21Cratemusic21-rsWheel
referentportedreferentin the wheel
numberSoundingportednumber_soundingin the wheel
getQuarterBPMportedquarter_bpmin the wheel
setQuarterBPMportedquarter_bpmin the wheel
getTextExpressionportedtext_expressionin the wheel
getEquivalentByReferentportedequivalent_by_referentin the wheel
getMaintainedNumberWithReferentportedmaintained_number_with_referentin the wheel
secondsPerQuarterportedseconds_per_quarterin the wheel
durationToSecondsportedduration_to_secondsin the wheel
secondsToDurationportedseconds_to_durationin the wheel
▶MetricModulationtempo.py crate 8 of 8
wheel 8 of 8

A change of tempo written as an equation between two metronome marks.

music21Cratemusic21-rsWheel
oldMetronomeportedold_metronomein the wheel
oldReferentportedold_referentin the wheel
newMetronomeportednew_metronomein the wheel
newReferentportednew_referentin the wheel
numberportednumberin the wheel
updateByContextportedupdate_fromin the wheel
setEqualityByReferentportedset_equality_by_referentin the wheel
setOtherByReferentportedset_other_by_referentin the wheel
▶Instrumentinstrument.py crate 2 of 4
wheel 4 of 4
2 to port

One of music21's instrument classes, with what an instrument of it starts out as.

music21Cratemusic21-rsWheel
partIdRandomizemissingmakes an id up out of the clock and a random number; the crate keeps the id a score gives (part_id) and makes none up, reading no clock -- the wheel gives a random one as music21 doesin the wheel
instrumentIdRandomizemissingmakes an id up out of the clock and a random number; the crate keeps the id a score gives (instrument_id) and makes none up, reading no clock -- the wheel gives a random one as music21 doesin the wheel
bestNameportedbest_namein the wheel
autoAssignMidiChannelportedauto_assign_midi_channelin the wheel
▶StringInstrumentinstrument.py crate 1 of 1
wheel 1 of 1

A string instrument's open strings, the only member music21 gives its string family.

music21Cratemusic21-rsWheel
stringPitchesportedstring_pitchesin the wheel
▶UnpitchedPercussioninstrument.py crate 1 of 1
wheel 1 of 1

How an unpitched percussion instrument is played, and the drum that plays.

music21Cratemusic21-rsWheel
modifierportedmodifierin the wheel
▶instrument.py functionsinstrument.py crate 8 of 8
wheel 8 of 8

Module-level helpers: finding an instrument by name or program, and what instruments do to a stream they stand in.

music21Cratemusic21-rsWheel
unbundleInstrumentsportedunbundle_instrumentsin the wheel
bundleInstrumentsportedbundle_instrumentsin the wheel
ensembleNameBySizeportedensemble_name_by_sizein the wheel
deduplicateporteddeduplicatein the wheel
instrumentFromMidiProgramportedfrom_midi_programin the wheel
partitionByInstrumentportedpartition_by_instrumentin the wheel
fromStringportedfrom_namein the wheel
getAllNamesForInstrumentportedall_namesin the wheel
▶PercussionMappermidi/percussion.py crate 2 of 2
wheel 0 of 2
2 not in wheel

The General MIDI percussion map, both ways: the instrument a key plays, played the way that key says, and the key an instrument is played by. music21's reverseInstrumentMapping is tables::PERCUSSION_KEYS.

music21Cratemusic21-rsWheel
midiPitchToInstrumentportedfor_percussion_keynot in the wheel
midiInstrumentToPitchportedpercussion_pitchnot in the wheel
▶Durationduration.py crate 22 of 24
wheel 24 of 24
2 to port

A quarter length, the note values it is written as, and the tuplets it is written inside.

music21Cratemusic21-rsWheel
informClientmissingobserver callback for a containing note; there is nonein the wheel
currentComponentsmissingthe working-out is not deferred here, so there is no half-worked-out state to readin the wheel
linkedportedlinkedin the wheel
addDurationTupleportedadd_duration_tuplein the wheel
appendTupletportedappend_tupletin the wheel
augmentOrDiminishportedaugment_or_diminishin the wheel
clearportedclearin the wheel
componentIndexAtQtrPositionportedcomponent_index_at_qtr_positionin the wheel
componentStartTimeportedcomponent_start_timein the wheel
consolidateportedconsolidatein the wheel
getGraceDurationportedgrace_durationin the wheel
sliceComponentAtPositionportedslice_component_at_positionin the wheel
splitDotGroupsportedsplit_dot_groupsin the wheel
componentsportedcomponentsin the wheel
dotGroupsporteddot_groupsin the wheel
dotsporteddotsin the wheel
fullNameportedfull_namein the wheel
isComplexportedis_complexin the wheel
ordinalportedordinalin the wheel
quarterLengthNoTupletsportedquarter_length_no_tupletsin the wheel
quarterLengthportedquarter_lengthin the wheel
tupletsportedtupletsin the wheel
aggregateTupletMultiplierportedaggregate_tuplet_multiplierin the wheel
typeportedduration_typein the wheel
▶ToneRowserial.py crate 10 of 10
wheel 10 of 10
music21Cratemusic21-rsWheel
pitchClassesportedpitch_classesin the wheel
noteNamesportednote_namesin the wheel
isTwelveToneRowportedis_twelve_tone_rowin the wheel
makeTwelveToneRowportedmake_twelve_tone_rowin the wheel
isSameRowportedis_same_rowin the wheel
getIntervalsAsStringportedintervals_as_stringin the wheel
zeroCenteredTransformationportedzero_centered_transformationin the wheel
originalCenteredTransformationportedoriginal_centered_transformationin the wheel
findZeroCenteredTransformationsportedfind_zero_centered_transformationsin the wheel
findOriginalCenteredTransformationsportedfind_original_centered_transformationsin the wheel
▶TwelveToneRowserial.py crate 7 of 7
wheel 7 of 7
music21Cratemusic21-rsWheel
matrixportedmatrixin the wheel
findHistoricalportedfind_historicalin the wheel
findTransformedHistoricalportedfind_transformed_historicalin the wheel
isAllIntervalportedis_all_intervalin the wheel
getLinkClassificationportedlink_classificationin the wheel
isLinkChordportedis_link_chordin the wheel
areCombinatorialportedare_combinatorialin the wheel
▶serial.py functionsserial.py crate 3 of 3
wheel 3 of 3

Module-level helpers.

music21Cratemusic21-rsWheel
getHistoricalRowByNameportedhistorical_row_by_namein the wheel
pcToToneRowportednewin the wheel
rowToMatrixportedrow_to_matrixin the wheel
▶VoiceLeadingQuartetvoiceLeading.py crate 30 of 30
wheel 30 of 30
music21Cratemusic21-rsWheel
keyportedkeyin the wheel
v1n1portedv1n1in the wheel
v1n2portedv1n2in the wheel
v2n1portedv2n1in the wheel
v2n2portedv2n2in the wheel
motionTypeportedmotion_typein the wheel
noMotionportedno_motionin the wheel
obliqueMotionportedoblique_motionin the wheel
similarMotionportedsimilar_motionin the wheel
parallelMotionportedparallel_motionin the wheel
contraryMotionportedcontrary_motionin the wheel
outwardContraryMotionportedoutward_contrary_motionin the wheel
inwardContraryMotionportedinward_contrary_motionin the wheel
antiParallelMotionportedanti_parallel_motionin the wheel
parallelIntervalportedparallel_intervalin the wheel
parallelFifthportedparallel_fifthin the wheel
parallelOctaveportedparallel_octavein the wheel
parallelUnisonportedparallel_unisonin the wheel
parallelUnisonOrOctaveportedparallel_unison_or_octavein the wheel
hiddenIntervalportedhidden_intervalin the wheel
hiddenFifthportedhidden_fifthin the wheel
hiddenOctaveportedhidden_octavein the wheel
voiceOverlapportedvoice_overlapin the wheel
voiceCrossingportedvoice_crossingin the wheel
isProperResolutionportedis_proper_resolutionin the wheel
leapNotSetWithStepportedleap_not_set_with_stepin the wheel
modalOpeningportedmodal_openingin the wheel
opensIncorrectlyportedopens_incorrectlyin the wheel
clausulaVeraportedclausula_verain the wheel
closesIncorrectlyportedcloses_incorrectlyin the wheel
▶Sievesieve.py crate 4 of 9
wheel 9 of 9
5 to port

The sieve as written and its compressed reading: parse, membership, the segment formats and the interval widths of one period.

music21Cratemusic21-rsWheel
expandmissingwhich reading answers is not state on the sieve here; compressed hands back the other one and the sieve as written stays as it wasin the wheel
setZmissingthe range is an argument of each question here, not state on the sievein the wheel
setZRangemissingthe range is an argument of each question here, not state on the sievein the wheel
setSegmentFormatmissingthe segment format is an argument of each question here, not state on the sievein the wheel
representmissingthe sieve is written by Display, which is not a function the map can namein the wheel
compressportedcompressedin the wheel
segmentportedsegmentin the wheel
periodportedperiodin the wheel
collectportedcollectin the wheel
▶Beamsbeam.py crate 12 of 12
wheel 12 of 12

All the beams over one note, and the rules for a run of them.

music21Cratemusic21-rsWheel
naiveBeamsportednaive_beamsin the wheel
removeSandwichedUnbeamablesportedremove_sandwiched_unbeamablesin the wheel
mergeConnectingPartialBeamsportedmerge_connecting_partial_beamsin the wheel
sanitizePartialBeamsportedsanitize_partial_beamsin the wheel
appendportedappendin the wheel
fillportedfillin the wheel
getByNumberportedby_numberin the wheel
getNumbersportednumbersin the wheel
getTypeByNumberportedby_numberin the wheel
getTypesportedtypesin the wheel
setAllportedset_allin the wheel
setByNumberportedset_by_numberin the wheel
▶Volumevolume.py crate 7 of 9
wheel 9 of 9
2 to port

How loud a note sounds, as a velocity and as a scalar.

music21Cratemusic21-rsWheel
cachedRealizedmissingthe crate caches nothing -- a value that answers the same question twice is doing arithmetic. The wheel caches as music21 doesin the wheel
cachedRealizedStrmissingthe crate caches nothing -- a value that answers the same question twice is doing arithmetic. The wheel caches as music21 doesin the wheel
getDynamicContextporteddynamic_contextin the wheel
mergeAttributesportedmerge_attributesin the wheel
getRealizedStrportedrealized_strin the wheel
getRealizedportedrealizedin the wheel
realizedportedrealizedin the wheel
velocityportedvelocityin the wheel
velocityScalarportedvelocity_scalarin the wheel
▶volume.py functionsvolume.py crate 1 of 1
wheel 1 of 1
music21Cratemusic21-rsWheel
realizeVolumeportedrealize_volumein the wheel
▶FigurefiguredBass/notation.py crate 1 of 1
wheel 1 of 1

One number of that column, with the accidental written against it.

music21Cratemusic21-rsWheel
isPureExtenderportedis_pure_extenderin the wheel
▶ModifierfiguredBass/notation.py crate 2 of 2
wheel 2 of 2

The mark as written beside the accidental it means: figured bass has marks no accidental name covers, a + that raises and a / that lowers.

music21Cratemusic21-rsWheel
modifyPitchNameportedmodify_pitch_namein the wheel
modifyPitchportedmodifyin the wheel
▶figuredBass/notation.py functionsfiguredBass/notation.py crate 1 of 1
wheel 1 of 1
music21Cratemusic21-rsWheel
convertToPitchportedconvert_to_pitchin the wheel
▶sieve.py functionssieve.py crate 6 of 6
wheel 6 of 6

The number helpers music21 keeps beside the sieve: primes, and spacings across the unit interval.

music21Cratemusic21-rsWheel
eratosthenesportederatosthenesin the wheel
rabinMillerportedrabin_millerin the wheel
discreteBinaryPadporteddiscrete_binary_padin the wheel
unitNormRangeportedunit_norm_rangein the wheel
unitNormEqualportedunit_norm_equalin the wheel
unitNormStepportedunit_norm_stepin the wheel
▶GeneralNotenote.py crate 8 of 8
wheel 8 of 8

What every written note and chord has: a length, what is sung to it, and the marks over it. The crate has no type of its own for it -- the GeneralNote to NotRest to Note chain was mirrored here once as wrapper structs and taken out again -- so its members are matched against the types that carry them.

music21Cratemusic21-rsWheel
tieportedtiein the wheel
lyricportedlyricin the wheel
addLyricportedadd_lyricin the wheel
insertLyricportedinsert_lyricin the wheel
fullNameportedfull_namein the wheel
pitchesportedpitchesin the wheel
augmentOrDiminishportedaugment_or_diminishin the wheel
getGraceportedgrace_notein the wheel
▶NotRestnote.py crate 8 of 8
wheel 8 of 8

A note or chord as distinct from a rest: what it is written as, which way its stem goes, and how loud it sounds.

music21Cratemusic21-rsWheel
stemDirectionportedstem_directionin the wheel
noteheadportednoteheadin the wheel
noteheadFillportednotehead_fillin the wheel
noteheadParenthesisportednotehead_parenthesisin the wheel
hasVolumeInformationportedhas_volume_informationin the wheel
volumeportedvolumein the wheel
storedInstrumentportedstored_instrumentin the wheel
getInstrumentportedinstrumentin the wheel
▶Lyricnote.py crate 7 of 7
wheel 7 of 7

A syllable sung to a note.

music21Cratemusic21-rsWheel
isCompositeportedis_compositein the wheel
textportedtextin the wheel
syllabicportedsyllabicin the wheel
identifierportedidentifierin the wheel
rawTextportedraw_textin the wheel
numberportednumberin the wheel
setTextAndSyllabicportedset_text_and_syllabicin the wheel
▶Restnote.py crate 1 of 1
wheel 1 of 1

A silence of a written length.

music21Cratemusic21-rsWheel
fullNameportedfull_namein the wheel
▶ChordBasechord/__init__.py crate 7 of 7
wheel 7 of 7

What a chord is before it is asked anything: the notes it holds, and adding to and taking from them.

music21Cratemusic21-rsWheel
addportedaddin the wheel
removeportedremovein the wheel
notesportednotesin the wheel
tieportedtiein the wheel
volumeportedvolumein the wheel
hasComponentVolumesportedhas_component_volumesin the wheel
setVolumesportedset_volumesin the wheel
▶Tupletduration.py crate 10 of 10
wheel 10 of 10

The bracket that says a length is written as one thing and sounds as another.

music21Cratemusic21-rsWheel
augmentOrDiminishportedaugment_or_diminishin the wheel
setDurationTypeportedset_duration_typein the wheel
setRatioportedset_ratioin the wheel
totalTupletLengthportedtotal_tuplet_lengthin the wheel
tupletMultiplierportedmultiplierin the wheel
durationActualportedduration_actualin the wheel
durationNormalportedduration_normalin the wheel
fullNameportedfull_namein the wheel
tupletActualportedtuplet_actualin the wheel
tupletNormalportedtuplet_normalin the wheel
▶Notenote.py crate 7 of 8
wheel 8 of 8
1 to port

A pitch and an optional duration.

music21Cratemusic21-rsWheel
pitchChangedmissingobserver callback; there is nonein the wheel
nameportedpitch_namein the wheel
nameWithOctaveportedpitch_name_with_octavein the wheel
stepportedstepin the wheel
octaveportedoctavein the wheel
pitchesportedpitchesin the wheel
transposeportedtransposein the wheel
fullNameportedfull_namein the wheel
▶ChordSymbolharmony.py crate 3 of 3
wheel 3 of 3
music21Cratemusic21-rsWheel
findFigureportedfind_figurein the wheel
inversionIsValidportedinversion_is_validin the wheel
transposeportedtransposein the wheel
▶pitch.py functionspitch.py crate 4 of 4
wheel 4 of 4

Module-level helpers.

music21Cratemusic21-rsWheel
isValidAccidentalNameportedis_valid_namein the wheel
standardizeAccidentalNameportedstandardize_namein the wheel
convertPitchClassToStrportedconvert_pitch_class_to_strin the wheel
simplifyMultipleEnharmonicsportedsimplify_multiple_enharmonicsin the wheel
▶key.py functionskey.py crate 3 of 3
wheel 3 of 3

Module-level helpers.

music21Cratemusic21-rsWheel
convertKeyStringToMusic21KeyStringportedconvert_key_string_to_music21_key_stringin the wheel
sharpsToPitchportedsharps_to_pitchin the wheel
pitchToSharpsportedpitch_to_sharpsin the wheel
▶duration.py functionsduration.py crate 12 of 12
wheel 12 of 12

Module-level helpers.

music21Cratemusic21-rsWheel
nextLargerTypeportednext_largerin the wheel
nextSmallerTypeportednext_smallerin the wheel
quarterLengthToClosestTypeportedquarter_length_to_closest_typein the wheel
convertQuarterLengthToTypeportedfrom_quarter_lengthin the wheel
dottedMatchportedtype_and_dotsin the wheel
quarterLengthToNonPowerOf2Tupletportedquarter_length_to_non_power_of_2_tupletin the wheel
quarterLengthToTupletportedquarter_length_to_tupletin the wheel
quarterConversionportedquarter_conversionin the wheel
convertTypeToQuarterLengthportedquarter_lengthin the wheel
convertTypeToNumberportedtype_numberin the wheel
durationTupleFromQuarterLengthportedtype_and_dotsin the wheel
durationTupleFromTypeDotsportedfrom_type_with_dotsin the wheel
▶tempo.py functionstempo.py crate 2 of 2
wheel 2 of 2

Module-level helpers.

music21Cratemusic21-rsWheel
convertTempoByReferentportedconvert_tempo_by_referentin the wheel
interpolateElementsportedinterpolate_elementsin the wheel
▶roman.py functionsroman.py crate 8 of 8
wheel 8 of 8

Module-level helpers.

music21Cratemusic21-rsWheel
expandShortHandportedexpand_shorthandin the wheel
correctSuffixForChordQualityportedcorrect_suffix_for_chord_qualityin the wheel
figureTuplesportedfigure_tuplesin the wheel
figureTupleSoloportedfrom_pitch_and_referencein the wheel
identifyAsTonicOrDominantportedidentify_as_tonic_or_dominantin the wheel
romanInversionNameportedroman_inversion_namein the wheel
correctRNAlterationForMinorportedcorrect_rn_alteration_for_minorin the wheel
romanNumeralFromChordportedroman_numeral_from_chordin the wheel
▶chord/__init__.py functionschord/__init__.py crate 2 of 2
wheel 2 of 2

Module-level helpers.

music21Cratemusic21-rsWheel
fromForteClassportedfrom_forte_classin the wheel
fromIntervalVectorportedfrom_interval_vectorin the wheel
▶chord/tables.py functionschord/tables.py crate 9 of 9
wheel 9 of 9

The Forte tables of set classes, read without a chord in hand. The data is generated from music21's own and checked by xtask verify-tables.

music21Cratemusic21-rsWheel
forteIndexToInversionsAvailableportedinversions_availablein the wheel
addressToTransposedNormalFormportednormal_formin the wheel
addressToPrimeFormportedprime_formin the wheel
addressToIntervalVectorportedinterval_class_vectorin the wheel
intervalVectorToAddressportedset_classes_with_interval_vectorin the wheel
addressToZAddressportedz_related_classin the wheel
addressToCommonNamesportedcommon_namesin the wheel
addressToForteNameportedforte_namein the wheel
seekChordTablesAddressportedaddress_of_pitch_classesin the wheel
▶TabChordBaseromanText/tsvConverter.py crate 3 of 3
wheel 0 of 3
3 not in wheel

One row of the lab's tabular analysis, read: the columns both of its standards share, the label music21 builds a numeral from, and the chord that numeral stands for. The one row type here reads a row of either standard, as music21's two subclasses do between them.

music21Cratemusic21-rsWheel
combinedChordportedchordnot in the wheel
tabToM21portedelementnot in the wheel
populateFromRowportedfrom_rownot in the wheel
▶TabChordV2romanText/tsvConverter.py crate 4 of 4
wheel 0 of 4
4 not in wheel

What the lab's second standard renamed: the measure and the onset it writes as mn and mn_onset, and the keys it writes without the underscore.

music21Cratemusic21-rsWheel
beatportedbeatnot in the wheel
measureportedmeasurenot in the wheel
local_keyportedlocal_keynot in the wheel
global_keyportedglobal_keynot in the wheel
▶TsvHandlerromanText/tsvConverter.py crate 2 of 3
wheel 0 of 3
1 to port3 not in wheel

A table read: the rows, and the score of numerals they make.

music21Cratemusic21-rsWheel
prepStreammissinga step inside the reader: from_tsv prepares the measures from the table's own numbers and meters itself and hands back the whole scorenot in the wheel
tsvToChordsportedtsv_to_chordsnot in the wheel
toM21Streamportedfrom_tsvnot in the wheel
▶M21toTSVromanText/tsvConverter.py crate 1 of 2
wheel 0 of 2
1 to port2 not in wheel

A score written back as a table, column for column.

music21Cratemusic21-rsWheel
writemissingwrites a file, which the library does not do: to_tsv hands back the textnot in the wheel
m21ToTsvportedto_tsvnot in the wheel
▶romanText/tsvConverter.py functionsromanText/tsvConverter.py crate 7 of 7
wheel 0 of 7
7 not in wheel

Module-level helpers: the swaps between the two notations, a local key read as a degree or as a key of its own, and the form, the figured bass and the added tones a label writes.

music21Cratemusic21-rsWheel
getFormportedform_ofnot in the wheel
handleAddedTonesportedhandle_added_tonesnot in the wheel
localKeyAsRnportedlocal_key_as_romannot in the wheel
isMinorportedis_minornot in the wheel
characterSwapsportedcharacter_swapsnot in the wheel
getLocalKeyportedlocal_keynot in the wheel
getSecondaryKeyportedsecondary_keynot in the wheel
▶CTSongromanText/clercqTemperley.py crate 7 of 8
wheel 0 of 8
1 to port8 not in wheel

A de Clercq-Temperley analysis of the rock corpus as its text says it: the title, the comments, the rules, and the key and the meter the song opens in.

music21Cratemusic21-rsWheel
toScoremissingmusic21's own deprecated name for toPart, which it will take outnot in the wheel
parseportedparsenot in the wheel
titleportedtitlenot in the wheel
commentsportedcommentsnot in the wheel
rulesportedrulesnot in the wheel
homeTimeSigportedhome_time_signaturenot in the wheel
homeKeyportedhome_keynot in the wheel
toPartportedto_partnot in the wheel
▶CTRuleromanText/clercqTemperley.py crate 7 of 12
wheel 0 of 12
5 to port12 not in wheel

One rule of a song, a line of its text: its name, the section it stands for, its chords, its comment, and the measures it expands to.

music21Cratemusic21-rsWheel
parentmissingmusic21 keeps a weak reference from a rule back to the song holding it, and reads the rule's key, meter and other rules through it; a song here expands its own rules (CtSong::to_part), so nothing needs the way backnot in the wheel
expandExpansionContentmissinga step inside the expansion, which the crate drives from the song rather than from the rule keeping the statenot in the wheel
expandSimpleContentmissinga step inside the expansion, as expandExpansionContentnot in the wheel
addOptionalTieAndLyricsmissinga step inside the expansion, which ties the chord before as it writes the one afternot in the wheel
insertKsTsmissinga step inside the expansion: the crate writes the key and the meter into a measure as it builds itnot in the wheel
expandportedexpandnot in the wheel
isSameportedis_samenot in the wheel
fixupChordAtomportedfixup_chord_atomnot in the wheel
musicTextportedmusic_textnot in the wheel
commentportedcommentnot in the wheel
LHSportedleft_hand_sidenot in the wheel
sectionNameportedsection_namenot in the wheel
▶harmony.py functionsharmony.py crate 7 of 10
wheel 7 of 10
3 to port3 not in wheel

Module-level helpers.

music21Cratemusic21-rsWheel
addNewChordSymbolmissingmutates music21's global chord-type table; the crate's is a constant, and the wheel's chord symbols read music21's live table wherever music21 is there to edit itnot in the wheel
changeAbbreviationFormissingmutates music21's global chord-type table; the crate's is a constant, and the wheel's chord symbols read music21's live table wherever music21 is there to edit itnot in the wheel
removeChordSymbolsmissingmutates music21's global chord-type table; the crate's is a constant, and the wheel's chord symbols read music21's live table wherever music21 is there to edit itnot in the wheel
chordSymbolFigureFromChordportedchord_symbol_figure_from_chordin the wheel
alterToChordSymbolStringportedalter_to_chord_symbol_stringin the wheel
chordSymbolFromChordportedchord_symbol_from_chordin the wheel
getAbbreviationListGivenChordTypeportedabbreviations_for_kindin the wheel
getCurrentAbbreviationForportedcurrent_abbreviation_for_kindin the wheel
getNotationStringGivenChordTypeportednotation_for_kindin the wheel
realizeChordSymbolDurationsportedrealize_chord_symbol_durationsin the wheel
▶meter/base.py functionsmeter/base.py crate 1 of 1
wheel 1 of 1

Module-level helpers.

music21Cratemusic21-rsWheel
bestTimeSignatureportedbest_time_signaturein the wheel
▶ScalaDatascale/scala/__init__.py crate 7 of 7
wheel 7 of 7

A Scala scale as its file writes it: a description, a degree a line and the interval it repeats at. ScalaFile is left out because it is file IO, which this library leaves to its caller.

music21Cratemusic21-rsWheel
parseportedparsein the wheel
getCentsAboveTonicportedwritten_centsin the wheel
getAdjacentCentsportedadjacent_centsin the wheel
setAdjacentCentsportedfrom_adjacent_centsin the wheel
getIntervalSequenceportedinterval_sequencein the wheel
setIntervalSequenceportedfrom_interval_sequencein the wheel
getFileStringportedfile_stringin the wheel
▶scale/scala/__init__.py functionsscale/scala/__init__.py crate 2 of 3
wheel 2 of 3
1 to port1 not in wheel

Module-level helpers.

music21Cratemusic21-rsWheel
getPathsmissingwhere the archive's files sit on disk; the archive here is one bundled table and has no pathsnot in the wheel
parseportedfindin the wheel
searchportedsearchin the wheel
▶Tietie.py crate 3 of 4
wheel 4 of 4
1 to port

Two written notes sounding as one, and how the tie between them is drawn.

music21Cratemusic21-rsWheel
idmissingthe address of the Python object, which is how music21 tells one tie from another; a tie here is a value its note holds, and has no identity apart from itin the wheel
placementportedplacementin the wheel
styleportedstylein the wheel
typeportedtie_typein the wheel
▶MeterTerminalmeter/core.py crate 10 of 10
wheel 10 of 10

A span of a bar written as a ratio, which is what a meter's partitions are made of.

music21Cratemusic21-rsWheel
ratioEqualportedratio_equalin the wheel
subdivideByCountportedsubdivide_by_countin the wheel
subdivideByListportedsubdivide_by_listin the wheel
subdivideByOtherportedsubdivide_by_otherin the wheel
subdivideportedsubdividein the wheel
weightportedweightin the wheel
numeratorportednumeratorin the wheel
denominatorporteddenominatorin the wheel
durationportedquarter_lengthin the wheel
depthporteddepthin the wheel
▶MeterSequencemeter/core.py crate 23 of 25
wheel 25 of 25
2 to port

A span divided into parts, each of them a span in turn, which is the tree every meter question is read off.

music21Cratemusic21-rsWheel
partitionmissingone setter dispatching on the type of what it is handed; the three partitions it dispatches to are each portedin the wheel
loadmissingrebuilding a sequence in place; a new one is built insteadin the wheel
partitionDisplayportedpartition_displayin the wheel
getPartitionOptionsportedpartition_optionsin the wheel
partitionByCountportedpartition_by_countin the wheel
partitionByListportedpartition_by_listin the wheel
partitionByOtherMeterSequenceportedpartition_by_otherin the wheel
subdividePartitionsEqualportedsubdivide_partitions_equalin the wheel
subdivideNestedHierarchyportedsubdivide_nested_hierarchyin the wheel
partitionStrportedpartition_stringin the wheel
weightportedweightin the wheel
flattenportedflattenin the wheel
flatWeightportedflat_weightsin the wheel
depthporteddepthin the wheel
isUniformPartitionportedis_uniform_partitionin the wheel
getLevelListportedlevel_listin the wheel
getLevelportedlevelin the wheel
getLevelSpanportedlevel_spanin the wheel
getLevelWeightportedlevel_weightin the wheel
setLevelWeightportedset_level_weightin the wheel
offsetToIndexportedoffset_to_indexin the wheel
offsetToAddressportedoffset_to_addressin the wheel
offsetToSpanportedoffset_to_spanin the wheel
offsetToWeightportedoffset_to_weightin the wheel
offsetToDepthportedoffset_to_depthin the wheel
▶voiceLeading.py functionsvoiceLeading.py crate 2 of 2
wheel 2 of 2

Module-level helpers.

music21Cratemusic21-rsWheel
getVerticalityFromObjectportedverticality_atin the wheel
iterateAllVoiceLeadingQuartetsportediterate_all_voice_leading_quartetsin the wheel
▶Dynamicdynamics.py crate 2 of 2
wheel 2 of 2

A dynamic mark and the loudness it stands for. In a stream it is in force until the next, which is what realize_volume reads.

music21Cratemusic21-rsWheel
valueportedvaluein the wheel
volumeScalarportedvolume_scalarin the wheel
▶dynamics.py functionsdynamics.py crate 1 of 1
wheel 1 of 1

Module-level helpers.

music21Cratemusic21-rsWheel
dynamicStrFromDecimalporteddynamic_str_from_decimalin the wheel
▶Clefclef.py crate 3 of 3
wheel 3 of 3

A clef: its sign, the line it sits on, the octaves it transposes and the note on its lowest line.

music21Cratemusic21-rsWheel
octaveChangeportedoctave_changein the wheel
nameportednamein the wheel
getStemDirectionForPitchesportedstem_direction_for_pitchesin the wheel
▶PitchClefclef.py crate 1 of 1
wheel 1 of 1

A clef that places pitches, whose lowest line moves with its octave change.

music21Cratemusic21-rsWheel
octaveChangeportedoctave_changein the wheel
▶clef.py functionsclef.py crate 2 of 2
wheel 2 of 2

Module-level helpers.

music21Cratemusic21-rsWheel
clefFromStringportedfrom_stringin the wheel
bestClefportedbest_forin the wheel
▶Articulationarticulations.py crate 2 of 2
wheel 2 of 2

A mark on a note saying how it is played: how much louder, how much shorter, and which part of a tied note keeps it.

music21Cratemusic21-rsWheel
nameportednamein the wheel
volumeShiftportedvolume_shiftin the wheel
▶Ornamentexpressions.py crate 4 of 5
wheel 5 of 5
1 to port

An ornament and the notes it is played as: its ornamental pitches and its realization over a note in a key.

music21Cratemusic21-rsWheel
fillListOfRealizedNotesmissinga helper realize fills its lists with; realize is portedin the wheel
realizeportedrealizein the wheel
resolveOrnamentalPitchesportedornamental_pitchesin the wheel
ornamentalPitchesportedornamental_pitchesin the wheel
updateAccidentalDisplayportedupdate_accidental_displayin the wheel
▶GeneralMordentexpressions.py crate 9 of 9
wheel 9 of 9
music21Cratemusic21-rsWheel
nameportednamein the wheel
accidentalportedaccidentalin the wheel
directionporteddirectionin the wheel
getSizeportedsizein the wheel
resolveOrnamentalPitchesportedornamental_pitchesin the wheel
ornamentalPitchportedornamental_pitchesin the wheel
ornamentalPitchesportedornamental_pitchesin the wheel
updateAccidentalDisplayportedupdate_accidental_displayin the wheel
realizeportedrealizein the wheel
▶Trillexpressions.py crate 10 of 10
wheel 10 of 10
music21Cratemusic21-rsWheel
nameportednamein the wheel
directionporteddirectionin the wheel
accidentalportedaccidentalin the wheel
splitClientportedsplit_clientin the wheel
getSizeportedsizein the wheel
resolveOrnamentalPitchesportedornamental_pitchesin the wheel
ornamentalPitchportedornamental_pitchesin the wheel
ornamentalPitchesportedornamental_pitchesin the wheel
updateAccidentalDisplayportedupdate_accidental_displayin the wheel
realizeportedrealizein the wheel
▶Turnexpressions.py crate 12 of 12
wheel 12 of 12
music21Cratemusic21-rsWheel
upperAccidentalportedupper_accidentalin the wheel
lowerAccidentalportedlower_accidentalin the wheel
delayporteddelayin the wheel
isDelayedportedis_delayedin the wheel
nameportednamein the wheel
getSizeportedturn_sizein the wheel
resolveOrnamentalPitchesportedornamental_pitchesin the wheel
upperOrnamentalPitchportedornamental_pitchesin the wheel
lowerOrnamentalPitchportedornamental_pitchesin the wheel
ornamentalPitchesportedornamental_pitchesin the wheel
updateAccidentalDisplayportedupdate_accidental_displayin the wheel
realizeportedrealizein the wheel
▶GeneralAppoggiaturaexpressions.py crate 1 of 1
wheel 1 of 1
music21Cratemusic21-rsWheel
realizeportedrealizein the wheel
▶Tremoloexpressions.py crate 2 of 2
wheel 2 of 2
music21Cratemusic21-rsWheel
numberOfMarksportednumber_of_marksin the wheel
realizeportedrealizein the wheel
▶figuredBass/possibility.py functionsfiguredBass/possibility.py crate 15 of 15
wheel 15 of 15

The rules a voicing of a figured bass is held to, alone and moving to the next.

music21Cratemusic21-rsWheel
voiceCrossingportedvoice_crossingin the wheel
isIncompleteportedis_incompletein the wheel
upperPartsWithinLimitportedupper_parts_within_limitin the wheel
pitchesWithinLimitportedpitches_within_limitin the wheel
limitPartToPitchportedlimit_part_to_pitchin the wheel
parallelFifthsportedparallel_fifthsin the wheel
parallelOctavesportedparallel_octavesin the wheel
hiddenFifthsportedhidden_fifthsin the wheel
hiddenOctavesportedhidden_octavesin the wheel
voiceOverlapportedvoice_overlapin the wheel
partMovementsWithinLimitsportedpart_movements_within_limitsin the wheel
upperPartsSameportedupper_parts_samein the wheel
partsSameportedparts_samein the wheel
couldBeItalianA6Resolutionportedcould_be_italian_a6_resolutionin the wheel
partPairsportedpart_pairsin the wheel
▶figuredBass/resolution.py functionsfiguredBass/resolution.py crate 13 of 14
wheel 13 of 14
1 to port1 not in wheel

How a dominant seventh, a diminished seventh or an augmented sixth resolves, voiced part for part.

music21Cratemusic21-rsWheel
showResolutionsmissingputs the voicings in a score and opens it in another program; Realization::generate_realization_from_possibility_progression writes voicings as a score, and opening a program is the caller's to donot in the wheel
augmentedSixthToDominantportedaugmented_sixth_to_dominantin the wheel
augmentedSixthToMajorTonicportedaugmented_sixth_to_major_tonicin the wheel
augmentedSixthToMinorTonicportedaugmented_sixth_to_minor_tonicin the wheel
dominantSeventhToMajorTonicporteddominant_seventh_to_major_tonicin the wheel
dominantSeventhToMinorTonicporteddominant_seventh_to_minor_tonicin the wheel
dominantSeventhToMajorSubmediantporteddominant_seventh_to_major_submediantin the wheel
dominantSeventhToMinorSubmediantporteddominant_seventh_to_minor_submediantin the wheel
dominantSeventhToMajorSubdominantporteddominant_seventh_to_major_subdominantin the wheel
dominantSeventhToMinorSubdominantporteddominant_seventh_to_minor_subdominantin the wheel
diminishedSeventhToMajorTonicporteddiminished_seventh_to_major_tonicin the wheel
diminishedSeventhToMinorTonicporteddiminished_seventh_to_minor_tonicin the wheel
diminishedSeventhToMajorSubdominantporteddiminished_seventh_to_major_subdominantin the wheel
diminishedSeventhToMinorSubdominantporteddiminished_seventh_to_minor_subdominantin the wheel
▶FiguredBassScalefiguredBass/realizerScale.py crate 3 of 3
wheel 3 of 3

The key a figured bass is counted in, and the notes a bass and its figures stand for.

music21Cratemusic21-rsWheel
getPitchNamesportedpitch_namesin the wheel
getSamplePitchesportedsample_pitchesin the wheel
getPitchesportedpitchesin the wheel
▶SegmentfiguredBass/segment.py crate 6 of 9
wheel 9 of 9
3 to port

A bass note and its figures, every voicing of them, and the moves to the next.

music21Cratemusic21-rsWheel
singlePossibilityRulesmissingmusic21's table of its own Python functions for printing; the rules are Rules and the segment runs themin the wheel
consecutivePossibilityRulesmissingmusic21's table of its own Python functions for printing; the rules are Rules and the segment runs themin the wheel
specialResolutionRulesmissingmusic21's table of its own Python functions for printing; the rules are Rules and the segment runs themin the wheel
resolveDominantSeventhSegmentportedresolve_dominant_seventh_segmentin the wheel
resolveDiminishedSeventhSegmentportedresolve_diminished_seventh_segmentin the wheel
resolveAugmentedSixthSegmentportedresolve_augmented_sixth_segmentin the wheel
allSinglePossibilitiesportedall_single_possibilitiesin the wheel
allCorrectSinglePossibilitiesportedall_correct_single_possibilitiesin the wheel
allCorrectConsecutivePossibilitiesportedall_correct_consecutive_possibilitiesin the wheel
▶figuredBass/segment.py functionsfiguredBass/segment.py crate 1 of 2
wheel 1 of 2
1 to port1 not in wheel

Module-level helpers.

music21Cratemusic21-rsWheel
printRulesmissingprints music21's rule tables, which hold its Python functionsnot in the wheel
getPitchesportedpitchesin the wheel
▶FiguredBassLinefiguredBass/realizer.py crate 5 of 5
wheel 5 of 5

A bass line and its figures in a key and a meter, written out as a part, and realized into every voicing that keeps the rules -- and keeps any part laid over it.

music21Cratemusic21-rsWheel
addElementportedadd_elementin the wheel
generateBassLineportedgenerate_bass_linein the wheel
retrieveSegmentsportedsegmentsin the wheel
overlayPartportedoverlay_partin the wheel
realizeportedrealizein the wheel
▶RealizationfiguredBass/realizer.py crate 7 of 7
wheel 7 of 7

Every way of voicing a line: counted, listed, chosen from, and written out as a score in keyboard or chorale style. Where music21 chooses at random the caller chooses.

music21Cratemusic21-rsWheel
getNumSolutionsportednum_solutionsin the wheel
getAllPossibilityProgressionsportedall_possibility_progressionsin the wheel
getRandomPossibilityProgressionportedpossibility_progression_byin the wheel
generateRealizationFromPossibilityProgressionportedgenerate_realization_from_possibility_progressionin the wheel
generateAllRealizationsportedgenerate_all_realizationsin the wheel
generateRandomRealizationportedgenerate_random_realizationin the wheel
generateRandomRealizationsportedgenerate_random_realizationsin the wheel
▶KeyWeightKeyAnalysisanalysis/discrete.py crate 3 of 6
wheel 2 of 6
3 to port4 not in wheel

Key finding by correlating a duration-weighted pitch-class distribution with one of five key profiles.

music21Cratemusic21-rsWheel
solutionLegendmissingthe colour legend of a keyscape graph; presentationnot in the wheel
solutionUnitStringmissingthe unit a graph's legend is labelled with; presentationnot in the wheel
solutionToColormissingthe colour a key is drawn in; presentationnot in the wheel
processportedestimate_key_from_distributionnot in the wheel
getWeightsportedmajor_weightsin the wheel
getSolutionportedestimate_key_from_distributionin the wheel
▶Ambitusanalysis/discrete.py crate 3 of 6
wheel 2 of 6
3 to port4 not in wheel
music21Cratemusic21-rsWheel
solutionLegendmissingthe colour legend of a graph; presentationnot in the wheel
solutionUnitStringmissingthe unit a graph's legend is labelled with; presentationnot in the wheel
solutionToColormissingthe colour a span is drawn in; presentationnot in the wheel
processportedpitch_spannot in the wheel
getPitchSpanportedpitch_spanin the wheel
getSolutionportedpitch_spanin the wheel
▶MelodicIntervalDiversityanalysis/discrete.py crate 3 of 4
wheel 4 of 4
1 to port
music21Cratemusic21-rsWheel
solutionToColormissingthe colour a count is drawn in; presentationin the wheel
countMelodicIntervalsportedmelodic_interval_countsin the wheel
processportedmelodic_interval_countsin the wheel
getSolutionportedmelodic_interval_countsin the wheel
▶EnharmonicSimplifieranalysis/enharmonics.py crate 5 of 6
wheel 6 of 6
1 to port

The best spelling of a run of pitches, scored on augmented and diminished steps, accidentals and their mixture.

music21Cratemusic21-rsWheel
getProductmissinglists every combination of the spellings at once; best_choice walks them one at a timein the wheel
getRepresentationsportedspelling_optionsin the wheel
bestPitchesportedbest_spellingin the wheel
getAlterationScoreportedalteration_scorein the wheel
getMixSharpFlatsScoreportedmixture_scorein the wheel
getAugDimScoreportedaug_dim_scorein the wheel
▶analysis/neoRiemannian.py functionsanalysis/neoRiemannian.py crate 12 of 12
wheel 12 of 12

L, P and R, their chains, the hexatonic cycle and systems, and the chromatic and disjunct mediants.

music21Cratemusic21-rsWheel
Lportedapplyin the wheel
Pportedapplyin the wheel
Rportedapplyin the wheel
isNeoRportedis_neo_rin the wheel
isChromaticMediantportedis_chromatic_mediantin the wheel
LRP_combinationsportedlrp_combinationin the wheel
completeHexatonicportedcomplete_hexatonicin the wheel
hexatonicSystemportedhexatonic_systemin the wheel
chromaticMediantsportedchromatic_mediantin the wheel
disjunctMediantsporteddisjunct_mediantin the wheel
Sportedslidein the wheel
Nportednebenverwandtin the wheel
▶analysis/harmonicFunction.py functionsanalysis/harmonicFunction.py crate 2 of 2
wheel 2 of 2

The eighteen harmonic function labels and the Roman numerals they stand for, in either mode.

music21Cratemusic21-rsWheel
functionToRomanportedto_romanin the wheel
romanToFunctionportedfrom_romanin the wheel
▶TranspositionCheckeranalysis/transposition.py crate 6 of 6
wheel 6 of 6

A set of pitches in all twelve transpositions, and how many of them differ.

music21Cratemusic21-rsWheel
getTranspositionsportedtranspositionsin the wheel
listNormalOrdersportednormal_ordersin the wheel
listDistinctNormalOrdersporteddistinct_normal_ordersin the wheel
numDistinctTranspositionsporteddistinct_countin the wheel
getChordsOfDistinctTranspositionsporteddistinct_chordsin the wheel
getPitchesOfDistinctTranspositionsporteddistinct_pitchesin the wheel
▶analysis/patel.py functionsanalysis/patel.py crate 2 of 2
wheel 2 of 2

The normalized pairwise variability of a rhythm and the melodic interval variability of a line.

music21Cratemusic21-rsWheel
nPVIportedn_pviin the wheel
melodicIntervalVariabilityportedmelodic_interval_variabilityin the wheel
▶analysis/metrical.py functionsanalysis/metrical.py crate 2 of 2
wheel 2 of 2

The depth of the metrical hierarchy at each note, and Thomassen's melodic accent.

music21Cratemusic21-rsWheel
labelBeatDepthportedlabel_beat_depthin the wheel
thomassenMelodicAccentportedthomassen_melodic_accentin the wheel
▶Segmenteranalysis/segmentByRests.py crate 2 of 2
wheel 2 of 2

A part cut into its runs of notes between rests and clefs, and the intervals inside them.

music21Cratemusic21-rsWheel
getSegmentsListportedsegments_listin the wheel
getIntervalListportedinterval_listin the wheel
▶analysis/pitchAnalysis.py functionsanalysis/pitchAnalysis.py crate 1 of 1
wheel 1 of 1

How often each value of a property of a stream's pitches comes.

music21Cratemusic21-rsWheel
pitchAttributeCountportedpitch_attribute_countin the wheel
▶WindowedAnalysisanalysis/windowed.py crate 3 of 3
wheel 3 of 3

A stream cut into quarter-note windows, and an analysis run over windows of each size.

music21Cratemusic21-rsWheel
getMinimumWindowStreamportednewin the wheel
analyzeportedanalyzein the wheel
processportedprocessin the wheel
▶KeyAnalyzeranalysis/floatingKey.py crate 4 of 4
wheel 4 of 4

A key for every measure, each measure's reading smoothed by its neighbours'.

music21Cratemusic21-rsWheel
runportedrunin the wheel
getRawKeyByMeasureportedraw_key_by_measurein the wheel
getInterpretationByMeasureportedinterpretation_by_measurein the wheel
smoothInterpretationByMeasureportedsmooth_interpretation_by_measurein the wheel
▶analysis/floatingKey.py functionsanalysis/floatingKey.py crate 1 of 1
wheel 1 of 1
music21Cratemusic21-rsWheel
divideporteddividein the wheel
▶humdrum/harmParser.py functionshumdrum/harmParser.py crate 1 of 1
wheel 0 of 1
1 not in wheel

The harmonic annotations a **harm spine carries, read as the roman numerals they stand for.

music21Cratemusic21-rsWheel
convertHarmToRomanportedconvert_harm_to_romannot in the wheel
▶HarmParserhumdrum/harmParser.py crate 1 of 1
wheel 0 of 1
1 not in wheel

A **harm token read: the accidental, the degree, the quality, the intervals, the inversion, an alternative reading and a secondary function. music21 reads it with the regular expressions of its HarmDefs, which the crate has none of -- Harm::parse reads the token by hand in the same order, and ROOTS is the table of degrees.

music21Cratemusic21-rsWheel
parseportedparsenot in the wheel
▶Barlinebar.py crate 2 of 2
wheel 2 of 2

How a measure is closed. A crate measure keeps one as its own left_barline or right_barline, and a barline standing inside a measure is an element of the stream.

music21Cratemusic21-rsWheel
typeportedbar_typein the wheel
musicXMLBarStyleportedmusicxml_bar_stylein the wheel
▶Repeatbar.py crate 3 of 3
wheel 3 of 3

A barline that says which way the music goes back. A crate barline carries the direction and the times, so a repeat is a barline that has them.

music21Cratemusic21-rsWheel
directionportedrepeat_directionin the wheel
timesportedrepeat_timesin the wheel
getTextExpressionportedrepeat_text_expressionin the wheel
▶Streamstream/base.py crate 98 of 131
wheel 99 of 131
33 to port32 not in wheel

Music on a timeline, and the subclasses music21 nests inside one another: Measure, Part, PartStaff, Score, Voice and Opus are all read here, since the crate has one Stream with a StreamKind where music21 has seven classes. What makes an object a *member* of a music21 stream is deliberately absent -- sites, contexts, derivations, activeSite -- so the members that ask an element where it sits, or ask the stream to hold somebody else's object, are excluded with their reasons. The notation methods live in makenotation, what a bar and a beat last in meter, and the variant methods in variant, which is where music21 keeps them too.

music21Cratemusic21-rsWheel
writemissingwriting a file, which the format modules donot in the wheel
showmissingrendering, which the crate leaves to its callernot in the wheel
firstmissingas elementOffset: events answers in ordernot in the wheel
lastmissingas elementOffset: events answers in ordernot in the wheel
clearmissingempties a stream in place; clone_empty answers an empty one of the same kindnot in the wheel
mergeAttributesmissingwhat clone_empty carries overnot in the wheel
indexmissingas elementOffsetnot in the wheel
storeAtEndmissingelements music21 keeps at the right barline rather than at an offset; a measure's barlines are its own herenot in the wheel
isAtEndmissingneeds the sites a crate stream does not keepnot in the wheel
setDerivationMethodmissingderivations, which a crate stream does not keepnot in the wheel
replacemissingswaps one object for another; events_mut reaches each in placenot in the wheel
recurseReprmissingmusic21's own text dump of a streamnot in the wheel
plotmissingplotting, which the crate leaves to its callernot in the wheel
addGroupForElementsmissingthe group names music21 picks elements out of a stream by; nothing a crate stream holds carries themnot in the wheel
getElementsByGroupmissingas addGroupForElementsnot in the wheel
getElementByIdmissingan id on every element, which only a stream and a note carry herenot in the wheel
transferOffsetToElementsmissingmoves a stream's own offset onto what it holds, which needs the sites a crate stream does not keepnot in the wheel
haveAccidentalsBeenMademissinga flag music21 keeps on the stream; nothing here remembers having been askednot in the wheel
sortmissinga crate stream is in offset order as it is builtnot in the wheel
containerInHierarchymissingneeds the sites a crate stream does not keepnot in the wheel
makeImmutablemissingmusic21's mutability machinery, which a value has no need ofnot in the wheel
makeMutablemissingas makeImmutablenot in the wheel
durationmissinga crate stream has no Duration of its own; highest_time answers when the last thing in it endsnot in the wheel
beatmissingwhere one element sits in its bar; placed answers it for every element at once, and beat_and_measure_from_offset for a pointnot in the wheel
beatStrmissingas beatnot in the wheel
beatStrengthmissingas beatnot in the wheel
attachMelodicIntervalsmissingattaches an interval to each note; melodic_intervals answers them instead, a crate note carrying nothing of its linenot in the wheel
clefmissingthe clef a stream opens with; the clef in force is read by in_force_before, a crate stream keeping no clef of its ownin the wheel
removemissingtakes a named object out; retain_leaves and remove_event take out by place or by testin the wheel
setElementOffsetmissingas elementOffset: events_mut reaches each in placein the wheel
elementOffsetmissingasks where one object sits; a crate stream owns values rather than objects, so events gives each with its offsetin the wheel
measuremissingone measure by its number; measures answers them all, each carrying its own numberin the wheel
sortedmissingas sortin the wheel
iterportediternot in the wheel
splitAtDurationsportedsplit_at_durationsnot in the wheel
beatDurationportedbeat_durationnot in the wheel
activateVariantsportedactivate_variantsnot in the wheel
showVariantAsOssialikePartportedshow_variant_as_ossialike_partnot in the wheel
elementsportedeventsin the wheel
timeSignatureportedtime_signature_atin the wheel
keySignatureportedkey_signature_atin the wheel
staffLinesportedstaff_linesin the wheel
cloneEmptyportedclone_emptyin the wheel
hasElementOfClassportedhas_element_of_classin the wheel
mergeElementsportedmerge_elementsin the wheel
popportedremove_eventin the wheel
removeByClassportedremove_by_classin the wheel
removeByNotOfClassportedremove_by_not_of_classin the wheel
insertportedinsertin the wheel
insertIntoNoteOrChordportedinsert_into_note_or_chordin the wheel
appendportedpushin the wheel
insertAndShiftportedinsert_and_shiftin the wheel
splitAtQuarterLengthportedsplit_at_quarter_lengthin the wheel
analyzeportedanalyzein the wheel
getElementsByClassportedelements_of_classin the wheel
getElementsNotOfClassportedelements_not_of_classin the wheel
getElementsByOffsetportedelements_in_spanin the wheel
getElementAtOrBeforeportedelement_at_or_beforein the wheel
getElementBeforeOffsetportedelement_before_offsetin the wheel
getElementAfterElementportedelement_afterin the wheel
measuresportedmeasuresin the wheel
templateportedtemplatein the wheel
measureOffsetMapportedmeasure_offset_mapin the wheel
finalBarlineportedfinal_barlinein the wheel
voicesportedvoicesin the wheel
spannersportedspannersin the wheel
atSoundingPitchportedat_sounding_pitchin the wheel
toSoundingPitchportedto_sounding_pitchin the wheel
toWrittenPitchportedto_written_pitchin the wheel
getTimeSignaturesportedtime_signaturesin the wheel
getInstrumentsportedinstrumentsin the wheel
getInstrumentportedinstrumentin the wheel
invertDiatonicportedinvert_diatonicin the wheel
shiftElementsportedshift_elementsin the wheel
repeatAppendportedrepeat_appendin the wheel
repeatInsertportedrepeat_insertin the wheel
extractContextportedextract_contextin the wheel
chordifyportedchordifyin the wheel
splitByClassportedsplit_byin the wheel
offsetMapportedoffset_mapin the wheel
makeMeasuresportedmake_measuresin the wheel
makeRestsportedmake_restsin the wheel
makeTiesportedmake_tiesin the wheel
makeBeamsportedmake_beamsin the wheel
makeAccidentalsportedmake_accidentalsin the wheel
makeNotationportedmake_notationin the wheel
extendDurationportedextend_durationin the wheel
stripTiesportedstrip_tiesin the wheel
extendTiesportedextend_tiesin the wheel
flattenportedflattenin the wheel
recurseportedrecursein the wheel
highestOffsetportedhighest_offsetin the wheel
highestTimeportedhighest_timein the wheel
lowestOffsetportedlowest_offsetin the wheel
secondsportedsecondsin the wheel
metronomeMarkBoundariesportedmetronome_mark_boundariesin the wheel
metadataportedmetadatain the wheel
beatAndMeasureFromOffsetportedbeat_and_measure_from_offsetin the wheel
transposeportedtransposein the wheel
scaleOffsetsportedscale_offsetsin the wheel
scaleDurationsportedscale_durationsin the wheel
augmentOrDiminishportedaugment_or_diminishin the wheel
quantizeportedquantizein the wheel
expandRepeatsportedexpand_repeatsin the wheel
sliceByQuarterLengthsportedslice_by_quarter_lengthsin the wheel
sliceByGreatestDivisorportedslice_by_greatest_divisorin the wheel
sliceAtOffsetsportedslice_at_offsetsin the wheel
sliceByBeatportedslice_by_beatin the wheel
hasMeasuresportedhas_measuresin the wheel
hasVoicesportedhas_voicesin the wheel
hasPartLikeStreamsportedhas_part_like_streamsin the wheel
isTwelveToneportedis_twelve_tonein the wheel
isWellFormedNotationportedis_well_formed_notationin the wheel
notesAndRestsportednotes_and_restsin the wheel
notesportednotesin the wheel
pitchesportedpitchesin the wheel
findConsecutiveNotesportedfind_consecutive_notesin the wheel
melodicIntervalsportedmelodic_intervalsin the wheel
findGapsportedfind_gapsin the wheel
isGaplessportedis_gaplessin the wheel
getOverlapsportedget_overlapsin the wheel
isSequenceportedis_sequencein the wheel
simultaneousAttacksportedsimultaneous_attacksin the wheel
attachIntervalsBetweenStreamsportedharmonic_intervalsin the wheel
playingWhenAttackedportedplaying_when_attackedin the wheel
allPlayingWhileSoundingportedall_playing_while_soundingin the wheel
makeVoicesportedmake_voicesin the wheel
voicesToPartsportedvoices_to_partsin the wheel
explodeportedexplodein the wheel
flattenUnnecessaryVoicesportedflatten_unnecessary_voicesin the wheel
lyricsportedlyricsin the wheel
▶Measurestream/base.py crate 8 of 9
wheel 8 of 9
1 to port1 not in wheel

A bar of music. A crate stream of kind Measure carries its own barlines and padding, and what a bar and a beat last is read off the metre.

music21Cratemusic21-rsWheel
mergeAttributesmissingwhat clone_empty carries overnot in the wheel
measureNumberWithSuffixportednumber_with_suffixin the wheel
makeNotationportedmake_notationin the wheel
barDurationProportionportedbar_duration_proportionin the wheel
padAsAnacrusisportedpad_as_anacrusisin the wheel
barDurationportedbar_durationin the wheel
bestTimeSignatureportedbest_time_signaturein the wheel
leftBarlineportedleft_barlinein the wheel
rightBarlineportedright_barlinein the wheel
▶Partstream/base.py crate 3 of 4
wheel 3 of 4
1 to port1 not in wheel

One player's line. A crate stream of kind Part or PartStaff carries the name and abbreviation music21 keeps as partName and partAbbreviation.

music21Cratemusic21-rsWheel
mergeAttributesmissingwhat clone_empty carries overnot in the wheel
partNameportednamein the wheel
partAbbreviationportedabbreviationin the wheel
makeAccidentalsportedmake_accidentalsin the wheel
▶Scorestream/base.py crate 8 of 9
wheel 9 of 9
1 to port

Every part of a piece together.

music21Cratemusic21-rsWheel
measuremissingone measure by its number; measures answers them all, each carrying its own numberin the wheel
partsportedpartsin the wheel
measuresportedmeasuresin the wheel
expandRepeatsportedexpand_repeatsin the wheel
measureOffsetMapportedmeasure_offset_mapin the wheel
sliceByGreatestDivisorportedslice_by_greatest_divisorin the wheel
partsToVoicesportedparts_to_voicesin the wheel
implodeportedimplodein the wheel
makeNotationportedmake_notationin the wheel
▶Opusstream/base.py crate 5 of 7
wheel 5 of 7
2 to port2 not in wheel

The scores a multi-work file holds, which many an ABC or Essen collection is.

music21Cratemusic21-rsWheel
writemissingwriting a file, which the format modules donot in the wheel
showmissingrendering, which the crate leaves to its callernot in the wheel
getNumbersportedscore_numbersin the wheel
getScoreByNumberportedscore_by_numberin the wheel
getScoreByTitleportedscore_by_titlein the wheel
scoresportedscoresin the wheel
mergeScoresportedmerge_scoresin the wheel
▶percussion.py classespercussion.py crate 1 of 1
wheel 0 of 1
1 not in wheel

Unpitched percussion: a stroke written on a staff with no pitch to it, and a chord of them.

music21Cratemusic21-rsWheel
PercussionChordportedPercussionChordnot in the wheel
▶PercussionChordpercussion.py crate 2 of 2
wheel 0 of 2
2 not in wheel

A chord of strokes, each of which may be pitched or not. Its members are PercussionNotes rather than notes, since a stroke is not a note.

music21Cratemusic21-rsWheel
notesportedmembersnot in the wheel
pitchesportedpitchesnot in the wheel
▶tablature.py classestablature.py crate 8 of 8
wheel 0 of 8
8 not in wheel

Fretted-instrument tablature: which string is stopped at which fret, and the pitches that sounds. The four instruments music21 keeps a class each for are constructors here, a fretboard being the same thing whatever it is strung as.

music21Cratemusic21-rsWheel
FretNoteportedFretNotenot in the wheel
FretBoardportedFretBoardnot in the wheel
FirstFretportedFirstFretnot in the wheel
ChordWithFretBoardportedChordWithFretBoardnot in the wheel
GuitarFretBoardportedguitarnot in the wheel
UkeleleFretBoardportedukulelenot in the wheel
BassGuitarFretBoardportedbass_guitarnot in the wheel
MandolinFretBoardportedmandolinnot in the wheel
▶FretBoardtablature.py crate 3 of 3
wheel 0 of 3
3 not in wheel
music21Cratemusic21-rsWheel
fretNotesLowestFirstportedfret_notes_lowest_firstnot in the wheel
getFretNoteByStringportedfret_note_by_stringnot in the wheel
getPitchesportedpitchesnot in the wheel
▶ChordWithFretBoardtablature.py crate 0 of 1
wheel 0 of 1
1 to port1 not in wheel

A chord symbol with a diagram under it.

music21Cratemusic21-rsWheel
getFretNotesFromFiguremissingmusic21's own is a stub that answers nothing, its docstring a TODO: the fret notes a figure stands for are not worked out there eithernot in the wheel
▶text.py functionstext.py crate 4 of 4
wheel 0 of 4
4 not in wheel

Words in a score: the lyrics assembled off its notes, and an article moved to the front of a title or back to its end.

music21Cratemusic21-rsWheel
assembleLyricsportedassemble_lyricsnot in the wheel
assembleAllLyricsportedassemble_all_lyricsnot in the wheel
prependArticleportedprepend_articlenot in the wheel
postpendArticleportedpostpend_articlenot in the wheel
▶TextBoxtext.py crate 2 of 2
wheel 0 of 2
2 not in wheel

Text standing anywhere on the page, which MusicXML writes as a credit.

music21Cratemusic21-rsWheel
contentportedcontentnot in the wheel
pageportedpagenot in the wheel
▶LanguageDetectortext.py crate 2 of 3
wheel 0 of 3
1 to port3 not in wheel

Which language a text is most likely in, by the letters that follow each pair of letters.

music21Cratemusic21-rsWheel
readExcerptsmissingreads the excerpt files off the disk; the crate's excerpts are built in and the library does no file IOnot in the wheel
mostLikelyLanguageportedmost_likely_languagenot in the wheel
mostLikelyLanguageNumericportedmost_likely_language_numericnot in the wheel
▶Trigramtext.py crate 4 of 6
wheel 0 of 6
2 to port6 not in wheel
music21Cratemusic21-rsWheel
measuremissingthe step that counts the letter triples, which building one doesnot in the wheel
likelymissingwhich language a trigram is nearest, which most_likely_language answersnot in the wheel
lengthportedlengthnot in the wheel
parseExcerptportedfrom_textnot in the wheel
similarityportedsimilaritynot in the wheel
makeWordsportedfrom_wordsnot in the wheel
▶layout.py classeslayout.py crate 5 of 10
wheel 0 of 10
5 to port10 not in wheel

How a score is laid out: the page and system margins a file states, a staff's size and lines, and the parts bracketed together.

music21Cratemusic21-rsWheel
LayoutBasemissingthe class music21 hangs the four layouts off; layout::Layout is the one of them a stream holdsnot in the wheel
LayoutScoremissinga score regrouped into pages, systems and staves for a renderer, with the three streams below it; the crate keeps the layout a file states and renders nothingnot in the wheel
Pagemissinga page of such a scorenot in the wheel
Systemmissinga system of such a scorenot in the wheel
Staffmissinga staff of such a scorenot in the wheel
ScoreLayoutportedScoreLayoutnot in the wheel
PageLayoutportedPageLayoutnot in the wheel
SystemLayoutportedSystemLayoutnot in the wheel
StaffLayoutportedStaffLayoutnot in the wheel
StaffGroupportedStaffGroupnot in the wheel
▶layout.py functionslayout.py crate 0 of 4
wheel 0 of 4
4 to port4 not in wheel

Reading a score's measures back off its pages and systems, which only a LayoutScore has.

music21Cratemusic21-rsWheel
divideByPagesmissingbuilds a LayoutScore, which the crate has none ofnot in the wheel
getPageRegionMeasureNumbersmissingthe measures on a page of a LayoutScorenot in the wheel
getSystemRegionMeasureNumbersmissingthe measures in a system of a LayoutScorenot in the wheel
getRegionMeasureNumbersmissingthe measures in a region of a LayoutScorenot in the wheel
▶ScoreLayoutlayout.py crate 1 of 1
wheel 0 of 1
1 not in wheel
music21Cratemusic21-rsWheel
tenthsToMillimetersportedtenths_to_millimetersnot in the wheel
▶StaffGrouplayout.py crate 2 of 2
wheel 0 of 2
2 not in wheel

The parts a brace or a bracket joins, and whether their barlines are drawn through.

music21Cratemusic21-rsWheel
barTogetherportedbar_togethernot in the wheel
symbolportedsymbolnot in the wheel
▶style.py classesstyle.py crate 1 of 10
wheel 2 of 10
9 to port8 not in wheel

How something is drawn. The crate models what a reader must read back to write the same document again -- a text's font and where it sits, a line's ticks, a colour -- and the page itself it does not model. Inside music21 the wheel hands back music21's own style objects, whose subclasses carry more than one class here would.

music21Cratemusic21-rsWheel
Enclosuremissingthe shape drawn round a text, kept as the name music21 gives it where something has one (expressions::RehearsalMark::enclosure) rather than as a type of its ownnot in the wheel
TextStylePlacementmissinga text style that also says which side of the staff it is on, which is display::Drawn herenot in the wheel
BezierStylemissingthe curve of a slurnot in the wheel
LineStylemissingthe dashes of a linenot in the wheel
StreamStylemissinghow a whole stream is drawnnot in the wheel
BeamStylemissinghow a beam is drawnnot in the wheel
StyleMixinmissingwhat music21 mixes into every class it draws; nothing here has a style of its own to mix innot in the wheel
Stylemissingthe base class every style hangs off; the crate keeps the few drawing values it reads and writes beside the thing drawnin the wheel
NoteStylemissinghow a note is drawn beyond its colour and its sizein the wheel
TextStyleportedTextStylenot in the wheel
▶TextStylestyle.py crate 7 of 8
wheel 0 of 8
1 to port8 not in wheel
music21Cratemusic21-rsWheel
letterSpacingmissingthe space between a text's letters: nothing the crate reads states one, and the writer is held to music21's output byte for byte on every corpus score, so there is nothing to carry acrossnot in the wheel
alignVerticalportedalign_verticalnot in the wheel
alignHorizontalportedalign_horizontalnot in the wheel
justifyportedjustifynot in the wheel
fontStyleportedfont_stylenot in the wheel
fontWeightportedfont_weightnot in the wheel
fontSizeportedfont_sizenot in the wheel
fontFamilyportedfont_familynot in the wheel
▶spanner.py classesspanner.py crate 6 of 10
wheel 2 of 10
4 to port8 not in wheel

Something drawn across several notes: a slur, a hairpin, an octave line, a pedal mark. A spanner here is one value with a kind, naming the leaves it joins by their position in the stream that holds it.

music21Cratemusic21-rsWheel
PendingAssignmentRefmissingmusic21's note to itself that a spanner is waiting for its first element, which the readers keep as a queuenot in the wheel
SpannerAnchormissingan element standing in a stream for a spanner to hang off where there is no note to; a spanner here names positions and needs nonenot in the wheel
MultiMeasureRestmissingseveral measures of rest drawn as one, which is a notation this crate does not writenot in the wheel
SpannerBundlemissingthe collection music21 keeps a stream's spanners in; a crate stream holds its ownin the wheel
SlurportedSlurnot in the wheel
RepeatBracketportedEndingnot in the wheel
OttavaportedOttavanot in the wheel
LineportedLinenot in the wheel
GlissandoportedGlissandonot in the wheel
SpannerportedSpannerin the wheel
▶Spannerspanner.py crate 3 of 14
wheel 6 of 14
11 to port8 not in wheel

The leaves a spanner joins are positions in Stream::leaves, so what it holds is the stream's to hand back.

music21Cratemusic21-rsWheel
purgeOrphansmissingdrops the elements no stream holds any more, which only a spanner keeping objects can havenot in the wheel
purgeLocationsmissingdrops the sites it remembers, and it remembers nonenot in the wheel
getSpannedElementsByClassmissingthe elements of a class among them, which the stream holding them answersnot in the wheel
getSpannedElementIdsmissingPython object idsnot in the wheel
insertFirstSpannedElementmissingputs an element first by objectnot in the wheel
fillmissingfills in every element between the first and the last, which asks the stream what stands between themnot in the wheel
addSpannedElementsmissingadds elements by object; Spanner::new takes the positions it joinsin the wheel
hasSpannedElementmissingwhether an element is among them, which is spanned().containsin the wheel
replaceSpannedElementmissingswaps one element for another by objectin the wheel
getFirstmissingthe first element itself; spanned gives its position and the stream hands back what stands therein the wheel
getLastmissingthe last element itself, likewisein the wheel
isFirstportedis_firstnot in the wheel
isLastportedis_lastnot in the wheel
getSpannedElementsportedspannedin the wheel
▶Ottavaspanner.py crate 6 of 6
wheel 0 of 6
6 not in wheel

An octave line, and whether the notes under it are written where they sound.

music21Cratemusic21-rsWheel
typeportednamenot in the wheel
shiftMagnitudeportedmagnitudenot in the wheel
shiftDirectionportedupnot in the wheel
intervalportedintervalnot in the wheel
performTranspositionportedto_sounding_pitchnot in the wheel
undoTranspositionportedto_written_pitchnot in the wheel
▶Linespanner.py crate 5 of 6
wheel 0 of 6
1 to port6 not in wheel

A bracket with a tick at each end.

music21Cratemusic21-rsWheel
tickmissingsets both ends at once; LineEnds carries eachnot in the wheel
endTickportedendnot in the wheel
startTickportedstartnot in the wheel
lineTypeportedline_typenot in the wheel
endHeightportedend_heightnot in the wheel
startHeightportedstart_heightnot in the wheel
▶Glissandospanner.py crate 2 of 2
wheel 0 of 2
2 not in wheel
music21Cratemusic21-rsWheel
lineTypeportedline_typenot in the wheel
slideTypeportedslide_typenot in the wheel
▶repeat.py classesrepeat.py crate 13 of 16
wheel 0 of 16
3 to port16 not in wheel

The marks that send the music back -- a segno, a coda, a da capo -- which are the kinds of one RepeatExpression here, and the expansion that plays them out.

music21Cratemusic21-rsWheel
RepeatMarkmissingwhat music21 mixes into everything that repeats; a barline here says it repeats and an expression says where to go back tonot in the wheel
RepeatExpressionCommandmissingthe kinds that send the music somewhere rather than marking a place, which is every kind is_marker says no tonot in the wheel
RepeatFindermissingfinds the repeated passages of a score so as to write it with repeat signs, which nothing here writesnot in the wheel
RepeatExpressionportedRepeatExpressionnot in the wheel
RepeatExpressionMarkerportedis_markernot in the wheel
CodaportedCodanot in the wheel
SegnoportedSegnonot in the wheel
FineportedFinenot in the wheel
DaCapoportedDaCaponot in the wheel
DaCapoAlFineportedDaCapoAlFinenot in the wheel
DaCapoAlCodaportedDaCapoAlCodanot in the wheel
AlSegnoportedAlSegnonot in the wheel
DalSegnoportedDalSegnonot in the wheel
DalSegnoAlFineportedDalSegnoAlFinenot in the wheel
DalSegnoAlCodaportedDalSegnoAlCodanot in the wheel
Expanderportedexpand_repeatsnot in the wheel
▶repeat.py functionsrepeat.py crate 0 of 3
wheel 0 of 3
3 to port3 not in wheel

Writing repeats into a score, which the crate does not do: it plays out the repeats a score already has.

music21Cratemusic21-rsWheel
insertRepeatEndingmissingwrites an ending bracket over some measuresnot in the wheel
insertRepeatmissingwrites repeat barlines round some measuresnot in the wheel
deleteMeasuresmissingtakes measures out and renumbers the restnot in the wheel
▶RepeatExpressionrepeat.py crate 3 of 6
wheel 0 of 6
3 to port6 not in wheel
music21Cratemusic21-rsWheel
applyTextFormattingmissingthe font and the justification a renderer draws the words with; justify says which way they are setnot in the wheel
setTextExpressionmissingkeeps the words as a TextExpression objectnot in the wheel
getTextExpressionmissingthe words as a TextExpression for a renderer; text is what they saynot in the wheel
getTextportedtextnot in the wheel
setTextportedset_textnot in the wheel
isValidTextportedis_valid_textnot in the wheel
▶Expanderrepeat.py crate 1 of 7
wheel 0 of 7
6 to port7 not in wheel

Playing a score's repeats out, which Stream::expand_repeats does in one.

music21Cratemusic21-rsWheel
measureMapmissingthe measures of the expansion listed for a caller to readnot in the wheel
repeatBarsAreCoherentmissinga step of the expansion, which answers an error where the repeats make no sensenot in the wheel
findInnermostRepeatIndicesmissinga step of the expansionnot in the wheel
processInnermostRepeatBarsmissinga step of the expansionnot in the wheel
getRepeatExpressionIndexmissinga step of the expansionnot in the wheel
isExpandablemissingwhether there is anything to play out, which expanding answersnot in the wheel
processportedexpand_repeatsnot in the wheel
▶variant.py functionsvariant.py crate 10 of 10
wheel 0 of 10
10 not in wheel

Another reading of a passage kept beside the one in the score: merged in from a second source, refined, gathered into blocks, and activated in place of what it replaces.

music21Cratemusic21-rsWheel
mergeVariantsportedmerge_variantsnot in the wheel
mergeVariantScoresportedmerge_variant_scoresnot in the wheel
mergeVariantMeasureStreamsportedmerge_variant_measure_streamsnot in the wheel
mergeVariantsEqualDurationportedmerge_variants_equal_durationnot in the wheel
mergePartAsOssiaportedmerge_part_as_ossianot in the wheel
addVariantportedadd_variantnot in the wheel
refineVariantportedrefine_variantnot in the wheel
getMeasureHashesportedmeasure_hashesnot in the wheel
makeAllVariantsReplacementsportedmake_all_variants_replacementsnot in the wheel
makeVariantBlocksportedmake_variant_blocksnot in the wheel
▶Variantvariant.py crate 7 of 15
wheel 0 of 15
8 to port15 not in wheel
music21Cratemusic21-rsWheel
purgeOrphansmissingdrops the elements no stream holds any more, which only a variant keeping objects can havenot in the wheel
purgeLocationsmissingdrops the sites it remembers, and it remembers nonenot in the wheel
getElementIdsmissingPython object idsnot in the wheel
replaceElementmissingswaps one element for another by objectnot in the wheel
highestOffsetmissingthe offset of the stream it holds, which Stream::highest_offset answers of its contentsnot in the wheel
showmissingrendering, which the crate leaves to its callernot in the wheel
containedSitemissingthe stream it was read out of, which is a sitenot in the wheel
replacementDurationmissingthe Duration of what it replaces; replacement_quarter_length is how long that isnot in the wheel
highestTimeportedhighest_timenot in the wheel
containedHighestTimeportedcontained_highest_timenot in the wheel
containedHighestOffsetportedcontained_highest_offsetnot in the wheel
replacementQuarterLengthportedreplacement_quarter_lengthnot in the wheel
lengthTypeportedlength_typenot in the wheel
replacedElementsportedreplaced_elementsnot in the wheel
removeReplacedElementsFromStreamportedremove_replaced_elements_from_streamnot in the wheel
▶Metadatametadata/__init__.py crate 34 of 35
wheel 3 of 35
1 to port32 not in wheel

What a score says about itself. Every standard name is read and written by that name through one pair of members, where music21 keeps a property for each; STANDARD_PROPERTIES is the table of the 131 names, checked against music21's live one by metadata_parity.

music21Cratemusic21-rsWheel
convertValuemissingreads a value as one of music21's own primitives -- a Text, a Contributor, a Date; a MetadataValue here is the text and the role it was given undernot in the wheel
addportedaddnot in the wheel
getCustomportedgetnot in the wheel
addCustomportedaddnot in the wheel
setCustomportedsetnot in the wheel
uniqueNameToNamespaceNameportednamespace_namenot in the wheel
namespaceNameToUniqueNameportedunique_name_ofnot in the wheel
isContributorUniqueNameportedis_contributor_unique_namenot in the wheel
isStandardNameportedunique_name_ofnot in the wheel
softwareportedgetnot in the wheel
contributorsportedcontributorsnot in the wheel
copyrightportedstring_valuenot in the wheel
getContributorsByRoleportedcontributors_by_rolenot in the wheel
alternativeTitleportedstring_valuenot in the wheel
composerportedstring_valuenot in the wheel
composersportedgetnot in the wheel
dateCreatedportedstring_valuenot in the wheel
fileFormatportedstring_valuenot in the wheel
filePathportedstring_valuenot in the wheel
corpusFilePathportedstring_valuenot in the wheel
fileNumberportedstring_valuenot in the wheel
localeOfCompositionportedstring_valuenot in the wheel
librettistportedstring_valuenot in the wheel
librettistsportedgetnot in the wheel
lyricistportedstring_valuenot in the wheel
lyricistsportedgetnot in the wheel
movementNameportedstring_valuenot in the wheel
movementNumberportedstring_valuenot in the wheel
numberportedstring_valuenot in the wheel
opusNumberportedstring_valuenot in the wheel
titleportedtitlenot in the wheel
bestTitleportedbest_titlenot in the wheel
allportedallin the wheel
addContributorportedadd_contributorin the wheel
searchportedsearchin the wheel
▶RichMetadatametadata/__init__.py crate 0 of 4
wheel 0 of 4
4 to port4 not in wheel

The numbers music21 caches beside a score's metadata so that its corpus can be searched without parsing every file again.

music21Cratemusic21-rsWheel
mergemissingtakes in another score's cached numbersnot in the wheel
getSourcePathmissingwhere the file sits, relative to the corpusnot in the wheel
updatemissingworks out the ambitus, the key signatures, the time signatures and the rest of a score and keeps them; Stream::analyze answers each of those of a score when askednot in the wheel
allmissingthe cached numbers beside the metadatanot in the wheel
▶search/base.py functionssearch/base.py crate 18 of 18
wheel 0 of 18
18 not in wheel

Searching a stream for a run of notes: the searches themselves, and the strings music21 turns a line into so that one line can be matched against another.

music21Cratemusic21-rsWheel
streamSearchBaseportedrun_overnot in the wheel
rhythmicSearchportedrhythmic_searchnot in the wheel
noteNameSearchportednote_name_searchnot in the wheel
noteNameRhythmicSearchportednote_name_rhythmic_searchnot in the wheel
approximateNoteSearchportedapproximate_note_searchnot in the wheel
approximateNoteSearchNoRhythmportedapproximate_note_search_no_rhythmnot in the wheel
approximateNoteSearchOnlyRhythmportedapproximate_note_search_only_rhythmnot in the wheel
approximateNoteSearchWeightedportedapproximate_note_search_weightednot in the wheel
translateStreamToStringportedtranslate_stream_to_stringnot in the wheel
translateDiatonicStreamToStringportedtranslate_diatonic_stream_to_stringnot in the wheel
translateIntervalsAndSpeedportedtranslate_intervals_and_speednot in the wheel
translateStreamToStringNoRhythmportedtranslate_stream_to_string_no_rhythmnot in the wheel
translateStreamToStringOnlyRhythmportedtranslate_stream_to_string_only_rhythmnot in the wheel
translateNoteToByteportedtranslate_note_to_bytenot in the wheel
translateNoteWithDurationToBytesportedtranslate_note_with_duration_to_bytesnot in the wheel
translateNoteTieToByteportedtranslate_note_tie_to_bytenot in the wheel
translateDurationToBytesportedtranslate_duration_to_bytesnot in the wheel
mostCommonMeasureRhythmsportedmost_common_measure_rhythmsnot in the wheel
▶StreamSearchersearch/base.py crate 4 of 4
wheel 0 of 4
4 not in wheel

A search for a list of terms, each a note name, a length or a wildcard.

music21Cratemusic21-rsWheel
runportedrunnot in the wheel
wildcardAlgorithmportedrun_overnot in the wheel
rhythmAlgorithmportedrhythmic_searchnot in the wheel
noteNameAlgorithmportednote_name_searchnot in the wheel
▶LyricSearchersearch/lyrics.py crate 4 of 4
wheel 0 of 4
4 not in wheel

Searching the words sung in a score, which means indexing them into one text first.

music21Cratemusic21-rsWheel
indexTextportedindex_textnot in the wheel
indexTuplesportedindexednot in the wheel
indexportedindexednot in the wheel
searchportedsearchnot in the wheel
▶IndexedLyricsearch/lyrics.py crate 0 of 1
wheel 0 of 1
1 to port1 not in wheel
music21Cratemusic21-rsWheel
modifymissinga named tuple's _replace, which is Python's ownnot in the wheel
▶search/segment.py functionssearch/segment.py crate 3 of 8
wheel 0 of 8
5 to port8 not in wheel

Comparing scores by cutting each part into overlapping segments and matching the strings they make.

music21Cratemusic21-rsWheel
indexScoreFilePathsmissingindexes the scores at a list of paths, which means reading filesnot in the wheel
indexOnePathmissingindexes the score at a path, likewisenot in the wheel
saveScoreDictmissingwrites an index to a filenot in the wheel
loadScoreDictmissingreads an index backnot in the wheel
getDifflibOrPyLevmissingchooses between two Python libraries for the string comparison; search::difflib is the one difflib.SequenceMatcher ratio, portednot in the wheel
translateMonophonicPartToSegmentsportedtranslate_monophonic_part_to_segmentsnot in the wheel
indexScorePartsportedindex_score_partsnot in the wheel
scoreSimilarityportedscore_similaritynot in the wheel
▶ReductiveNoteanalysis/reduction.py crate 2 of 2
wheel 0 of 2
2 not in wheel

A note of a reduction, written in a lyric under the note it reduces.

music21Cratemusic21-rsWheel
isParsedportedis_parsednot in the wheel
getNoteAndTextExpressionportednote_and_text_expressionnot in the wheel
▶ScoreReductionanalysis/reduction.py crate 3 of 3
wheel 0 of 3
3 not in wheel
music21Cratemusic21-rsWheel
scoreportedscorenot in the wheel
chordReductionportedchord_reductionnot in the wheel
reduceportedreducenot in the wheel
▶PartReductionanalysis/reduction.py crate 1 of 2
wheel 0 of 2
1 to port2 not in wheel

How busy each part of a score is, span by span, which music21 draws as a horizontal bar graph.

music21Cratemusic21-rsWheel
getGraphHorizontalBarWeightedDatamissingthe spans arranged for music21's bar graph; weighted_spans is what they saynot in the wheel
processportedweighted_spansnot in the wheel
▶ActivityMatchanalysis/correlate.py crate 1 of 1
wheel 0 of 1
1 not in wheel

What goes with what in a stream: every pitch against the dynamic sounding with it.

music21Cratemusic21-rsWheel
pitchToDynamicportedpitch_to_dynamicnot in the wheel
▶ElementTimespantree/spans.py crate 4 of 6
wheel 0 of 6
2 to port6 not in wheel

One element of a stream as the stretch of time it sounds for, which is what a timespan tree holds.

music21Cratemusic21-rsWheel
newmissinga copy with some of its values changed, which a value type here is made afreshnot in the wheel
makeElementmissingthe element itself, which an ElementTimespan holds a reference tonot in the wheel
quarterLengthportedquarter_lengthnot in the wheel
measureNumberportedmeasure_numbernot in the wheel
getParentageByClassportedparentagenot in the wheel
partportedpartnot in the wheel
▶Timespantree/spans.py crate 2 of 6
wheel 0 of 6
4 to port6 not in wheel
music21Cratemusic21-rsWheel
newmissinga copy with some of its values changednot in the wheel
canMergemissingwhether two timespans may be joined, which only the tree's own merging asksnot in the wheel
mergeWithmissingjoins two timespansnot in the wheel
splitAtmissingcuts a timespan in twonot in the wheel
offsetportedoffsetnot in the wheel
endTimeportedend_timenot in the wheel
▶TimespanTreetree/timespanTree.py crate 11 of 17
wheel 0 of 17
6 to port17 not in wheel

Every element of a score as a stretch of time, which is how the voice-leading walk reads what sounds together. The crate keeps the timespans in offset order rather than in music21's tree, there being no insertion to keep balanced.

music21Cratemusic21-rsWheel
indexmissingwhere a timespan sits in the tree, which is its place in the list herenot in the wheel
removeTimespanListmissingtakes several out, likewisenot in the wheel
removeTimespanmissingtakes a timespan out of the tree; the crate reads a stream into timespans and does not edit themnot in the wheel
toPartwiseTimespanTreesmissinga tree for each part of the score; as_timespans reads whichever stream it is given, a part includednot in the wheel
allPartsmissingevery part the timespans came from, which the caller has in the score it readnot in the wheel
elementmissingthe element a timespan holds, which ElementTimespan::element answersnot in the wheel
elementEndTimeportedend_timenot in the wheel
offsetportedlowest_positionnot in the wheel
findNextPitchedTimespanInSameStreamByClassportednext_in_same_partnot in the wheel
findPreviousPitchedTimespanInSameStreamByClassportedprevious_in_same_partnot in the wheel
getVerticalityAtOrBeforeportedverticality_at_or_beforenot in the wheel
iterateConsonanceBoundedVerticalitiesportedconsonance_bounded_verticalitiesnot in the wheel
iterateVerticalitiesportedverticalitiesnot in the wheel
iterateVerticalitiesNwiseportedverticalities_nwisenot in the wheel
splitAtportedsplit_atnot in the wheel
unwrapVerticalitiesportedunwrapnot in the wheel
maximumOverlapportedmaximum_overlapnot in the wheel
▶Verticalitytree/verticality.py crate 13 of 14
wheel 0 of 14
1 to port14 not in wheel

Everything sounding at one offset, which is what a chord of a chordified score is made of.

music21Cratemusic21-rsWheel
beatStrengthmissingthe accent weight of the offset in the measure holding it, which music21 asks the note and the note asks its site; TimeSignature::accent_weight answers it given the meternot in the wheel
bassTimespanportedbass_timespannot in the wheel
toChordportedto_chordnot in the wheel
measureNumberportedmeasure_numbernot in the wheel
nextStartOffsetportednext_start_offsetnot in the wheel
nextVerticalityportednextnot in the wheel
pitchSetportedpitch_setnot in the wheel
pitchClassSetportedpitch_class_setnot in the wheel
previousVerticalityportedpreviousnot in the wheel
startAndOverlapTimespansportedstart_and_overlap_timespansnot in the wheel
timeToNextEventportedtime_to_next_eventnot in the wheel
makeElementportedmake_elementnot in the wheel
getAllVoiceLeadingQuartetsportedvoice_leading_quartetsnot in the wheel
getPairedMotionportedpaired_motionnot in the wheel
▶Horizontalitytree/analysis.py crate 3 of 3
wheel 0 of 3
3 not in wheel

The timespans one voice sounds in a row, and whether the middle note of three is passed through or stepped away from and back.

music21Cratemusic21-rsWheel
hasPassingToneportedhas_passing_tonenot in the wheel
hasNeighborToneportedhas_neighbor_tonenot in the wheel
hasNoMotionportedhas_no_motionnot in the wheel
▶tree/fromStream.py functionstree/fromStream.py crate 2 of 4
wheel 0 of 4
2 to port4 not in wheel

Reading a score into timespans.

music21Cratemusic21-rsWheel
listOfTreesByClassmissinga tree per part per class, which the caller builds of what as_timespans readsnot in the wheel
makeFastShallowTreeFromSortedStreammissinga tree of one stream's own elements with nothing nested, built without sorting; the crate sorts once and keeps a listnot in the wheel
asTreeportedas_timespansnot in the wheel
asTimespansportedas_timespansnot in the wheel
▶tree/toStream.py functionstree/toStream.py crate 1 of 2
wheel 0 of 2
1 to port2 not in wheel

Writing timespans back out as a stream.

music21Cratemusic21-rsWheel
partwisemissingthe timespans written back out as a part each, which is the score they were read fromnot in the wheel
chordifiedportedchordifynot in the wheel
▶features/base.py functionsfeatures/base.py crate 5 of 5
wheel 0 of 5
5 not in wheel

The machinery round the feature extractors: finding one by its id, and the vector a stream gives for all of them. The 72 jSymbolic extractors and the 24 native ones are rows of a generated table rather than a class each, and features_parity checks that table against music21's live classes.

music21Cratemusic21-rsWheel
allFeaturesAsListportedall_features_as_listnot in the wheel
extractorsByIdportedextractors_by_idnot in the wheel
extractorByIdportedextractor_by_idnot in the wheel
vectorByIdportedvector_by_idnot in the wheel
getIndexportedindex_ofnot in the wheel
▶Featurefeatures/base.py crate 0 of 2
wheel 0 of 2
2 to port2 not in wheel

What one extractor found: the numbers, and what each of them is called.

music21Cratemusic21-rsWheel
prepareVectorsmissingmakes room for the numbers before they are worked out, which building one doesnot in the wheel
normalizemissingdivides the numbers by their sum, which Extractor::extract does where the extractor asks for itnot in the wheel
▶FeatureExtractorfeatures/base.py crate 3 of 7
wheel 0 of 7
4 to port7 not in wheel

One extractor: its id, how many numbers it gives, and what it reads off a stream. music21 keeps the stream and the half-built feature on the object; here an extractor is a row of a table and reading is a function of the data.

music21Cratemusic21-rsWheel
setDatamissinghands the extractor the stream to read, which extract takes as an argumentnot in the wheel
fillFeatureAttributesmissingcopies the extractor's own id and name onto the feature it is filling innot in the wheel
prepareFeaturemissingmakes the blank feature and fills its attributes in, which blank answersnot in the wheel
processmissingthe reading itself, which is the row's own function and runs in extractnot in the wheel
getAttributeLabelsportedattribute_labelsnot in the wheel
extractportedextractnot in the wheel
getBlankFeatureportedblanknot in the wheel
▶StreamFormsfeatures/base.py crate 8 of 14
wheel 0 of 14
6 to port14 not in wheel

The readings of a stream every extractor shares, each worked out once when it is first asked for. music21 keys them by name in a dictionary; here each is a member of the data, and the ones only one extractor reads are worked out where it reads them.

music21Cratemusic21-rsWheel
keysmissingthe names music21 looks a form up bynot in the wheel
formSetClassHistogrammissinghow often each set class comes, which the extractors that read it work out where they read itnot in the wheel
formPitchClassSetHistogrammissinghow often each pitch-class set comes, likewisenot in the wheel
formTypesHistogrammissinghow often each written value comes, likewisenot in the wheel
formGetElementsByClassMeasuremissingthe measures of the stream, which Stream::measures answersnot in the wheel
formBeatHistogrammissinghow often each beat strength comes, which the extractor reading it works outnot in the wheel
formPartitionByInstrumentportedpartition_by_instrumentnot in the wheel
formChordifyportedchordified_chordsnot in the wheel
formQuarterLengthHistogramportedquarter_length_histogramnot in the wheel
formMidiPitchHistogramportedmidi_pitch_histogramnot in the wheel
formPitchClassHistogramportedpitch_class_histogramnot in the wheel
formMidiIntervalHistogramportedmidi_interval_histogramnot in the wheel
formContourListportedcontour_listnot in the wheel
formSecondsMapportedseconds_mapnot in the wheel
▶DataInstancefeatures/base.py crate 1 of 5
wheel 0 of 5
4 to port5 not in wheel

One subject prepared for extraction: the stream with its ties stripped, each part and each voice of it prepared on its own, and every reading an extractor may ask for.

music21Cratemusic21-rsWheel
setupPostStreamParsemissingthe second half of reading the stream in, which building one does in onenot in the wheel
setClassLabelmissingthe class a subject belongs to for the data set it is in; DataSet::add_data takes it beside the subjectnot in the wheel
getClassValuemissingthat class, likewisenot in the wheel
getIdmissingthe name a subject goes by, which DataSet::add_data takes beside itnot in the wheel
parseStreamportednewnot in the wheel
▶DataSetfeatures/base.py crate 9 of 12
wheel 0 of 12
3 to port12 not in wheel

Several subjects run through the same extractors, written out as a table.

music21Cratemusic21-rsWheel
getClassPositionLabelsmissingwhere the class column sits, which the caller knows of the labels it asked fornot in the wheel
addMultipleDatamissingadds several subjects at once, which is add_data in a loopnot in the wheel
writemissingwrites the table to a file, which the library does not do: to_text is the text to writenot in the wheel
getClassLabelportedclass_labelnot in the wheel
addFeatureExtractorsportedadd_extractorsnot in the wheel
getAttributeLabelsportedattribute_labelsnot in the wheel
getDiscreteLabelsporteddiscrete_labelsnot in the wheel
addDataportedadd_datanot in the wheel
processportedprocessnot in the wheel
getFeaturesAsListportedfeatures_as_listnot in the wheel
getUniqueClassValuesportedunique_class_valuesnot in the wheel
getStringportedto_textnot in the wheel
▶braille/basic.py functionsbraille/basic.py crate 27 of 27
wheel 0 of 27
27 not in wheel

One element of a score in braille: a note, a rest, a chord, a clef, a signature, a dynamic, a word.

music21Cratemusic21-rsWheel
barlineToBrailleportedbarline_to_braillenot in the wheel
chordToBrailleportedchord_to_braillenot in the wheel
pitchToOctaveportedpitch_to_octavenot in the wheel
clefToBrailleportedclef_to_braillenot in the wheel
dynamicToBrailleporteddynamic_to_braillenot in the wheel
instrumentToBrailleportedinstrument_to_braillenot in the wheel
keySigToBrailleportedkey_sig_to_braillenot in the wheel
metronomeMarkToBrailleportedmetronome_mark_to_braillenot in the wheel
yieldBrailleArticulationsportednote_to_braillenot in the wheel
noteToBrailleportednote_to_braillenot in the wheel
handlePitchWithAccidentalportednote_to_braillenot in the wheel
handleArticulationsportednote_to_braillenot in the wheel
handleExpressionsportednote_to_braillenot in the wheel
restToBrailleportedrest_to_braillenot in the wheel
tempoTextToBrailleportedtempo_text_to_braillenot in the wheel
textExpressionToBrailleportedtext_expression_to_braillenot in the wheel
timeSigToBrailleportedtime_sig_to_braillenot in the wheel
showOctaveWithNoteportedshow_octave_with_notenot in the wheel
transcribeHeadingportedtranscribe_headingnot in the wheel
transcribeNoteFingeringportedtranscribe_note_fingeringnot in the wheel
transcribeSignaturesportedtranscribe_signaturesnot in the wheel
brailleUnicodeToBrailleAsciiportedbraille_unicode_to_braille_asciinot in the wheel
brailleAsciiToBrailleUnicodeportedbraille_ascii_to_braille_unicodenot in the wheel
brailleUnicodeToSymbolsportedbraille_unicode_to_symbolsnot in the wheel
yieldDotsportedyield_dotsnot in the wheel
wordToBrailleportedword_to_braillenot in the wheel
numberToBrailleportednumber_to_braillenot in the wheel
▶braille/translate.py functionsbraille/translate.py crate 7 of 8
wheel 0 of 8
1 to port8 not in wheel

A whole score in braille, part by part or on joined staves.

music21Cratemusic21-rsWheel
opusToBraillemissingevery score of an opus one after another, which is score_to_braille of eachnot in the wheel
objectToBrailleportedelement_to_braillenot in the wheel
streamToBrailleportedstream_to_braillenot in the wheel
scoreToBrailleportedscore_to_braillenot in the wheel
metadataToStringportedmetadata_to_stringnot in the wheel
measureToBrailleportedmeasure_to_braillenot in the wheel
partToBrailleportedpart_to_braillenot in the wheel
keyboardPartsToBrailleportedkeyboard_parts_to_braillenot in the wheel
▶BrailleTextbraille/text.py crate 11 of 11
wheel 0 of 11
11 not in wheel

The page the braille is written onto: its lines, and what may still fit on the one being written.

music21Cratemusic21-rsWheel
showHandportedset_show_handnot in the wheel
addHeadingportedadd_headingnot in the wheel
addLongExpressionportedadd_long_expressionnot in the wheel
addToNewLineportedadd_to_new_linenot in the wheel
appendOrInsertCurrentportedappend_or_insert_currentnot in the wheel
addInaccordportedadd_inaccordnot in the wheel
addMeasureNumberportedadd_measure_numbernot in the wheel
optionalAddKeyboardSymbolsAndDotsportedoptional_add_keyboard_symbols_and_dotsnot in the wheel
addSignaturesportedadd_signaturesnot in the wheel
makeNewLineportedmake_new_linenot in the wheel
recenterHeadingsportedrecenter_headingsnot in the wheel
▶BrailleTextLinebraille/text.py crate 5 of 5
wheel 0 of 5
5 not in wheel
music21Cratemusic21-rsWheel
appendportedappendnot in the wheel
insertportedinsertnot in the wheel
canAppendportedcan_appendnot in the wheel
canInsertportedcan_insertnot in the wheel
lastHyphenToSpaceportedlast_hyphen_to_spacenot in the wheel
▶BrailleKeyboardbraille/text.py crate 2 of 2
wheel 0 of 2
2 not in wheel
music21Cratemusic21-rsWheel
makeNewLinesportedmake_new_linesnot in the wheel
addNoteGroupingsportedadd_note_groupingsnot in the wheel
▶braille/lookup.py functionsbraille/lookup.py crate 2 of 3
wheel 0 of 3
1 to port3 not in wheel

The braille cells music21 writes each thing with, which are tables here rather than dictionaries built at import.

music21Cratemusic21-rsWheel
makeBrailleDictionarymissingbuilds music21's dictionary of cells at import; the tables here are written outnot in the wheel
dotsAddporteddots_addnot in the wheel
makePitchNameToNotesportedpitch_name_to_notenot in the wheel
▶braille/segment.py functionsbraille/segment.py crate 6 of 10
wheel 0 of 10
4 to port10 not in wheel

A part cut into the segments braille is written in, each a run of elements that belong together.

music21Cratemusic21-rsWheel
setGroupingGlobalsmissingmusic21's module-level defaults for a grouping, set the first time one is made; SegmentOptions is what a caller says insteadnot in the wheel
setAffinityCodemissingwhich kind of segment an element belongs in, which extract_braille_elements says as it readsnot in the wheel
areGroupingsIdenticalmissingwhether two groupings are the same, which the segment asks of its ownnot in the wheel
splitMeasuremissingcuts a measure in two so that the braille fits, which split_note_grouping does of the groupingnot in the wheel
findSegmentsportedfind_segmentsnot in the wheel
prepareSlurredNotesportedprepare_slurred_notesnot in the wheel
getRawSegmentsportedget_raw_segmentsnot in the wheel
extractBrailleElementsportedextract_braille_elementsnot in the wheel
prepareBeamedNotesportedprepare_beamed_notesnot in the wheel
splitNoteGroupingportedsplit_note_groupingnot in the wheel
▶BrailleSegmentbraille/segment.py crate 4 of 17
wheel 0 of 17
13 to port17 not in wheel

One segment written out. music21 takes the segment apart member by member -- the heading, the measure number, each grouping -- where transcribe does the whole of it in order, so those steps are not members here.

music21Cratemusic21-rsWheel
addDummyRestsmissinga step of the transcription: the rests that stand before a measure numbernot in the wheel
extractMeasureNumbermissinga step of the transcriptionnot in the wheel
extractHeadingmissinga step of the transcription: the key, the meter and the tempo over the first measurenot in the wheel
extractInaccordGroupingmissinga step of the transcription: the voices written one after anothernot in the wheel
extractLongExpressionGroupingmissinga step of the transcriptionnot in the wheel
showLeadingOctaveFromNoteGroupingmissinga step of the transcription: whether the first note of a grouping shows its octavenot in the wheel
needsSplitToFitmissinga step of the transcription: whether a grouping must be split to fit the linenot in the wheel
splitNoteGroupingAndTranscribemissinga step of the transcription, which split_note_grouping does the splitting half ofnot in the wheel
extractNoteGroupingmissinga step of the transcriptionnot in the wheel
addRepeatSymbolsmissinga step of the transcription: the sign for a measure repeatednot in the wheel
extractSignatureGroupingmissinga step of the transcriptionnot in the wheel
extractTempoTextGroupingmissinga step of the transcriptionnot in the wheel
consolidatemissinga step of the transcription: the groupings of one kind joined into onenot in the wheel
brailleTextportedtranscribenot in the wheel
transcribeportedtranscribenot in the wheel
addGroupingAttributesportedadd_grouping_attributesnot in the wheel
fixArticulationsportedfix_articulationsnot in the wheel
▶BrailleGrandSegmentbraille/segment.py crate 3 of 5
wheel 0 of 5
2 to port5 not in wheel

A keyboard part written on joined staves, the two hands' groupings paired.

music21Cratemusic21-rsWheel
extractHeadingmissinga step of the transcriptionnot in the wheel
extractNoteGroupingmissinga step of the transcriptionnot in the wheel
brailleTextportedtranscribenot in the wheel
yieldCombinedGroupingKeysportedcombined_keysnot in the wheel
transcribeportedtranscribenot in the wheel
▶StreamAligneralpha/analysis/aligner.py crate 9 of 14
wheel 0 of 14
5 to port14 not in wheel

Two readings of the same music lined up against each other -- a score read by an optical reader against the same music played in -- by the edit distance between their hashes.

music21Cratemusic21-rsWheel
insertCostmissingwhat an insertion costs, which is one everywherenot in the wheel
deleteCostmissingwhat a deletion costs, likewisenot in the wheel
substitutionCostmissingwhat a substitution costs, which the hashes' difference saysnot in the wheel
tupleEqualityWithoutReferencemissingwhether two hashes are equal but for which note they came from, which comparing them answersnot in the wheel
showChangesmissingprints the changes, and colours the notes of the score to show themnot in the wheel
getDefaultHasherportednewnot in the wheel
alignportedalignnot in the wheel
makeHashedStreamsportedalignnot in the wheel
setupDistanceMatrixportedalign_hashednot in the wheel
populateDistanceMatrixportedalign_hashednot in the wheel
getPossibleMovesFromLocationportedalign_hashednot in the wheel
getOpFromLocationportedalign_hashednot in the wheel
calculateNumSimilaritiesportedchanges_countnot in the wheel
calculateChangesListportedalign_hashednot in the wheel
▶Hasheralpha/analysis/hasher.py crate 2 of 7
wheel 0 of 7
5 to port7 not in wheel

A stream's notes as hashes, each as much or as little of the note as the caller asked to compare.

music21Cratemusic21-rsWheel
setupValidTypesAndStateVarsmissingreads the switches into the state music21 hashes by, which are the fields of a Hasher herenot in the wheel
hashMeasuresmissingthe measures hashed one at a time, which is hash_stream of eachnot in the wheel
addHashToFinalHashmissingappends one hash to the list being builtnot in the wheel
addNoteHashWithReferenceToFinalHashmissingappends a note's hash with the note it came from, likewisenot in the wheel
addNoteHashToFinalHashmissingappends a note's hash, likewisenot in the wheel
setupTupleListportedtuple_listnot in the wheel
hashStreamportedhash_streamnot in the wheel
▶alpha/analysis/fixer.py functionsalpha/analysis/fixer.py crate 1 of 1
wheel 0 of 1
1 not in wheel

Mending one reading of a score against another: the notes within a length, and the fixes themselves.

music21Cratemusic21-rsWheel
getNotesWithinDurationportednotes_within_durationnot in the wheel
▶OrnamentFixeralpha/analysis/fixer.py crate 2 of 3
wheel 0 of 3
1 to port3 not in wheel

Where the played reading trills or turns and the read one does not, the ornament is written onto the read one.

music21Cratemusic21-rsWheel
addOrnamentmissingwrites the ornament onto the read note, which fix does where it finds onenot in the wheel
findOrnamentportedfind_ornamentnot in the wheel
fixportedfixnot in the wheel
▶EnharmonicFixeralpha/analysis/fixer.py crate 1 of 8
wheel 0 of 8
7 to port8 not in wheel

Where the two readings spell the same sound differently, the played spelling wins.

music21Cratemusic21-rsWheel
isEnharmonicmissingwhether two notes sound alike, which is Pitch::is_enharmonicnot in the wheel
hasAccmissingwhether a note carries an accidental, which is Pitch::accidental_is_writtennot in the wheel
hasNatAccmissingwhether it carries a natural, likewisenot in the wheel
hasSharpFlatAccmissingwhether it carries a sharp or a flat, likewisenot in the wheel
stepEqmissingwhether two notes stand on the same stepnot in the wheel
stepNotEqmissingwhether they do notnot in the wheel
intervalTooBigmissingwhether the two are too far apart to be a misspelling, which the fix asks as it goesnot in the wheel
fixportedfix_enharmonicsnot in the wheel
▶alpha/analysis/ornamentRecognizer.py functionsalpha/analysis/ornamentRecognizer.py crate 1 of 1
wheel 0 of 1
1 not in wheel

How long the notes of an ornament last, written out.

music21Cratemusic21-rsWheel
calculateTrillNoteDurationportedornament_note_quarter_lengthnot in the wheel
▶TrillRecognizeralpha/analysis/ornamentRecognizer.py crate 1 of 1
wheel 0 of 1
1 not in wheel

Whether a run of notes is a trill written out, and which trill it is.

music21Cratemusic21-rsWheel
recognizeportedrecognizenot in the wheel
▶TurnRecognizeralpha/analysis/ornamentRecognizer.py crate 2 of 2
wheel 0 of 2
2 not in wheel
music21Cratemusic21-rsWheel
isAcceptableIntervalportedis_acceptable_intervalnot in the wheel
recognizeportedrecognizenot in the wheel
▶OrnamentRecognizeralpha/analysis/ornamentRecognizer.py crate 2 of 2
wheel 0 of 2
2 not in wheel
music21Cratemusic21-rsWheel
calculateOrnamentNoteQlportedornament_note_quarter_lengthnot in the wheel
calculateOrnamentTotalQlportedornament_total_quarter_lengthnot in the wheel
▶alpha/analysis/search.py functionsalpha/analysis/search.py crate 1 of 1
wheel 0 of 1
1 not in wheel

Runs of notes that walk a scale, found in a part.

music21Cratemusic21-rsWheel
findConsecutiveScaleportedfind_consecutive_scalenot in the wheel
▶ScoreCorrectoromr/correctors.py crate 10 of 14
wheel 0 of 14
4 to port14 not in wheel

Mending a score read by an optical reader against itself: a measure that reads oddly is compared with the same measure of the other parts and with the rest of its own part, and the likeliest reading wins.

music21Cratemusic21-rsWheel
runPriorModelmissingmusic21's measure of how much the correction helped, which PriorsIntegrationScore carriesnot in the wheel
getMeasureSlicemissingthe same measure across every part, which vertical_probability_dist reads as it goesnot in the wheel
getVerticalProbabilityDistributionSinglePartmissinga step of the vertical correction, which vertical_probability_dist does for every part at oncenot in the wheel
getVerticalProbabilityDistributionSinglePartSingleMeasuremissinga step of the samenot in the wheel
runportedrunnot in the wheel
getAllHashesportedall_hashesnot in the wheel
getSinglePartportedsingle_part_mutnot in the wheel
runHorizontalCorrectionModelportedrun_horizontal_correction_modelnot in the wheel
getAllIncorrectMeasuresportedall_incorrect_measuresnot in the wheel
verticalProbabilityDistportedvertical_probability_distnot in the wheel
runVerticalSearchportedrun_vertical_searchnot in the wheel
substituteOneMeasureContentsForAnotherportedsubstitute_measurenot in the wheel
runVerticalCorrectionModelportedrun_vertical_correction_modelnot in the wheel
generateCorrectedScoreportedgenerate_corrected_scorenot in the wheel
▶SinglePartomr/correctors.py crate 6 of 7
wheel 0 of 7
1 to port7 not in wheel
music21Cratemusic21-rsWheel
getMeasuresmissingthe measures of the part, which the Stream it was read from holdsnot in the wheel
getIncorrectMeasureIndicesportedfind_incorrect_measuresnot in the wheel
getSequenceHashesFromMeasureStreamportedhashed_notesnot in the wheel
horizontalProbabilityDistportedhorizontal_probability_distnot in the wheel
runHorizontalSearchportedrun_horizontal_searchnot in the wheel
runHorizontalCorrectionModelportedrun_horizontal_correction_modelnot in the wheel
getProbabilityDistributionportedprobability_distributionnot in the wheel
▶MeasureHashomr/correctors.py crate 10 of 15
wheel 0 of 15
5 to port15 not in wheel

One measure as a string, a character a note, so that two measures may be compared as text.

music21Cratemusic21-rsWheel
setSequenceMatchermissingkeeps Python's own SequenceMatcher on the object; search::difflib is the comparison, portednot in the wheel
differenceProbabilityForOneOpCodemissingthe odds of one edit, which probability_based_on_changes sumsnot in the wheel
getProbabilityOnEqualitymissingthe odds of two measures reading alike, likewisenot in the wheel
getProbabilityOnOmissionmissingthe odds of a note left out, likewisenot in the wheel
getProbabilityOnAdditionmissingthe odds of a note put in, likewisenot in the wheel
getHashStringportedmeasure_hashnot in the wheel
hashNoteportedmeasure_hashnot in the wheel
hashGraceportedmeasure_hashnot in the wheel
hashRestportedmeasure_hashnot in the wheel
hashQuarterLengthportedmeasure_hashnot in the wheel
getMeasureDifferenceportedmeasure_differencenot in the wheel
getOpCodesportedopcodesnot in the wheel
getProbabilityBasedOnChangesportedprobability_based_on_changesnot in the wheel
getProbabilityOnSubstituteportedprobability_on_substitutenot in the wheel
getProbabilityFromOneCharSubportedprobability_from_one_char_subnot in the wheel
▶MeasureSliceomr/correctors.py crate 0 of 2
wheel 0 of 2
2 to port2 not in wheel

The same measure across every part, which is what a doubtful measure is compared against.

music21Cratemusic21-rsWheel
getSliceHashesmissingthe hashes of the measure across every part, which ScoreCorrector::vertical_probability_dist reads as it goesnot in the wheel
runSliceSearchmissingthe search across the parts, which run_vertical_search doesnot in the wheel
▶omr/evaluators.py functionsomr/evaluators.py crate 2 of 2
wheel 0 of 2
2 not in wheel

How well the mending did: a score with mistakes put in on purpose, mended, and compared with the one it was made from.

music21Cratemusic21-rsWheel
evaluateCorrectingModelportedevaluate_correcting_modelnot in the wheel
autoCorrelationBestMeasureportedauto_correlation_best_measurenot in the wheel
▶OmrGroundTruthPairomr/evaluators.py crate 4 of 10
wheel 0 of 10
6 to port10 not in wheel
music21Cratemusic21-rsWheel
debugmissingmusic21's switch for printing what it is doingnot in the wheel
parseAllmissingreads both scores from their filesnot in the wheel
hashAllmissinghashes both scores, which building the pair doesnot in the wheel
substCostmissingwhat a substitution costs, which the hashes' difference saysnot in the wheel
insertCostmissingwhat an insertion costs, which is one everywherenot in the wheel
deleteCostmissingwhat a deletion costs, likewisenot in the wheel
getOmrScoreportedomrnot in the wheel
getGroundScoreportedgroundnot in the wheel
minEditDistportedmin_edit_distancenot in the wheel
getDifferencesporteddifferencesnot in the wheel
▶audioSearch/__init__.py functionsaudioSearch/__init__.py crate 14 of 16
wheel 0 of 16
2 to port16 not in wheel

Hearing a monophonic line: the pitch of each stretch of sound, the lengths they make, and the notes that come of it.

music21Cratemusic21-rsWheel
getFrequenciesFromMicrophonemissinglistens to a microphone, which the library does not donot in the wheel
getFrequenciesFromPartialAudioFilemissingreads part of a file as it is being recordednot in the wheel
histogramportedhistogramnot in the wheel
autocorrelationFunctionportedautocorrelation_frequencynot in the wheel
prepareThresholdsportedprepare_thresholdsnot in the wheel
interpolationportedinterpolationnot in the wheel
normalizeInputFrequencyportednormalize_input_frequencynot in the wheel
pitchFrequenciesToObjectsportedpitch_frequencies_to_objectsnot in the wheel
getFrequenciesFromAudioFileportedfrequencies_from_wavnot in the wheel
detectPitchFrequenciesporteddetect_pitch_frequenciesnot in the wheel
smoothFrequenciesportedsmooth_frequenciesnot in the wheel
joinConsecutiveIdenticalPitchesportedjoin_consecutive_identical_pitchesnot in the wheel
quantizeDurationportedquantize_durationnot in the wheel
quarterLengthEstimationportedquarter_length_estimationnot in the wheel
notesAndDurationsToStreamportednotes_and_durations_to_streamnot in the wheel
decisionProcessporteddecision_processnot in the wheel
▶search/serial.py classessearch/serial.py crate 3 of 8
wheel 0 of 8
5 to port8 not in wheel

The classes music21's serial search is written as. The crate has one matcher taking Matching, since the five subclasses differ only in how a run is normalized before it is compared.

music21Cratemusic21-rsWheel
TransposedSegmentMatchermissingone of Matching's six kinds rather than a class of its own: Matching::Transposed, which compares the intervals a run makesnot in the wheel
TransformedSegmentMatchermissingMatching::Transformed, which compares the rows a transposition, inversion, retrograde or retrograde inversion takes one to the othernot in the wheel
MultisetSegmentMatchermissingMatching::Multiset, which compares the pitch classes in any ordernot in the wheel
TransposedMultisetMatchermissingMatching::TransposedMultisetnot in the wheel
TransposedInvertedMultisetMatchermissingMatching::TransposedInvertedMultisetnot in the wheel
ContiguousSegmentOfNotesportedContiguousSegmentnot in the wheel
ContiguousSegmentSearcherportedContiguousSegmentSearchernot in the wheel
SegmentMatcherportedSegmentMatchernot in the wheel
▶ContiguousSegmentOfNotessearch/serial.py crate 6 of 7
wheel 0 of 7
1 to port7 not in wheel

A run of a stream's notes and chords a search found: where it starts, the pitch classes it was read as, and the segment it was matched to.

music21Cratemusic21-rsWheel
getActiveMatchedRowsmissingtwo ToneRows built from the active and matched fields, which a caller builds itself; what music21 uses them for is the transformations between them, which zero_centered_transformations_from_matched and its original-centred twin answernot in the wheel
startMeasureNumberportedstart_measurenot in the wheel
startOffsetportedstart_offsetnot in the wheel
zeroCenteredTransformationsFromMatchedportedzero_centered_transformations_from_matchednot in the wheel
originalCenteredTransformationsFromMatchedportedoriginal_centered_transformations_from_matchednot in the wheel
readPitchClassesFromBottomportedpitch_classes_from_bottomnot in the wheel
getDistinctPitchClassesporteddistinct_pitch_classesnot in the wheel
▶ContiguousSegmentSearchersearch/serial.py crate 1 of 11
wheel 0 of 11
10 to port11 not in wheel

Every run of a given length in a stream, read in one of music21's ways of reading repetitions, chords in or out.

music21Cratemusic21-rsWheel
getSearchBoundMethodmissingmusic21 chooses a method by name for each way of reading repetitions; the crate's one walk takes Repetitions as an argumentnot in the wheel
addActiveChordsmissinga step inside that walk: the crate reads a chord's pitch classes where it meets onenot in the wheel
searchIncludeAllExcludemissingone of the twelve methods that choice picks between, which the one walk answers fornot in the wheel
searchIncludeAllIncludemissingas searchIncludeAllExcludenot in the wheel
searchSkipConsecutiveExcludemissingas searchIncludeAllExcludenot in the wheel
searchSkipConsecutiveIncludemissingas searchIncludeAllExcludenot in the wheel
searchIgnoreAllExcludemissingas searchIncludeAllExcludenot in the wheel
searchIgnoreAllIncludemissingas searchIncludeAllExcludenot in the wheel
searchRowsOnlyExcludemissingas searchIncludeAllExcludenot in the wheel
searchRowsOnlyIncludemissingas searchIncludeAllExcludenot in the wheel
byLengthportedby_lengthnot in the wheel
▶SegmentMatchersearch/serial.py crate 3 of 9
wheel 0 of 9
6 to port9 not in wheel

The runs of a stream that are segments searched for, and the stream with each marked by a lyric. Matching says how a run is told the same as a segment, which is music21's five subclasses.

music21Cratemusic21-rsWheel
getContiguousSegmentsByLengthmissingthe searcher's by_length, which find asks for itselfnot in the wheel
findOneIgnoreAllmissingone of the two branches of music21's find, which it picks by how repetitions are read; the crate's find is the one walknot in the wheel
findOneOtherRepsmissingthe other branch of findnot in the wheel
checkSearchedAlreadymissingwhether a segment the same as one already searched for is to be passed over, which find keeps as it goesnot in the wheel
normalizemissinghow a run is read before it is compared, which is what Matching says: the pitch classes, the intervals they make, or the row they arenot in the wheel
equalSubsetmissingthe comparison Matching decides, which the crate does inside findnot in the wheel
repsportedrepetitionsnot in the wheel
includeChordsportedinclude_chordsnot in the wheel
findportedfindnot in the wheel
▶search/serial.py functionssearch/serial.py crate 6 of 6
wheel 0 of 6
6 not in wheel

Module-level: the six functions marking a stream's runs with the name of the segment each matched. Each is SegmentMatcher::label given the Matching that function's name says.

music21Cratemusic21-rsWheel
labelSegmentsportedlabelnot in the wheel
labelTransposedSegmentsportedlabelnot in the wheel
labelTransformedSegmentsportedlabelnot in the wheel
labelMultisetsportedlabelnot in the wheel
labelTransposedMultisetsportedlabelnot in the wheel
labelTransposedAndInvertedMultisetsportedlabelnot in the wheel

Every public member of the music21 classes the crate ports, read from the submodule, and asked of each side separately. The crate may leave a member out on purpose — a reason is shown beside it and it still counts against the total — but one the wheel lacks is a member a program loses when it calls install_into_music21(). It runs the other way too: a member the wheel answers and the crate has no function for is one whose answer is Python's rather than music theory's — a cached value, a callback from the object that holds it, an instrument, or a walk through the stream a note sits in.

Beyond music21

10 capabilities

Capabilitymusic21-rsmusic21
PolyrhythmCross-rhythms as a first-class thing: the cycle two or more pulses make together, where the hits fall in it, and the chord that cycle maps onto when its ratios are read as pitches. music21 has no counterpart. present nothing of the kind
Tuning systemsExact ratio tables - just intonation, meantone, Bohlen-Pierce, the Carlos scales - with frequencies derived from the ratios rather than from equal temperament, and available with no features turned on. Fourteen of them are the historical keyboard temperaments, Salinas 1577 through Lehman 2005, reachable together as HISTORICAL_TEMPERAMENTS; they are counted here rather than again, being the same tables. 23 of the 28 are in the bundled Scala archive too - the same scales stored the other way, exact ratios against parsed cents - which is deliberate and pinned by a test. music21 tunes a scale only by reading a Scala file. 28 systems nothing of the kind
Adaptive tuningTuning where a pitch's frequency depends on the harmony it is sounding in rather than on a fixed table - recursive just intonation, five-limit from whichever note is the root. present nothing of the kind
Scala archiveEvery scale music21 ships, plus the hexatone collection, parsed into one table at build time rather than read from disk. The reader also handles the inline comments and EDO notation that music21's own parser mis-reads. 3994 scales 3932 scales
Regular temperamentsA mapping from the primes onto a period and its generators, the commas it tempers out, and the scales that come of stacking it. Every one is checked against the Xenharmonic Wiki, so a mistranscribed number fails the build. 95 temperaments nothing of the kind
Monzos and valsAn interval as the exponents of the primes in its ratio, so 81/80 is [-4 4 -1>, and how many steps of a tuning each prime is worth, 12edo being <12 19 28]. A val mapping a comma to nothing tempers it out. present nothing of the kind
Moments of symmetryThe scales a single generator makes. Seven fifths folded into an octave give exactly two step sizes, which is the diatonic scale, 5L 2s. The pattern is kept apart from the tuning, and nothing assumes the period is an octave. present nothing of the kind
Equal divisions of anythingEqual steps of any interval, not only of the octave: Bohlen-Pierce divides a twelfth into thirteen. The octave-repeating tables above cannot express those by construction. present nothing of the kind
Harte chord notationChord labels as harte-library reads them, C:maj7/3 or Bb:(b3,5,b7,9), built into chords with the root fixed as the label names it. The harte crate in this repository, ported from harte-library and checked against every label in that library's 8,064-chord coverage set. 48 shorthands nothing of the kind
Duplicate detectionWhich of these are the same tuning under another name, compared by sound rather than spelling. It finds 44 groups of repeats among the archive's 3,994 scales. present nothing of the kind

1235 public members the map matches to nothing in music2185 fn, 903 method, 83 struct, 93 enum, 3 trait, 4 type, 64 const, across 97 modules

▶notation
59 members
  • ALL const
  • Beam struct
  • Beam::beam_type method
  • Beam::set_beam_type method
  • Beam::set_direction method
  • Beam::set_number method
  • BeamDirection enum
  • BeamDirection::as_str method
  • BeamDirection::from_music21_name method
  • BeamType enum
  • BeamType::as_str method
  • BeamType::from_music21_name method
  • Beams::beams_mut method
  • Beams::feathered method
  • Beams::fill_levels method
  • Beams::is_empty method
  • Beams::len method
  • Beams::levels_for method
  • Beams::naive method
  • Beams::set_beams method
  • Beams::set_feathered method
  • Justification enum
  • Justification::as_str method
  • LEVELS const
  • Lyric::clear_text method
  • Lyric::elision_before method
  • Lyric::explicit_identifier method
  • Lyric::explicit_syllabic method
  • Lyric::explicit_text method
  • Lyric::from_raw_text method
  • Lyric::is_hidden method
  • Lyric::set_components method
  • Lyric::set_elision_before method
  • Lyric::set_hidden method
  • Lyric::set_identifier method
  • Lyric::set_justify method
  • Lyric::set_number method
  • Lyric::set_placement method
  • Lyric::set_raw_text method
  • Lyric::set_syllabic method
  • Lyric::unsung method
  • NAMES const
  • NoteSize enum
  • NoteSize::as_str method
  • Notehead enum
  • Notehead::as_str method
  • Placement enum
  • Placement::as_str method
  • StemDirection enum
  • StemDirection::as_str method
  • Syllabic enum
  • Syllabic::as_str method
  • Tie::set_placement method
  • Tie::set_style method
  • Tie::set_tie_type method
  • TieStyle enum
  • TieStyle::as_str method
  • TieType enum
  • TieType::as_str method
▶stream
56 members
  • ALL const
  • BarTogether enum
  • BarTogether::as_str method
  • StaffGroup::name_hidden method
  • StaffGroup::set_abbreviation method
  • StaffGroup::set_bar_together method
  • StaffGroup::set_name method
  • StaffGroup::set_name_hidden method
  • StaffGroup::set_symbol method
  • Stream::abbreviation_hidden method
  • Stream::add_spanner method
  • Stream::add_staff_group method
  • Stream::end_offset method
  • Stream::ending method
  • Stream::events_mut method
  • Stream::for_each_mut method
  • Stream::from_events method
  • Stream::is_empty method
  • Stream::kind method
  • Stream::leaves method
  • Stream::len method
  • Stream::measure_numbering method
  • Stream::metronome_mark_at method
  • Stream::name_hidden method
  • Stream::number_hidden method
  • Stream::number_suffix method
  • Stream::padding_left method
  • Stream::padding_right method
  • Stream::retain_leaves method
  • Stream::set_abbreviation method
  • Stream::set_abbreviation_hidden method
  • Stream::set_ending method
  • Stream::set_id method
  • Stream::set_kind method
  • Stream::set_left_barline method
  • Stream::set_measure_numbering method
  • Stream::set_metadata method
  • Stream::set_name method
  • Stream::set_name_hidden method
  • Stream::set_number method
  • Stream::set_number_hidden method
  • Stream::set_number_suffix method
  • Stream::set_padding_left method
  • Stream::set_padding_right method
  • Stream::set_right_barline method
  • Stream::staff_groups method
  • Stream::streams_of_kind method
  • Stream::with_kind method
  • StreamElement enum
  • StreamElement::as_stream method
  • StreamElement::is_note_or_chord method
  • StreamEvent struct
  • StreamEvent::element_mut method
  • StreamEvent::end_offset method
  • StreamKind enum
  • StreamKind::as_str method
▶duration
55 members
  • ALL const
  • Duration::eighth method
  • Duration::expression_is_inferred method
  • Duration::from_type method
  • Duration::half method
  • Duration::is_grace method
  • Duration::quarter method
  • Duration::set_dot_groups method
  • Duration::set_dots method
  • Duration::set_expression_is_inferred method
  • Duration::set_grace method
  • Duration::set_linked method
  • Duration::set_quarter_length method
  • Duration::set_tuplets method
  • Duration::whole method
  • Duration::written_values method
  • DurationTuple struct
  • DurationTuple::silenced method
  • DurationType enum
  • DurationType::from_music21_name method
  • DurationType::quarter_length_with_dots method
  • Grace struct
  • Grace::appoggiatura method
  • Grace::make_time method
  • Grace::set_make_time method
  • Grace::set_slash method
  • Grace::set_steal_time_following method
  • Grace::set_steal_time_previous method
  • Grace::slash method
  • Grace::steal_time_following method
  • Grace::steal_time_previous method
  • Tuplet::actual method
  • Tuplet::actual_show method
  • Tuplet::augmented method
  • Tuplet::bracket method
  • Tuplet::normal method
  • Tuplet::normal_dots method
  • Tuplet::normal_duration_type method
  • Tuplet::normal_show method
  • Tuplet::ratio method
  • Tuplet::set_actual_show method
  • Tuplet::set_bracket method
  • Tuplet::set_duration_actual method
  • Tuplet::set_duration_normal method
  • Tuplet::set_normal_show method
  • Tuplet::set_placement method
  • Tuplet::set_tuplet_type method
  • Tuplet::tuplet_type method
  • Tuplet::with_normal method
  • TupletBracket enum
  • TupletNotation struct
  • TupletShow enum
  • TupletShow::as_str method
  • TupletType enum
  • TupletType::as_str method
▶expressions
49 members
  • ALL const
  • ArpeggioType enum
  • ArpeggioType::as_str method
  • Expression enum
  • Expression::tie_attach method
  • Fermata struct
  • Fermata::fermata_type method
  • Fermata::set_fermata_type method
  • Fermata::set_shape method
  • Fermata::shape method
  • FermataType enum
  • FermataType::as_str method
  • Ornament::appoggiatura_size method
  • Ornament::auto_scale method
  • Ornament::is_a method
  • Ornament::kind method
  • Ornament::measured method
  • Ornament::nachschlag method
  • Ornament::of_kind method
  • Ornament::set_accidental method
  • Ornament::set_appoggiatura_size method
  • Ornament::set_auto_scale method
  • Ornament::set_delay method
  • Ornament::set_lower_accidental method
  • Ornament::set_measured method
  • Ornament::set_nachschlag method
  • Ornament::set_number_of_marks method
  • Ornament::set_placement method
  • Ornament::set_quarter_length method
  • Ornament::set_tie_attach method
  • Ornament::set_upper_accidental method
  • Ornament::tie_attach method
  • OrnamentDelay enum
  • OrnamentKind enum
  • OrnamentKind::class_name method
  • OrnamentKind::from_class_name method
  • OrnamentKind::has_fixed_size method
  • OrnamentKind::parents method
  • Realization::into_notes method
  • RehearsalMark struct
  • RehearsalMark::enclosure method
  • RehearsalMark::set_content method
  • RehearsalMark::set_enclosure method
  • RehearsalMark::set_placement method
  • TextExpression struct
  • TextExpression::set_content method
  • TextExpression::set_placement method
  • TurnNote enum
  • realize_ornaments fn
▶spanner
48 members
  • LineEnd enum
  • LineEnd::as_str method
  • LineEnds struct
  • OctaveShift struct
  • OctaveShift::set_transposing method
  • OctaveShift::transposing method
  • Pedal struct
  • PedalForm enum
  • PedalForm::as_str method
  • PedalForm::has_line method
  • PedalObject struct
  • PedalObject::kind method
  • PedalObject::set_placement method
  • PedalObjectKind enum
  • PedalObjectKind::class_name method
  • PedalObjectKind::from_class_name method
  • PedalType enum
  • PedalType::as_str method
  • SlideType enum
  • SlideType::as_str method
  • Spanner::arpeggio method
  • Spanner::arpeggio_mark method
  • Spanner::ends method
  • Spanner::glissando_details method
  • Spanner::is_empty method
  • Spanner::kind method
  • Spanner::len method
  • Spanner::pedal method
  • Spanner::pedal_mark method
  • Spanner::set_arpeggio method
  • Spanner::set_ends method
  • Spanner::set_glissando_details method
  • Spanner::set_line_type method
  • Spanner::set_number_of_marks method
  • Spanner::set_offset method
  • Spanner::set_pedal method
  • Spanner::set_placement method
  • Spanner::set_shift method
  • Spanner::set_spread method
  • Spanner::shift method
  • Spanner::slur method
  • Spanner::spread method
  • Spanner::wedge method
  • Spanner::with_unplaced method
  • SpannerKind enum
  • SpannerKind::class_name method
  • SpannerKind::is_wedge method
  • SpannerKind::numbering_class method
▶tuningsystem
42 members
  • A0 const
  • A4 const
  • ALL_TUNING_SYSTEMS const
  • AN1 const
  • AnyTuningSystem enum
  • AnyTuningSystem::cents_at method
  • AnyTuningSystem::frequency_at method
  • AnyTuningSystem::is_adaptive method
  • C0 const
  • C4 const
  • CN1 const
  • COMMON_EQUAL_TEMPERAMENTS const
  • COMMON_TWELVE_TONE_TUNING_SYSTEMS const
  • EQUAL_TEMPERAMENT const
  • HISTORICAL_TEMPERAMENTS const
  • INDIAN_SCALE_NAMES const
  • JAVANESE const
  • OCTAVE_SIZE const
  • QUARTER_TONE const
  • Ratio enum
  • Ratio::monzo method
  • Ratio::to_fraction method
  • Ratio::with_octaves method
  • THAI const
  • TuningSystem enum
  • TuningSystem::cents_at method
  • TuningSystem::degrees_per_period method
  • TuningSystem::description method
  • TuningSystem::display_name method
  • TuningSystem::edo method
  • TuningSystem::exact_ratio method
  • TuningSystem::frequency_at method
  • TuningSystem::is_keyboard method
  • TuningSystem::nearest_degree method
  • TuningSystem::period_cents method
  • TuningSystem::period_of method
  • TuningSystem::pitch_at method
  • TuningSystem::ratio method
  • TuningSystem::ratio_at method
  • TuningSystem::repeats_at_the_octave method
  • WHOLE_TONE const
  • equal_temperament fn
▶articulations
41 members
  • ALL const
  • Articulation::alternate method
  • Articulation::bend_alter method
  • Articulation::display_text method
  • Articulation::finger method
  • Articulation::harmonic_type method
  • Articulation::is_a method
  • Articulation::kind method
  • Articulation::length_shift method
  • Articulation::of_kind method
  • Articulation::pitch_type method
  • Articulation::point_direction method
  • Articulation::pre_bend method
  • Articulation::release method
  • Articulation::set_alternate method
  • Articulation::set_bend_alter method
  • Articulation::set_display_text method
  • Articulation::set_finger method
  • Articulation::set_harmonic_type method
  • Articulation::set_length_shift method
  • Articulation::set_number method
  • Articulation::set_pitch_type method
  • Articulation::set_placement method
  • Articulation::set_point_direction method
  • Articulation::set_pre_bend method
  • Articulation::set_release method
  • Articulation::set_substitution method
  • Articulation::set_symbol method
  • Articulation::set_tie_attach method
  • Articulation::set_volume_shift method
  • Articulation::set_with_bar method
  • Articulation::substitution method
  • Articulation::tie_attach method
  • Articulation::with_bar method
  • ArticulationKind enum
  • ArticulationKind::class_name method
  • ArticulationKind::from_class_name method
  • ArticulationKind::has_field method
  • ArticulationKind::parents method
  • Finger enum
  • Finger::from_written method
▶tempo
38 members
  • DEFAULT_TEMPO_VALUES const
  • MetricModulation::arrow_direction method
  • MetricModulation::classical_style method
  • MetricModulation::maintain_beat method
  • MetricModulation::parentheses method
  • MetricModulation::set_arrow_direction method
  • MetricModulation::set_classical_style method
  • MetricModulation::set_maintain_beat method
  • MetricModulation::set_new_metronome method
  • MetricModulation::set_new_referent method
  • MetricModulation::set_old_metronome method
  • MetricModulation::set_old_referent method
  • MetricModulation::set_parentheses method
  • MetricModulation::set_placement method
  • MetricModulation::set_transition_symbol method
  • MetricModulation::transition_symbol method
  • MetronomeMark::number_implicit method
  • MetronomeMark::parentheses method
  • MetronomeMark::quarter_length_to_seconds method
  • MetronomeMark::set_number method
  • MetronomeMark::set_number_implicit method
  • MetronomeMark::set_number_sounding method
  • MetronomeMark::set_parentheses method
  • MetronomeMark::set_placement method
  • MetronomeMark::set_referent method
  • MetronomeMark::sounding_quarter_bpm method
  • MetronomeMark::text_implicit method
  • MetronomeMark::with_number_and_text method
  • MetronomeMark::with_number_sounding method
  • MetronomeMark::with_referent method
  • ModulationSide enum
  • TempoText struct
  • TempoText::is_common_tempo_text method
  • TempoText::set_placement method
  • default_number_for_text fn
  • default_text_for_number fn
  • interpolated_offset fn
  • is_common_tempo_text fn
▶meter
37 members
  • BeamedNote struct
  • BeatDivision enum
  • BeatDivision::count method
  • TimeSignature::accent_partition_quarter_length method
  • TimeSignature::accent_sequence method
  • TimeSignature::accent_sequence_mut method
  • TimeSignature::accent_weight_at_level method
  • TimeSignature::accent_weight_with method
  • TimeSignature::accent_weights method
  • TimeSignature::bar_quarter_length method
  • TimeSignature::beam_sequence method
  • TimeSignature::beam_sequence_mut method
  • TimeSignature::beat_division method
  • TimeSignature::beat_division_quarter_lengths method
  • TimeSignature::beat_duration_at method
  • TimeSignature::beat_quarter_length method
  • TimeSignature::beat_sequence method
  • TimeSignature::beat_sequence_mut method
  • TimeSignature::common method
  • TimeSignature::cut method
  • TimeSignature::display_sequence method
  • TimeSignature::display_sequence_mut method
  • TimeSignature::divide_beats method
  • TimeSignature::favors_compound method
  • TimeSignature::from_ratio_string method
  • TimeSignature::is_compound method
  • TimeSignature::is_hidden method
  • TimeSignature::is_restated method
  • TimeSignature::set_beat_count method
  • TimeSignature::set_hidden method
  • TimeSignature::set_restated method
  • TimeSignature::set_summed_numerator method
  • TimeSignature::set_symbol method
  • TimeSignature::set_symbolize_denominator method
  • TimeSignature::symbolize_denominator method
  • partition_name fn
  • snapped_fraction fn
▶instrument
36 members
  • EACH const
  • Instrument::class_name method
  • Instrument::families method
  • Instrument::highest method
  • Instrument::in_percussion_map method
  • Instrument::instrument_id method
  • Instrument::is_a method
  • Instrument::kind method
  • Instrument::kinds method
  • Instrument::lowest method
  • Instrument::midi_channel method
  • Instrument::midi_program method
  • Instrument::of_kind method
  • Instrument::part_id method
  • Instrument::set_abbreviation method
  • Instrument::set_highest method
  • Instrument::set_in_percussion_map method
  • Instrument::set_instrument_id method
  • Instrument::set_lowest method
  • Instrument::set_midi_channel method
  • Instrument::set_midi_program method
  • Instrument::set_modifier method
  • Instrument::set_name method
  • Instrument::set_part_abbreviation method
  • Instrument::set_part_id method
  • Instrument::set_part_name method
  • Instrument::set_percussion_pitch method
  • Instrument::set_sound method
  • Instrument::set_string_pitches method
  • Instrument::set_transposition method
  • Instrument::sound method
  • Instrument::sounding method
  • Instrument::transposition method
  • Instrument::written method
  • SearchLanguage enum
  • SearchLanguage::as_str method
▶pitch
29 members
  • Pitch::builder method
  • Pitch::frequency_hz_in method
  • Pitch::frequency_hz_tuned method
  • Pitch::from_frequency method
  • Pitch::from_frequency_in method
  • Pitch::from_midi method
  • Pitch::from_name_and_octave method
  • Pitch::from_number method
  • Pitch::from_options method
  • Pitch::from_pitch_class method
  • Pitch::from_pitch_space method
  • Pitch::from_step method
  • Pitch::fundamental method
  • Pitch::pitch_space method
  • Pitch::set_accidental method
  • Pitch::set_accidental_alter method
  • Pitch::set_microtone_cents method
  • Pitch::set_octave method
  • Pitch::set_octave_is_implicit method
  • Pitch::set_spelling_is_inferred method
  • Pitch::set_written_accidental method
  • Pitch::spelling_is_inferred method
  • Pitch::written_accidental method
  • Pitch::written_accidental_mut method
  • PitchName enum
  • PitchOptions struct
  • PitchOptions::build method
  • PitchOptions::fundamental method
  • PitchOptions::pitch_space method
▶chord
28 members
  • Chord::empty method
  • Chord::found_bass method
  • Chord::found_root method
  • Chord::guitar_fingering method
  • Chord::guitar_fingering_with_tuning method
  • Chord::is_empty method
  • Chord::iter_pitches method
  • Chord::len method
  • Chord::note_for_pitch method
  • Chord::note_for_pitch_mut method
  • Chord::notes_mut method
  • Chord::numeral method
  • Chord::overridden_bass method
  • Chord::overridden_root method
  • Chord::polyrhythm_components method
  • Chord::polyrhythm_ratio_string method
  • Chord::remove_named method
  • Chord::remove_redundant_pitch_classes_reporting method
  • Chord::remove_redundant_pitch_names_reporting method
  • Chord::remove_redundant_pitches_reporting method
  • Chord::set_bass method
  • Chord::set_duration method
  • Chord::set_numeral method
  • Chord::set_root method
  • Chord::simplify_enharmonics_in_place method
  • Chord::with_duration method
  • Chord::with_numeral method
  • IntoNotes trait
▶roman
26 members
  • FUNCTIONALITY_SCORES const
  • FigureTuple struct
  • ImpliedQuality enum
  • ImpliedQuality::correct_semitones method
  • Minor67Default enum
  • NumeralAlone struct
  • PitchFigureTuple struct
  • RomanNumeral::added_steps method
  • RomanNumeral::bracketed_alterations method
  • RomanNumeral::case_matters method
  • RomanNumeral::degree method
  • RomanNumeral::effective_key_of method
  • RomanNumeral::figure_numbers method
  • RomanNumeral::figures_notation method
  • RomanNumeral::figures_written method
  • RomanNumeral::front_alteration_string method
  • RomanNumeral::implied_quality method
  • RomanNumeral::omitted_steps method
  • RomanNumeral::over_scale method
  • RomanNumeral::roman_numeral_alone method
  • RomanNumeral::secondary method
  • RomanNumeral::seventh_minor method
  • RomanNumeral::sixth_minor method
  • RomanNumeral::with_minor_defaults method
  • RomanNumeral::with_options method
  • RomanNumeral::written_accidental method
▶chordsymbol
25 members
  • ChordAlteration struct
  • ChordAlteration::degree method
  • ChordQuality enum
  • ChordSymbol::add_chord_step_modification method
  • ChordSymbol::additions method
  • ChordSymbol::alterations method
  • ChordSymbol::chord_step_modifications method
  • ChordSymbol::extensions method
  • ChordSymbol::from_kind method
  • ChordSymbol::is_no_chord method
  • ChordSymbol::kind method
  • ChordSymbol::kind_text method
  • ChordSymbol::lyrics_mut method
  • ChordSymbol::no_chord method
  • ChordSymbol::omissions method
  • ChordSymbol::parse_music21 method
  • ChordSymbol::set_bass method
  • ChordSymbol::set_chord_step_modifications method
  • ChordSymbol::set_duration method
  • ChordSymbol::set_kind_text method
  • ChordSymbol::set_placement method
  • ChordSymbol::set_root method
  • ChordSymbol::with_duration method
  • ChordSymbol::with_kind method
  • chord_symbol_durations fn
▶polyrhythm
22 members
  • Polyrhythm struct
  • Polyrhythm::analysis method
  • Polyrhythm::beat_timings method
  • Polyrhythm::coincidence_ticks method
  • Polyrhythm::component_intervals method
  • Polyrhythm::current_tick method
  • Polyrhythm::cycle_len method
  • Polyrhythm::from_time_signature method
  • Polyrhythm::hit_events method
  • Polyrhythm::measure_duration method
  • Polyrhythm::ratio_chord method
  • Polyrhythm::ratio_frequencies method
  • Polyrhythm::ratio_pitches method
  • Polyrhythm::ratio_tones method
  • Polyrhythm::reset method
  • Polyrhythm::set_tempo method
  • Polyrhythm::tempo method
  • Polyrhythm::tick_duration method
  • Polyrhythm::with_tempo method
  • PolyrhythmAnalysis struct
  • PolyrhythmEvent struct
  • PolyrhythmRatioTone struct
▶tree
22 members
  • ElementTimespan::is_pitched method
  • ElementTimespan::parent_end_time method
  • ElementTimespan::parent_offset method
  • Flatten enum
  • Horizontality::timespans method
  • TimespanTree::all_offsets method
  • TimespanTree::all_time_points method
  • TimespanTree::highest_position method
  • TimespanTree::is_empty method
  • TimespanTree::len method
  • TimespanTree::overlap_time_points method
  • TimespanTree::overlapping method
  • TimespanTree::position_after method
  • TimespanTree::position_before method
  • TimespanTree::source method
  • TimespanTree::starting_at method
  • TimespanTree::stopping_at method
  • TimespanTree::timespans method
  • Verticality::overlap_timespans method
  • Verticality::start_timespans method
  • Verticality::stop_timespans method
  • Verticality::voice_leading_timespans method
▶tuningsystem::monzo
22 members
  • Monzo struct
  • Monzo::exponent_of method
  • Monzo::exponents method
  • Monzo::from_fraction method
  • Monzo::from_ratio method
  • Monzo::inverse method
  • Monzo::limit method
  • Monzo::multiply method
  • Monzo::pow method
  • Monzo::pythagorean method
  • Monzo::ratio method
  • Monzo::unison method
  • PRIMES const
  • Val struct
  • Val::divisions method
  • Val::entries method
  • Val::error_cents method
  • Val::limit method
  • Val::map method
  • Val::patent method
  • Val::reaches method
  • Val::tempers_out method
▶tuningsystem::scala
22 members
  • ScalaArchive struct
  • ScalaArchive::bundled method
  • ScalaArchive::bundled_len method
  • ScalaArchive::bundled_with_failures method
  • ScalaArchive::insert_scale method
  • ScalaArchive::is_empty method
  • ScalaArchive::len method
  • ScalaArchive::names method
  • ScalaDegree enum
  • ScalaDegree::as_ratio method
  • ScalaDegree::ratio method
  • ScalaDegree::written method
  • ScalaScale::cents_above_root method
  • ScalaScale::degrees method
  • ScalaScale::description method
  • ScalaScale::frequency_at method
  • ScalaScale::from_written_cents method
  • ScalaScale::is_empty method
  • ScalaScale::len method
  • ScalaScale::parse_bytes method
  • ScalaScale::ratio_at method
  • ScalaScale::written_degrees method
▶tuningsystem::temperament
22 members
  • Temperament struct
  • Temperament::equave method
  • Temperament::equave_cents method
  • Temperament::error_cents method
  • Temperament::from_mapping method
  • Temperament::from_mapping_rows method
  • Temperament::from_published method
  • Temperament::generator_cents method
  • Temperament::generator_map method
  • Temperament::map method
  • Temperament::moments method
  • Temperament::mos method
  • Temperament::pattern method
  • Temperament::period_cents method
  • Temperament::period_map method
  • Temperament::periods_per_equave method
  • Temperament::primes method
  • Temperament::rank method
  • Temperament::repeats_at_the_octave method
  • Temperament::subgroup_name method
  • Temperament::tempers_out method
  • crate::tuningsystem::NamedTemperament::temperament method
▶note
20 members
  • IntoNote trait
  • Note::articulations method
  • Note::articulations_mut method
  • Note::beams_mut method
  • Note::expressions method
  • Note::expressions_mut method
  • Note::from_number method
  • Note::from_pitch method
  • Note::hidden method
  • Note::lyrics_mut method
  • Note::set_beams method
  • Note::set_duration method
  • Note::set_hidden method
  • Note::set_id method
  • Note::set_lyric method
  • Note::set_notehead_parenthesis method
  • Note::set_pitch method
  • Note::set_size method
  • Note::set_stored_instrument method
  • Note::with_duration method
▶scale::scaletype
19 members
  • ALL const
  • DegreeComparison enum
  • HUMDRUM_SOLFEG_SYLLABLES const
  • SOLFEG_SYLLABLES const
  • ScaleType enum
  • ScaleType::ascending_degrees method
  • ScaleType::beyond_terminus method
  • ScaleType::derive_ranked_by method
  • ScaleType::descending_form method
  • ScaleType::descending_steps method
  • ScaleType::dominant_degree method
  • ScaleType::from_music21_name method
  • ScaleType::is_cycle method
  • ScaleType::is_plagal method
  • ScaleType::music21_descriptive_name method
  • ScaleType::realization_steps method
  • ScaleType::tonic_degree method
  • Simplification enum
  • SolfegVariant enum
▶tuningsystem::equal
18 members
  • EqualDivision struct
  • EqualDivision::approximation_of method
  • EqualDivision::cents_at method
  • EqualDivision::degrees method
  • EqualDivision::divisions method
  • EqualDivision::edo method
  • EqualDivision::error_at_cents method
  • EqualDivision::mos method
  • EqualDivision::nearest_degree method
  • EqualDivision::of_ratio method
  • EqualDivision::patent_val method
  • EqualDivision::period_cents method
  • EqualDivision::period_ratio method
  • EqualDivision::ratio_at method
  • EqualDivision::repeats_at_the_octave method
  • EqualDivision::step_cents method
  • EqualDivision::tritave method
  • TRITAVE_CENTS const
▶analysis
17 members
  • ALL const
  • KeyEstimate struct
  • KeyProfile enum
  • KeyProfile::identifiers method
  • KeyProfile::minor_weights method
  • KeyProfile::music21_class_name method
  • estimate_key_from_chords fn
  • estimate_key_from_chords_with fn
  • estimate_key_from_pitches fn
  • estimate_key_from_pitches_with fn
  • estimate_key_of_stream fn
  • melodic_line_positions fn
  • melodic_lines fn
  • pitch_class_distribution fn
  • stream_distribution fn
  • stream_pitch_span fn
  • tonal_certainty_from_scores fn
▶percussion
17 members
  • PercussionChord::is_empty method
  • PercussionChord::is_unpitched method
  • PercussionChord::len method
  • PercussionChord::with_duration method
  • PercussionChord::written method
  • PercussionChord::written_mut method
  • PercussionNote enum
  • Unpitched struct
  • Unpitched::display_name method
  • Unpitched::display_octave method
  • Unpitched::display_pitch method
  • Unpitched::display_step method
  • Unpitched::displayed_at method
  • Unpitched::from_display_name method
  • Unpitched::with_duration method
  • Unpitched::written method
  • Unpitched::written_mut method
▶clef
16 members
  • ALL const
  • Clef::is_a method
  • Clef::kind method
  • Clef::lowest_line method
  • Clef::of_kind method
  • Clef::places_pitches method
  • Clef::set_line method
  • Clef::set_lowest_line method
  • Clef::set_octave_change method
  • Clef::set_sign method
  • Clef::sign method
  • Clef::treble method
  • ClefKind enum
  • ClefKind::class_name method
  • ClefKind::from_class_name method
  • ClefKind::parents method
▶tuningsystem::mos
16 members
  • Mos struct
  • Mos::brightest_word method
  • Mos::inverted method
  • Mos::large method
  • Mos::small method
  • MosScale struct
  • MosScale::degrees method
  • MosScale::from_equal_division method
  • MosScale::generator method
  • MosScale::is_equal method
  • MosScale::is_moment_of_symmetry method
  • MosScale::pattern method
  • MosScale::steps method
  • MosScale::word method
  • OCTAVE_CENTS const
  • moment_of_symmetry_sizes fn
▶braille::lookup
15 members
  • alphabet fn
  • ascii_char fn
  • before_note_expression fn
  • binary_dots fn
  • bowing fn
  • cell fn
  • cells fn
  • clef_prefix fn
  • clef_suffix fn
  • fermata fn
  • finger_mark fn
  • length_prefix fn
  • naturals fn
  • number_lower fn
  • number_upper fn
▶features
15 members
  • DataInstance::analyzed_key method
  • DataInstance::parts_count method
  • DataInstance::parts_sounding method
  • DataInstance::prepared method
  • Extractor struct
  • Extractor::description method
  • Extractor::dimensions method
  • Extractor::discrete method
  • Feature::discrete method
  • Feature::values method
  • Feature::vector method
  • Seconds struct
  • Value enum
  • Value::as_float method
  • Value::is_integer method
▶figuredbass
15 members
  • EXTENDER const
  • Figure::has_extender method
  • Figure::set_number method
  • Modifier::written method
  • Notation struct
  • Notation::column method
  • Notation::extenders method
  • Notation::figure_strings method
  • Notation::figures method
  • Notation::figures_as_written method
  • Notation::has_extenders method
  • Notation::modifier_strings method
  • Notation::modifiers method
  • Notation::original_modifiers method
  • Notation::original_numbers method
▶serial
15 members
  • ALL const
  • HistoricalRow struct
  • HistoricalRow::row method
  • IndexedTransformation type
  • LinkClassification struct
  • ToneRow::find_transformations method
  • ToneRow::from_pitches method
  • ToneRow::is_empty method
  • ToneRow::len method
  • ToneRow::transformation method
  • Transformation enum
  • TransformationConvention enum
  • TwelveToneMatrix struct
  • TwelveToneMatrix::row method
  • TwelveToneMatrix::rows method
▶interval
14 members
  • Interval::between_notes method
  • Interval::diatonic_interval_cent_shift method
  • Interval::from_chromatic method
  • Interval::from_diatonic method
  • Interval::from_diatonic_and_chromatic method
  • Interval::from_semitones method
  • Interval::generic_number method
  • Interval::is_implicit_diatonic method
  • Interval::pythagorean_monzo method
  • Interval::transpose_pitch_in_place method
  • Interval::transpose_pitch_with_options method
  • Interval::whole_semitones method
  • IntervalDirection enum
  • IntervalDirection::as_int method
▶rest
14 members
  • Rest::articulations method
  • Rest::articulations_mut method
  • Rest::expressions method
  • Rest::expressions_mut method
  • Rest::full_measure method
  • Rest::hidden method
  • Rest::lyrics_mut method
  • Rest::set_duration method
  • Rest::set_full_measure method
  • Rest::set_hidden method
  • Rest::set_lyric method
  • Rest::set_size method
  • Rest::set_step_shift method
  • Rest::step_shift method
▶analysis::neoriemannian
13 members
  • ALL const
  • ChainOrder enum
  • HexatonicSystem enum
  • Mediant enum
  • Mediant::code method
  • Mediant::from_code method
  • MediantSide enum
  • Respell enum
  • Transform enum
  • Transform::from_symbol method
  • Transform::parse_chain method
  • lrp_chain fn
  • simpler_enharmonics fn
▶volume
13 members
  • DynamicContext enum
  • Volume::from_velocity method
  • Volume::from_velocity_scalar method
  • Volume::has_velocity_information method
  • Volume::realized_dynamic method
  • Volume::realized_with method
  • Volume::realized_without_velocity method
  • Volume::set_velocity method
  • Volume::set_velocity_is_relative method
  • Volume::set_velocity_scalar method
  • Volume::velocity_is_relative method
  • dynamics_in_force fn
  • rounded_str fn
▶metadata
12 members
  • Metadata::add_text method
  • Metadata::all_sorted method
  • Metadata::first_text method
  • Metadata::is_empty method
  • MetadataMatch struct
  • MetadataMatch::field method
  • MetadataQuery enum
  • MetadataValue struct
  • MetadataValue::role method
  • MetadataValue::with_role method
  • OLD_MUSIC21_NAMES const
  • STANDARD_PROPERTIES const
▶meter::sequence
12 members
  • MeterTerminal::flattened method
  • MeterTerminal::from_partition_string method
  • MeterTerminal::from_parts_given method
  • MeterTerminal::from_ratio_string method
  • MeterTerminal::is_empty method
  • MeterTerminal::len method
  • MeterTerminal::partition_by_parts method
  • MeterTerminal::parts_mut method
  • MeterTerminal::set_summed_numerator method
  • MeterTerminal::set_weight method
  • MeterTerminal::subdivide_nested_hierarchy_by method
  • OffsetAlign enum
▶romantext::clercq_temperley
12 members
  • CtLabels struct
  • CtRule struct
  • CtRule::expand_in method
  • CtRule::measure_groups method
  • CtSong struct
  • CtSong::lines method
  • CtSong::rule method
  • CtSong::to_part_with method
  • GroupKind enum
  • MeasureGroup struct
  • from_clercq_temperley fn
  • from_clercq_temperley_with fn
▶braille::segment
11 members
  • Affinity enum
  • BrailleElement struct
  • BrailleElementGrouping struct
  • BrailleGrandSegment::english method
  • BrailleSegment::english method
  • Hand enum
  • NoteGroupingTranscriber struct
  • NoteGroupingTranscriber::transcribe_group method
  • SegmentKey struct
  • SegmentOptions struct
  • transcribe_note_grouping fn
▶key::keysignature
11 members
  • KeySignature::accidentals_apply_only_to_octave method
  • KeySignature::description method
  • KeySignature::from_altered_pitches method
  • KeySignature::is_non_traditional method
  • KeySignature::set_accidentals_apply_only_to_octave method
  • KeySignature::set_altered_pitches method
  • KeySignature::set_non_traditional method
  • KeySignature::set_sharps method
  • KeySignature::try_as_key method
  • mode_sharps_alter fn
  • pitch_name_to_sharps fn
▶repeat
11 members
  • ALL const
  • RepeatExpression::kind method
  • RepeatExpression::set_placement method
  • RepeatExpression::set_use_symbol method
  • RepeatExpression::use_symbol method
  • RepeatExpression::with_text method
  • RepeatExpressionKind enum
  • RepeatExpressionKind::class_name method
  • RepeatExpressionKind::from_class_name method
  • RepeatExpressionKind::has_symbol method
  • RepeatExpressionKind::text_alternatives method
▶voiceleading
11 members
  • MotionType enum
  • MotionType::as_str method
  • ParallelRequirement enum
  • QuartetOptions struct
  • VoiceLeadingQuartet::from_names method
  • VoiceLeadingQuartet::horizontal_intervals method
  • VoiceLeadingQuartet::set_key method
  • VoiceLeadingQuartet::vertical_intervals method
  • VoiceLeadingQuartet::with_key method
  • verticality_positions_at fn
  • voice_leading_quartet_positions fn
▶omr::correctors
10 members
  • MeasureRelationship struct
  • PROBABILITY_ON_ADDITION const
  • PROBABILITY_ON_EQUALITY const
  • PROBABILITY_ON_OMISSION const
  • PriorsIntegrationScore struct
  • ScoreCorrector::into_score method
  • ScoreCorrector::single_parts method
  • SinglePart::incorrect_measures method
  • SinglePart::index_array method
  • SinglePart::part_number method
▶sieve
10 members
  • Sieve::contains method
  • Sieve::from_segment method
  • Sieve::intersection method
  • Sieve::interval_widths method
  • Sieve::segment_binary method
  • Sieve::segment_unit method
  • Sieve::segment_widths method
  • Sieve::shifted method
  • Sieve::symmetric_difference method
  • Sieve::union method
▶analysis::reduction
9 members
  • PartActivity struct
  • PartGroup struct
  • ReductiveNote::measure_index method
  • ReductiveNote::measure_offset method
  • ReductiveNote::parameters method
  • ReductiveParameters struct
  • ScoreReduction::set_chord_reduction method
  • ScoreReduction::set_score method
  • WeightedSpan struct
▶bar
9 members
  • ALL const
  • Barline::set_bar_type method
  • BarlineType enum
  • BarlineType::as_str method
  • Ending::number_text method
  • Ending::starts method
  • Ending::stops method
  • RepeatDirection enum
  • RepeatDirection::as_str method
▶figuredbass::realizer
9 members
  • FiguredBassLine::add_chord method
  • FiguredBassLine::in_key method
  • FiguredBassLine::in_key_and_time method
  • FiguredBassLine::is_empty method
  • FiguredBassLine::len method
  • Realization::fallbacks method
  • Realization::keyboard_style_output method
  • Realization::of method
  • Realization::set_keyboard_style_output method
▶key
9 members
  • Key::derive_by_degree_of method
  • Key::from_tonic method
  • Key::from_tonic_mode method
  • Key::harmonized_sevenths method
  • Key::harmonized_triads method
  • Key::mode method
  • Key::seventh_chord_from_degree method
  • Key::tonic_pitch method
  • Key::triad_from_degree method
▶figuredbass::segment
8 members
  • Consecutive struct
  • Possibility type
  • PossibilityPair type
  • Segment::from_pitch_names method
  • Segment::max_pitch method
  • Segment::num_parts method
  • Segment::overlaid method
  • Segment::pitches_above_bass method
▶midi
8 members
  • DEFAULT_TICKS_PER_QUARTER const
  • MidiNote struct
  • MidiNote::with_channel method
  • midi_notes_from_stream fn
  • read_midi_bytes fn
  • read_midi_bytes_with_tempo fn
  • stream_from_midi_notes fn
  • write_midi_bytes fn
▶romantext::tsv
8 members
  • Direction enum
  • TabChord struct
  • Version enum
  • Version::columns method
  • Version::from_number method
  • Version::read_columns method
  • figured_bass_of fn
  • to_tsv_with_extra fn
▶variant
8 members
  • LengthType enum
  • LengthType::as_str method
  • Variant::contents method
  • Variant::contents_mut method
  • Variant::from_stream method
  • Variant::groups_mut method
  • Variant::named method
  • Variant::set_replacement_quarter_length method
▶analysis::enharmonics
7 members
  • CHORDAL const
  • EnharmonicRules struct
  • EnharmonicRules::alteration_penalty method
  • EnharmonicRules::aug_dim_penalty method
  • EnharmonicRules::mixture_penalty method
  • MELODIC const
  • best_choice fn
▶dynamics
7 members
  • Dynamic::english_name method
  • Dynamic::from_scalar method
  • Dynamic::long_name method
  • Dynamic::set_placement method
  • Dynamic::set_value method
  • Dynamic::set_volume_scalar method
  • SHORT_NAMES const
▶humdrum::harm
7 members
  • Harm struct
  • Harm::alternative method
  • Harm::attribute method
  • Harm::implied method
  • Harm::intervals method
  • Harm::roman_figure method
  • Harm::secondary method
▶style
7 members
  • StyleValue enum
  • StyleValue::read method
  • TextStyle::set_align_horizontal method
  • TextStyle::set_align_vertical method
  • TextStyle::set_font_style method
  • TextStyle::set_font_weight method
  • TextStyle::set_justify method
▶abc
6 members
  • abc_chord fn
  • abc_duration fn
  • abc_note fn
  • abc_rest fn
  • pitch_name_from_abc_note fn
  • pitch_names_from_abc_chord fn
▶chord::guitar
6 members
  • GuitarFingering struct
  • GuitarStringFingering struct
  • GuitarTuning struct
  • GuitarTuning::standard method
  • GuitarTuning::strings method
  • GuitarTuningString struct
▶musicxml
6 members
  • CSS_COLORS const
  • DIVISIONS_PER_QUARTER const
  • ExportOptions struct
  • MUSICXML_VERSION const
  • css_color_hex fn
  • to_musicxml fn
▶analysis::harmonic_function
5 members
  • ALL const
  • FunctionDetail enum
  • HarmonicFunction enum
  • HarmonicFunction::from_symbol method
  • HarmonicFunction::main_function method
▶figuredbass::resolution
5 members
  • AugmentedSixth enum
  • AugmentedSixth::from_number method
  • AugmentedSixth::of method
  • ChordInfo struct
  • ChordInfo::of method
▶layout
5 members
  • Layout enum
  • Layout::class_name method
  • StaffType enum
  • StaffType::as_str method
  • Tenths enum
▶scale::hexatonicblues
5 members
  • ALL const
  • BluesForm enum
  • WeightedHexatonicBlues struct
  • WeightedHexatonicBlues::form_for_seed method
  • WeightedHexatonicBlues::sample method
▶scale::stepscale
5 members
  • StepScale struct
  • StepScale::cyclical_of method
  • StepScale::octave_repeating_of method
  • StepScale::sieve_by method
  • StepScale::steps method
▶tuningsystem::adaptive
5 members
  • AdaptiveTuningSystem enum
  • AdaptiveTuningSystem::cents_at method
  • AdaptiveTuningSystem::cents_vs_fixed_at method
  • AdaptiveTuningSystem::frequency_at method
  • RECURSIVE_JI const
▶tuningsystem::tuning
5 members
  • Just struct
  • Reference struct
  • Reference::a440 method
  • Reference::hertz method
  • Tuning trait
▶alpha::analysis::fixer
4 members
  • OrnamentFixer::fixed method
  • OrnamentFixer::trills method
  • OrnamentFixer::turns method
  • Recognizer enum
▶alpha::analysis::search
4 members
  • PitchAttribute enum
  • RunDirection enum
  • ScaleRun struct
  • ScaleRunOptions struct
▶analysis::windowed
4 members
  • WindowStep enum
  • WindowType enum
  • WindowedAnalysis::minimum_windows method
  • WindowedAnalysis::window_count method
▶figuredbass::possibility
4 members
  • DEFAULT_MAX_PITCH const
  • ItalianSixth struct
  • ItalianSixth::from_chord method
  • ItalianSixth::of method
▶makenotation
4 members
  • QUANTIZATION_DIVISORS const
  • make_measures_by fn
  • op_frac fn
  • set_stem_direction_for_beam_groups fn
▶volpiano
4 members
  • Break enum
  • Break::class_name method
  • from_volpiano fn
  • to_volpiano fn
▶alpha::analysis::aligner
3 members
  • Change struct
  • ChangeOp enum
  • StreamAligner::with_hasher method
▶alpha::analysis::hasher
3 members
  • HashReference struct
  • HashValue enum
  • NoteHash struct
▶audiosearch
3 members
  • AUDIO_CHUNK_LENGTH const
  • RECORD_SAMPLE_RATE const
  • monophonic_stream_from_wav fn
▶braille::basic
3 members
  • NoteContext struct
  • Transcription struct
  • tempo_to_braille fn
▶braille::text
3 members
  • BrailleText::add_measure_number_value method
  • BrailleText::current_line method
  • BrailleText::render method
▶features::language
3 members
  • LANGUAGE_CODES const
  • Trigram::distance method
  • language_name fn
▶figuredbass::scale
3 members
  • ALL const
  • FiguredBassMode enum
  • FiguredBassScale::mode method
▶error
2 members
  • Error enum
  • Result type
▶features::jsymbolic
2 members
  • JSYMBOLIC const
  • extractor fn
▶features::native
2 members
  • NATIVE const
  • extractor fn
▶lily
2 members
  • LilyOptions struct
  • to_lilypond fn
▶omr::evaluators
2 members
  • Evaluation struct
  • OmrGroundTruthPair::omr_mut method
▶romantext
2 members
  • from_roman_text fn
  • to_roman_text fn
▶analysis::correlate
1 member
  • pitch_to_dynamic_counts fn
▶analysis::floating_key
1 member
  • KeyAnalyzer::measure_count method
▶analysis::metrical
1 member
  • beat_depths fn
▶braille::translate
1 member
  • BrailleOptions struct
▶capella
1 member
  • from_capella fn
▶chord::tables
1 member
  • read_address fn
▶figuredbass::rules
1 member
  • Rules struct
▶humdrum
1 member
  • from_humdrum fn
▶mei
1 member
  • from_mei fn
▶musedata
1 member
  • from_musedata fn
▶noteworthy
1 member
  • from_noteworthy fn
▶text
1 member
  • ARTICLES const
▶tinynotation
1 member
  • from_tiny_notation fn

Counts are read out of the crate's own tables, so the report fails when one it names has gone. The list of members is derived: every public member of the crate, less every name music21 uses. It is bounded by what the map enumerates, so a member of a music21 class the map does not carry can appear here.