music21-rs

Reports

commit a0a16a2 / music21 11.0.0b20 from float3/music21 26cfcc181 / Python 3.13.18 / Linux-7.0.0-1019-azure-x86_64-with-glibc2.43

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

7781 passing, all green

SuiteTestsResultPassedFailedCommand
Workspace crate passed 1434 0 cargo test --workspace --all-targets
Workspace doctests crate passed 323 0 cargo test --workspace --doc
Python parity and music21's doctests cratewheel passed 259 0 cargo nextest run --manifest-path python-parity/Cargo.toml --no-fail-fast
Python wheelmusic21_rs-0.20.0-cp313-cp313-manylinux_2_39_x86_64.whl wheel passed — — maturin build --release --manifest-path python/Cargo.toml
Python wheel tests wheel passed 405 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 5360 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
83.9%83537 of 99517, 15980 not reached
Functions
85.8%10694 of 12467, 1773 not reached
Regions
83.1%103620 of 124679, 21059 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 70.2× median, wheel 14.4× median, across 33 cases

Casemusic21cratewheelcrate ×wheel ×binding
construction
Pitch('C#4')1.5 µs137 ns2.1 µs10.8×0.7×+1.9 µs
Note('C#4')6.8 µs163 ns999 ns41.5×6.8×+836 ns
Interval('P5')14.4 µs87 ns528 ns166.0×27.3×+441 ns
Chord('C4 E4 G4')27.7 µs634 ns4.2 µs43.8×6.6×+3.6 µs
chord analysis
Chord.commonName5 chords860.3 µs8.8 µs12.9 µs97.3×66.8×+4.0 µs
Chord.root()5 chords194.3 µs—13.5 µs—14.4×—
Chord.inversion()5 chords285.8 µs4.1 µs9.3 µs70.5×30.8×+5.2 µs
Chord.forteClass5 chords409.1 µs6.3 µs10.8 µs65.4×38.0×+4.5 µs
Chord.primeForm5 chords417.5 µs7.0 µs11.3 µs60.1×37.1×+4.3 µs
Chord.intervalVector5 chords415.3 µs7.2 µs11.2 µs57.8×37.2×+4.0 µs
Chord.isDominantSeventh()5 chords391.7 µs4.1 µs8.5 µs95.8×46.1×+4.4 µs
Chord.orderedPitchClasses5 chords185.8 µs4.9 µs9.0 µs38.2×20.7×+4.1 µs
Chord: forteClass + primeForm + intervalVectorone chord, three questions93.1 µs2.9 µs4.1 µs32.0×22.5×+1.2 µs
pitch
Pitch.transpose('M3')41.6 µs369 ns2.6 µs112.9×16.0×+2.2 µs
Pitch.frequency1.4 µs269 ns2.1 µs5.3×0.7×+1.8 µs
Pitch.getEnharmonic()33.4 µs—2.4 µs—14.2×—
Interval(p1, p2)15.7 µs297 ns3.8 µs53.0×4.1×+3.5 µs
serial
pcToToneRow(...).matrix()4.2 ms4.9 µs5.3 µs846.9×784.4×+393 ns
ToneRow.zeroCenteredTransformation402.5 µs528 ns950 ns763.0×423.8×+422 ns
figured bass
Segment(G2, '7').allCorrectSinglePossibilities()4.4 ms52.2 µs82.8 µs83.8×52.8×+30.6 µs
Segment(G2, '7') to Segment(C3), a dominant seventh resolving17.1 ms244.3 µs351.0 µs70.2×48.9×+106.7 µs
Segment(C3) to Segment(D3, '4,3'), every pair of voicings6.2 ms83.6 µs152.9 µs73.6×40.2×+69.3 µs
stream
Stream: append 100 noteseach note built and appended1.4 ms—304.6 µs—4.4×—
Stream: append 2000 noteseach note built and appended25.5 ms—6.2 ms—4.1×—
Stream: s[i] over 2000 notesone stream, every index1.5 ms—276.0 µs—5.4×—
Score.recurse().notes2 parts of 100 measures of 4 notes3.6 ms—847.4 µs—4.2×—
Score.flatten()2 parts of 100 measures of 4 notes, after an edit5.4 ms—1.4 ms—4.0×—
Part.makeMeasures()200 dotted quarters, a copy cut into measures23.4 ms—4.8 ms—4.8×—
read bach/bwv69.6.xmlmusic21's parse cache off; counting the notes read64.0 ms—10.4 ms—6.1×—
read schubert/Lindenbaum.xmlmusic21's parse cache off; counting the notes read337.5 ms—28.7 ms—11.8×—
write bach/bwv69.6.xmlas read by each side, written without makeNotation107.9 ms—22.3 ms—4.8×—
warm object
Chord.commonName (cached)music21 memoizes125 ns—97 ns—1.3×—
Chord.forteClass (cached)music21 memoizes2.2 µs—92 ns—23.4×—

music21 11.0.0b20, Python 3.13.18 (Linux-7.0.0-1019-azure-x86_64-with-glibc2.43). 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.

4053 of music21's own tests, timed on every side100s on music21, 89s on music21-rs, 90s 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
findTransformedHistorical (music21.serial.TwelveToneRow)94 ms1 ms1 ms84.44×84.70×
testOctaveRepeatingScaleClosesOnItsTonicSpelling (music21.scale.test_scale_main.Test.testOctaveRepeatingScaleClosesOnItsTonicSpelling)124 ms2 ms2 ms62.01×60.78×
isTranspositionallySymmetrical (music21.chord.Chord)108 ms3 ms3 ms39.84×40.10×
getZRelation (music21.chord.Chord)56 ms2 ms2 ms28.78×28.55×
fromIntervalVector (music21.chord)60 ms2 ms2 ms28.23×28.80×
findHistorical (music21.serial.TwelveToneRow)31 ms1 ms1 ms27.48×27.27×
testAugmented (music21.roman.Test.testAugmented)97 ms4 ms5 ms21.89×20.82×
fromForteClass (music21.chord)39 ms2 ms2 ms19.63×23.45×
simplifyMultipleEnharmonics (music21.pitch)38 ms2 ms2 ms19.40×19.83×
testSetFigureReparsesSecondaryAndAugmentedSixth (music21.roman.Test.testSetFigureReparsesSecondaryAndAugmentedSixth)44 ms2 ms3 ms17.76×16.82×
TranspositionChecker (music21.analysis.transposition)39 ms2 ms2 ms17.57×17.11×
testPreferSecondaryDominantsSkipsDiatonicChords (music21.roman.Test.testPreferSecondaryDominantsSkipsDiatonicChords)32 ms2 ms2 ms17.30×17.32×
furthest behind
testPartitionOptionsAddUpToMeter (music21.meter.tests.Test.testPartitionOptionsAddUpToMeter)1 ms7 ms6 ms0.18×0.18×
tupleEqualityWithoutReference (music21.alpha.analysis.aligner.StreamAligner)2 ms7 ms7 ms0.26×0.25×
pedalObjectToXml (music21.musicxml.m21ToXml.MeasureExporter)2 ms7 ms7 ms0.27×0.26×
testCompressedSizeLimit (music21.noteworthy.binaryTranslate.Test.testCompressedSizeLimit)4 ms14 ms14 ms0.29×0.28×
testTimeSignature (music21.midi.tests.Test.testTimeSignature)5 ms17 ms17 ms0.29×0.28×
SaxophoneFractionFeature (music21.features.jSymbolic)4 ms14 ms14 ms0.30×0.29×
test_example09_4b (music21.braille.test.Test.test_example09_4b)4 ms13 ms13 ms0.32×0.32×
unfreeze (music21.duration.FrozenDuration)2 ms4 ms4 ms0.36×0.36×
testARFFNumericClassValues (music21.features.outputFormats.Test.testARFFNumericClassValues)15 ms39 ms39 ms0.40×0.39×
testHaveAccidentalsBeenMadeB (music21.stream.tests.Test.testHaveAccidentalsBeenMadeB)8 ms18 ms13 ms0.42×0.61×
testCoreUnit2 (music21.mei.test_base.Test.testCoreUnit2)5 ms12 ms12 ms0.42×0.42×
testChordifyA (music21.stream.tests.Test.testChordifyA)5 ms11 ms5 ms0.43×0.94×

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 4053 tests, side by side →

What each costs to install

music21
88.8 MBinstalled package, corpus and all
music21-rs
8.8 MBthe source cargo publishes
music21_rs wheel
9.3 MBwhat pip installs

Against music21's own tests

17402 of 17416 examples and 1096 of 1096 unit tests, across 96 modules, 3 with no harness yet

ModuleDocstringsExamplesUnit tests
music21.stream.base
144 of 144
2278 of 2278
274 of 274
music21.chord
108 of 108
990 of 990
30 of 30
music21.pitch
84 of 84
934 of 934
39 of 39
music21.interval
107 of 107
771 of 771
15 of 15
music21.duration
56 of 56
607 of 607
17 of 17
music21.roman
36 of 36
567 of 567
36 of 36
music21.search.serial
23 of 23
564 of 564
none
music21.voiceLeading
61 of 61
515 of 515
2 of 2
music21.features.jSymbolic
80 of 80
433 of 433
20 of 20
music21.spanner
39 of 39
419 of 419
30 of 30
music21.meter.core
56 of 56
411 of 411
none
music21.meter.base
34 of 34
395 of 395
38 of 38
music21.scale
69 of 69
378 of 378
68 of 68
music21.metadata
54 of 54
370 of 370
9 of 9
music21.variant
25 of 25
370 of 370
7 of 7
music21.harmony
26 of 26
364 of 364
28 of 28
music21.expressions
40 of 40
350 of 350
12 of 12
music21.note
33 of 33
343 of 343
14 of 14
music21.alpha.analysis.aligner
13 of 13
322 of 322
10 of 10
music21.stream.makeNotation
11 of 11
255 of 255
17 of 17
music21.key
18 of 18
245 of 245
7 of 7
music21.braille.segment
19 of 19
219 of 219
11 of 11
music21.repeat
26 of 26
215 of 215
44 of 44
music21.figuredBass.possibility
16 of 16
211 of 211
none
music21.braille.basic
25 of 25
199 of 199
3 of 3
music21.tempo
27 of 27
196 of 196
17 of 17
music21.search.base
22 of 22
185 of 185
2 of 2
music21.instrument
23 of 23
181 of 181
13 of 13
music21.metadata.primitives
31 of 31
176 of 176
9 of 9
music21.tree.verticality
14 of 14
173 of 173
1 of 1
music21.figuredBass.resolution
13 of 13
172 of 172
none
music21.omr.correctors
21 of 21
164 of 164
none
music21.layout
21 of 21
158 of 158
2 of 2
music21.clef
29 of 29
151 of 151
7 of 7
music21.serial
22 of 22
149 of 149
6 of 6
music21.braille.text
14 of 14
135 of 135
3 of 3
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.tree.spans
14 of 14
116 of 116
1 of 1
music21.beam
13 of 13
112 of 112
2 of 2
music21.audioSearch
15 of 15
107 of 107
1 of 1
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
2 of 2
music21.alpha.analysis.fixer
1 of 1
91 of 91
4 of 4
music21.romanText.clercqTemperley
14 of 14
90 of 90
1 of 1
music21.alpha.analysis.hasher
10 of 10
86 of 86
8 of 8
music21.tree.timespanTree
12 of 12
85 of 85
4 of 4
music21.features.base
16 of 16
82 of 82
10 of 10
music21.figuredBass.realizer
8 of 8
80 of 80
3 of 3
music21.text
10 of 10
80 of 80
3 of 3
music21.style
16 of 16
76 of 76
none
music21.romanText.tsvConverter
13 of 13
75 of 75
8 of 8
music21.features.native
19 of 19
74 of 74
5 of 5
music21.figuredBass.examples
11 of 11
71 of 71
none
music21.chord.tables
10 of 10
65 of 65
4 of 4
music21.analysis.reduceChordsChordReducer.collapseArpeggios fails on purpose: refused by design: it walks music21's mutable timespan tree while editing itChordReducer.keepHeaviestSlices fails on purpose: refused by design: its slices hold music21's Verticality objects from the mutable timespan treeChordReducer.measureSlices fails on purpose: refused by design: it answers music21's Verticality objects from the mutable timespan treeChordReducer.sliceWeights fails on purpose: refused by design: its slices hold music21's Verticality objects from the mutable timespan tree
6 of 11
48 of 62
12 of 12
music21.scale.scala
7 of 7
55 of 55
5 of 5
music21.tablature
8 of 8
55 of 55
4 of 4
music21.dynamics
6 of 6
49 of 49
6 of 6
music21.volume
9 of 9
46 of 46
9 of 9
music21.bar
7 of 7
43 of 43
3 of 3
music21.analysis.windowed
3 of 3
35 of 35
6 of 6
music21.midi.percussion
3 of 3
31 of 31
69 of 69
music21.braille.translate
4 of 4
30 of 30
3 of 3
music21.analysis.transposition
7 of 7
28 of 28
7 of 7
music21.tree.fromStream
3 of 3
28 of 28
3 of 3
music21.omr.evaluators
5 of 5
27 of 27
none
music21.figuredBass.realizerScale
4 of 4
26 of 26
none
music21.search.segment
4 of 4
25 of 25
none
music21.figuredBass.harmony
4 of 4
24 of 24
none
music21.braille.noteGrouping
3 of 3
23 of 23
2 of 2
music21.analysis.harmonicFunction
2 of 2
22 of 22
4 of 4
music21.percussion
2 of 2
18 of 18
none
music21.search.lyrics
3 of 3
17 of 17
3 of 3
music21.analysis.floatingKey
2 of 2
14 of 14
1 of 1
music21.analysis.patel
2 of 2
14 of 14
none
music21.analysis.metrical
2 of 2
13 of 13
none
music21.tie
2 of 2
13 of 13
1 of 1
music21.humdrum.harmParser
1 of 1
11 of 11
43 of 43
music21.analysis.correlate
1 of 1
8 of 8
2 of 2
music21.languageExcerpts.naturalLanguageObjects
3 of 3
7 of 7
3 of 3
music21.analysis.pitchAnalysis
1 of 1
7 of 7
none
music21.braille.lookup
2 of 2
6 of 6
1 of 1
music21.analysis.enharmonics
1 of 1
6 of 6
4 of 4
music21.analysis.segmentByRests
2 of 2
6 of 6
2 of 2
music21.figuredBass.rules
1 of 1
5 of 5
none
music21.braille.examples
1 of 1
4 of 4
3 of 3
music21.analysis.elements
1 of 1
4 of 4
none
music21.analysis.reduction
1 of 1
3 of 3
21 of 21
music21.tree.toStream
1 of 1
2 of 2
none
music21.tree.analysisno harness yet none none none
music21.alpha.analysis.ornamentRecognizerno harness yet none none
3 of 3
music21.alpha.analysis.searchno harness yet none none
2 of 2
every module
1862 of 1867
17402 of 17416
1096 of 1096

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

1745 members:1428 in the crate860 in the wheel

207 classes
▶Chordchord/__init__.py crate 96 of 96
wheel 0 of 96
96 not in wheel

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_stringnot in the wheel
addportedaddnot in the wheel
annotateIntervalsportedannotate_intervalsnot in the wheel
areZRelationsportedare_z_relationsnot in the wheel
bassportedbassnot in the wheel
canBeDominantVportedcan_be_dominant_vnot in the wheel
canBeTonicportedcan_be_tonicnot in the wheel
closedPositionportedclosed_positionnot in the wheel
containsSeventhportedcontains_seventhnot in the wheel
containsTriadportedcontains_triadnot in the wheel
geometricNormalFormportedgeometric_normal_formnot in the wheel
getChordStepportedchord_stepnot in the wheel
getColorportedcolornot in the wheel
getNoteheadportednoteheadnot in the wheel
getNoteheadFillportednotehead_fillnot in the wheel
getStemDirectionportedstem_directionnot in the wheel
getTieportedtienot in the wheel
getVolumeportedvolumenot in the wheel
getZRelationportedz_relationnot in the wheel
hasAnyEnharmonicSpelledPitchesportedhas_any_enharmonic_spelled_pitchesnot in the wheel
hasAnyRepeatedDiatonicNoteportedhas_any_repeated_diatonic_notenot in the wheel
hasRepeatedChordStepportedhas_repeated_chord_stepnot in the wheel
intervalFromChordStepportedinterval_from_chord_stepnot in the wheel
inversionportedinversionnot in the wheel
setInversionportedset_inversionnot in the wheel
inversionNameportedinversion_namenot in the wheel
inversionTextportedinversion_textnot in the wheel
isAugmentedSixthportedis_augmented_sixthnot in the wheel
isAugmentedTriadportedis_augmented_triadnot in the wheel
isConsonantportedis_consonantnot in the wheel
isDiminishedSeventhportedis_diminished_seventhnot in the wheel
isSeventhOfTypeportedis_seventh_of_typenot in the wheel
isDiminishedTriadportedis_diminished_triadnot in the wheel
isDominantSeventhportedis_dominant_seventhnot in the wheel
isFalseDiminishedSeventhportedis_false_diminished_seventhnot in the wheel
isFrenchAugmentedSixthportedis_french_augmented_sixthnot in the wheel
isGermanAugmentedSixthportedis_german_augmented_sixthnot in the wheel
isHalfDiminishedSeventhportedis_half_diminished_seventhnot in the wheel
isIncompleteMajorTriadportedis_incomplete_major_triadnot in the wheel
isIncompleteMinorTriadportedis_incomplete_minor_triadnot in the wheel
isItalianAugmentedSixthportedis_italian_augmented_sixthnot in the wheel
isMajorTriadportedis_major_triadnot in the wheel
isMinorTriadportedis_minor_triadnot in the wheel
isTranspositionallySymmetricalportedis_transpositionally_symmetricalnot in the wheel
isSeventhportedis_seventhnot in the wheel
isNinthportedis_ninthnot in the wheel
isSwissAugmentedSixthportedis_swiss_augmented_sixthnot in the wheel
isTriadportedis_triadnot in the wheel
removeRedundantPitchesportedremove_redundant_pitchesnot in the wheel
removeRedundantPitchClassesportedremove_redundant_pitch_classesnot in the wheel
removeRedundantPitchNamesportedremove_redundant_pitch_namesnot in the wheel
rootportedrootnot in the wheel
semiClosedPositionportedsemi_closed_positionnot in the wheel
semitonesFromChordStepportedsemitones_from_chord_stepnot in the wheel
setColorportedset_colornot in the wheel
setNoteheadportedset_noteheadnot in the wheel
setNoteheadFillportedset_notehead_fillnot in the wheel
setStemDirectionportedset_stem_directionnot in the wheel
setTieportedset_tienot in the wheel
setVolumeportedset_volumenot in the wheel
simplifyEnharmonicsportedsimplify_enharmonicsnot in the wheel
sortAscendingportedsort_ascendingnot in the wheel
sortChromaticAscendingportedsort_chromatic_ascendingnot in the wheel
sortDiatonicAscendingportedsort_diatonic_ascendingnot in the wheel
sortFrequencyAscendingportedsort_frequency_ascendingnot in the wheel
transposeportedtransposenot in the wheel
chordTablesAddressportedchord_tables_address_entrynot in the wheel
commonNameportedcommon_namenot in the wheel
durationporteddurationnot in the wheel
fifthportedfifthnot in the wheel
forteClassportedforte_classnot in the wheel
forteClassNumberportedforte_class_numbernot in the wheel
forteClassTnportedforte_class_tnnot in the wheel
forteClassTnIportedforte_class_tninot in the wheel
fullNameportedfull_namenot in the wheel
hasZRelationportedhas_z_relationnot in the wheel
intervalVectorportedinterval_class_vectornot in the wheel
intervalVectorStringportedinterval_vector_stringnot in the wheel
isPrimeFormInversionportedis_prime_form_inversionnot in the wheel
multisetCardinalityportedmultiset_cardinalitynot in the wheel
notesportednotesnot in the wheel
normalOrderportednormal_ordernot in the wheel
normalOrderStringportednormal_order_stringnot in the wheel
orderedPitchClassesportedpitch_classesnot in the wheel
orderedPitchClassesStringportedordered_pitch_classes_stringnot in the wheel
pitchClassCardinalityportedpitch_class_cardinalitynot in the wheel
pitchClassesportednote_pitch_classesnot in the wheel
pitchNamesportedpitch_namesnot in the wheel
pitchedCommonNameportedpitched_common_namenot in the wheel
pitchesportedpitchesnot in the wheel
primeFormportedprime_formnot in the wheel
primeFormStringportedprime_form_stringnot in the wheel
qualityportedqualitynot in the wheel
scaleDegreesportedscale_degreesnot in the wheel
seventhportedseventhnot in the wheel
thirdportedthirdnot in 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 0 of 29
29 not in wheel
music21Cratemusic21-rsWheel
genericportedgenericnot in the wheel
nameportedshort_namenot in the wheel
niceNameportednamenot in the wheel
simpleNameportedsimple_namenot in the wheel
simpleNiceNameportedsimple_nice_namenot in the wheel
semiSimpleNameportedsemi_simple_namenot in the wheel
semiSimpleNiceNameportedsemi_simple_nice_namenot in the wheel
directedNameporteddirected_namenot in the wheel
directedNiceNameporteddirected_nice_namenot in the wheel
directedSimpleNameporteddirected_simple_namenot in the wheel
directedSimpleNiceNameporteddirected_simple_nice_namenot in the wheel
semitonesportedsemitonesnot in the wheel
directionporteddirectionnot in the wheel
specifierportedspecifiernot in the wheel
specificNameportedspecific_namenot in the wheel
isDiatonicStepportedis_diatonic_stepnot in the wheel
isChromaticStepportedis_chromatic_stepnot in the wheel
isStepportedis_stepnot in the wheel
isSkipportedis_skipnot in the wheel
isConsonantportedis_consonantnot in the wheel
complementportedcomplementnot in the wheel
intervalClassportedinterval_classnot in the wheel
centsportedcentsnot in the wheel
transposePitchportedtranspose_pitchnot in the wheel
reverseportedreversednot in the wheel
pitchStartportedpitch_startnot in the wheel
pitchEndportedpitch_endnot in the wheel
noteStartportednote_startnot in the wheel
noteEndportednote_endnot in the wheel
▶GenericIntervalinterval.py crate 26 of 26
wheel 0 of 26
26 not in wheel
music21Cratemusic21-rsWheel
valueportedvaluenot in the wheel
directedporteddirectednot in the wheel
undirectedportedundirectednot in the wheel
directionporteddirectionnot in the wheel
isSkipportedis_skipnot in the wheel
isDiatonicStepportedis_diatonic_stepnot in the wheel
isStepportedis_stepnot in the wheel
isUnisonportedis_unisonnot in the wheel
simpleUndirectedportedsimple_undirectednot in the wheel
semiSimpleUndirectedportedsemi_simple_undirectednot in the wheel
undirectedOctavesportedundirected_octavesnot in the wheel
octavesportedoctavesnot in the wheel
simpleDirectedportedsimple_directednot in the wheel
semiSimpleDirectedportedsemi_simple_directednot in the wheel
perfectableportedis_perfectablenot in the wheel
niceNameportednice_namenot in the wheel
simpleNiceNameportedsimple_nice_namenot in the wheel
semiSimpleNiceNameportedsemi_simple_nice_namenot in the wheel
staffDistanceportedstaff_distancenot in the wheel
mod7inversionportedmod7_inversionnot in the wheel
mod7portedmod7not in the wheel
complementportedcomplementnot in the wheel
reverseportedreversenot in the wheel
transposePitchportedtranspose_pitchnot in the wheel
transposePitchKeyAwareportedtranspose_pitch_key_awarenot in the wheel
getDiatonicportedget_diatonicnot in the wheel
▶DiatonicIntervalinterval.py crate 25 of 25
wheel 0 of 25
25 not in wheel
music21Cratemusic21-rsWheel
nameportednamenot in the wheel
niceNameportednice_namenot in the wheel
specificNameportedspecific_namenot in the wheel
simpleNameportedsimple_namenot in the wheel
simpleNiceNameportedsimple_nice_namenot in the wheel
semiSimpleNameportedsemi_simple_namenot in the wheel
semiSimpleNiceNameportedsemi_simple_nice_namenot in the wheel
directionporteddirectionnot in the wheel
directedNameporteddirected_namenot in the wheel
directedNiceNameporteddirected_nice_namenot in the wheel
directedSimpleNameporteddirected_simple_namenot in the wheel
directedSimpleNiceNameporteddirected_simple_nice_namenot in the wheel
directedSemiSimpleNameporteddirected_semi_simple_namenot in the wheel
directedSemiSimpleNiceNameporteddirected_semi_simple_nice_namenot in the wheel
isStepportedis_stepnot in the wheel
isDiatonicStepportedis_diatonic_stepnot in the wheel
isSkipportedis_skipnot in the wheel
perfectableportedis_perfectablenot in the wheel
mod7inversionportedmod7_inversionnot in the wheel
mod7portedmod7not in the wheel
reverseportedreversenot in the wheel
getChromaticportedget_chromaticnot in the wheel
transposePitchportedtranspose_pitchnot in the wheel
specifierAbbreviationportedspecifier_abbreviationnot in the wheel
centsportedcentsnot in the wheel
▶ChromaticIntervalinterval.py crate 13 of 13
wheel 0 of 13
13 not in wheel
music21Cratemusic21-rsWheel
centsportedcentsnot in the wheel
directedporteddirectednot in the wheel
undirectedportedundirectednot in the wheel
directionporteddirectionnot in the wheel
mod12portedmod12not in the wheel
simpleUndirectedportedsimple_undirectednot in the wheel
simpleDirectedportedsimple_directednot in the wheel
intervalClassportedinterval_classnot in the wheel
isChromaticStepportedis_chromatic_stepnot in the wheel
isStepportedis_stepnot in the wheel
reverseportedreversenot in the wheel
getDiatonicportedget_diatonicnot in the wheel
transposePitchportedtranspose_pitchnot in 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 0 of 7
7 not in wheel
music21Cratemusic21-rsWheel
asKeyportedas_keynot in the wheel
alteredPitchesportedaltered_pitchesnot in the wheel
accidentalByStepportedaccidental_by_stepnot in the wheel
transposeportedtransposenot in the wheel
transposePitchFromCportedtranspose_pitch_from_cnot in the wheel
getScaleportedscalenot in the wheel
sharpsportedsharpsnot in the wheel
▶Keykey.py crate 6 of 6
wheel 0 of 6
6 not in wheel

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

music21Cratemusic21-rsWheel
relativeportedrelativenot in the wheel
parallelportedparallelnot in the wheel
tonicPitchNameWithCaseportedtonic_pitch_name_with_casenot in the wheel
deriveByDegreeportedderive_by_degreenot in the wheel
tonalCertaintyportedtonal_certaintynot in the wheel
transposeportedtransposenot in the wheel
▶ConcreteScalescale/__init__.py crate 23 of 27
wheel 0 of 27
4 to port27 not in wheel
music21Cratemusic21-rsWheel
isConcretemissingevery Scale here has a tonic, so the question has one answer; the wheel answers it for a scale built without onenot in 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 thosenot in the wheel
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
nameportedmusic21_namenot in the wheel
getTonicportedtonicnot in the wheel
getDegreeMaxUniqueporteddegree_countnot in the wheel
transposeportedtransposenot in the wheel
tuneportedtunenot in the wheel
romanNumeralportedroman_numeralnot in the wheel
getPitchesportedpitchesnot in the wheel
getChordportedchordnot in the wheel
pitchFromDegreeportedpitch_at_degreenot in the wheel
pitchesFromScaleDegreesportedpitches_from_scale_degreesnot in the wheel
intervalBetweenDegreesportedinterval_between_degreesnot in the wheel
getScaleDegreeFromPitchporteddegree_ofnot in the wheel
getScaleDegreeAndAccidentalFromPitchporteddegree_and_accidental_ofnot in the wheel
solfegportedsolfegnot in the wheel
nextPitchportednext_pitch_abovenot in the wheel
isNextportedis_nextnot in the wheel
matchportedmatch_pitchesnot in the wheel
findMissingportedfind_missingnot in the wheel
deriveRankedportedderive_rankednot in the wheel
deriveportedderivenot in the wheel
deriveAllportedderive_allnot in the wheel
deriveByDegreeportedderive_by_degreenot in the wheel
getScalaDataportedscala_datanot in 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 0 of 11
11 not in wheel
music21Cratemusic21-rsWheel
adjustMinorVIandVIIByQualityportedadjust_minor_vi_and_vii_by_qualitynot in the wheel
transposeportedtransposenot in the wheel
romanNumeralportedroman_numeralnot in the wheel
figureportedfigurenot in the wheel
figureAndKeyportedfigure_and_keynot in the wheel
keyportedkeynot in the wheel
scaleDegreeWithAlterationportedscale_degree_with_alterationnot in the wheel
bassScaleDegreeFromNotationportedbass_scale_degree_from_notationnot in the wheel
functionalityScoreportedfunctionality_scorenot in the wheel
isNeapolitanportedis_neapolitannot in the wheel
isMixtureportedis_mixturenot in the wheel
▶TimeSignaturemeter/base.py crate 31 of 33
wheel 0 of 33
2 to port33 not in wheel

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 insteadnot in the wheel
loadmissingrebuilding a meter in place; a new one is built insteadnot in the wheel
ratioStringportedratio_stringnot in the wheel
ratioEqualportedratio_equalnot in the wheel
numeratorportednumeratornot in the wheel
denominatorporteddenominatornot in the wheel
barDurationportedbar_durationnot in the wheel
beatLengthToQuarterLengthRatioportedbeat_length_to_quarter_length_rationot in the wheel
quarterLengthToBeatLengthRatioportedquarter_length_to_beat_length_rationot in the wheel
beatCountportedbeat_countnot in the wheel
beatCountNameportedbeat_count_namenot in the wheel
beatDurationportedbeat_durationnot in the wheel
beatDivisionCountportedbeat_division_countnot in the wheel
beatDivisionCountNameportedbeat_division_count_namenot in the wheel
beatDivisionDurationsportedbeat_division_durationsnot in the wheel
beatSubDivisionDurationsportedbeat_sub_division_durationsnot in the wheel
classificationportedclassificationnot in the wheel
summedNumeratorportedsummed_numeratornot in the wheel
getBeamsportedbeams_fornot in the wheel
setDisplayportedset_displaynot in the wheel
getAccentportedaccentnot in the wheel
setAccentWeightportedset_accent_weightnot in the wheel
averageBeatStrengthportedaverage_beat_strengthnot in the wheel
getMeasureOffsetOrMeterModulusOffsetportedoffset_in_barnot in the wheel
getAccentWeightportedaccent_weightnot in the wheel
getBeatportedbeat_at_offsetnot in the wheel
getBeatOffsetsportedbeat_offsetsnot in the wheel
getBeatDurationportedbeat_durationnot in the wheel
getOffsetFromBeatportedoffset_from_beatnot in the wheel
getBeatProgressportedbeat_progressnot in the wheel
getBeatProportionportedbeat_proportionnot in the wheel
getBeatProportionStrportedbeat_proportion_stringnot in the wheel
getBeatDepthportedbeat_depthnot in the wheel
▶MetronomeMarktempo.py crate 10 of 10
wheel 0 of 10
10 not in wheel
music21Cratemusic21-rsWheel
referentportedreferentnot in the wheel
numberSoundingportednumber_soundingnot in the wheel
getQuarterBPMportedquarter_bpmnot in the wheel
setQuarterBPMportedquarter_bpmnot in the wheel
getTextExpressionportedtext_expressionnot in the wheel
getEquivalentByReferentportedequivalent_by_referentnot in the wheel
getMaintainedNumberWithReferentportedmaintained_number_with_referentnot in the wheel
secondsPerQuarterportedseconds_per_quarternot in the wheel
durationToSecondsportedduration_to_secondsnot in the wheel
secondsToDurationportedseconds_to_durationnot in the wheel
▶MetricModulationtempo.py crate 8 of 8
wheel 0 of 8
8 not in wheel

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

music21Cratemusic21-rsWheel
oldMetronomeportedold_metronomenot in the wheel
oldReferentportedold_referentnot in the wheel
newMetronomeportednew_metronomenot in the wheel
newReferentportednew_referentnot in the wheel
numberportednumbernot in the wheel
updateByContextportedupdate_fromnot in the wheel
setEqualityByReferentportedset_equality_by_referentnot in the wheel
setOtherByReferentportedset_other_by_referentnot in the wheel
▶Instrumentinstrument.py crate 2 of 4
wheel 0 of 4
2 to port4 not in wheel

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 doesnot in 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 doesnot in the wheel
bestNameportedbest_namenot in the wheel
autoAssignMidiChannelportedauto_assign_midi_channelnot in the wheel
▶StringInstrumentinstrument.py crate 1 of 1
wheel 0 of 1
1 not in wheel

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

music21Cratemusic21-rsWheel
stringPitchesportedstring_pitchesnot in the wheel
▶MidiPercussionMapMixininstrument.py crate 1 of 1
wheel 0 of 1
1 not in wheel

How an instrument in the General MIDI percussion map is played, and the drum that plays. v11 moved this out of UnpitchedPercussion into a mixin, the map being a synthesizer's layout rather than a family of instruments -- which is how a whistle, a flute, comes to be in it.

music21Cratemusic21-rsWheel
modifierportedmodifiernot in 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 2 of 2

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_keyin the wheel
midiInstrumentToPitchportedpercussion_pitchin 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 0 of 10
10 not in wheel
music21Cratemusic21-rsWheel
pitchClassesportedpitch_classesnot in the wheel
noteNamesportednote_namesnot in the wheel
isTwelveToneRowportedis_twelve_tone_rownot in the wheel
makeTwelveToneRowportedmake_twelve_tone_rownot in the wheel
isSameRowportedis_same_rownot in the wheel
getIntervalsAsStringportedintervals_as_stringnot in the wheel
zeroCenteredTransformationportedzero_centered_transformationnot in the wheel
originalCenteredTransformationportedoriginal_centered_transformationnot in the wheel
findZeroCenteredTransformationsportedfind_zero_centered_transformationsnot in the wheel
findOriginalCenteredTransformationsportedfind_original_centered_transformationsnot in the wheel
▶TwelveToneRowserial.py crate 7 of 7
wheel 0 of 7
7 not in wheel
music21Cratemusic21-rsWheel
matrixportedmatrixnot in the wheel
findHistoricalportedfind_historicalnot in the wheel
findTransformedHistoricalportedfind_transformed_historicalnot in the wheel
isAllIntervalportedis_all_intervalnot in the wheel
getLinkClassificationportedlink_classificationnot in the wheel
isLinkChordportedis_link_chordnot in the wheel
areCombinatorialportedare_combinatorialnot in 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 0 of 30
30 not in wheel
music21Cratemusic21-rsWheel
keyportedkeynot in the wheel
v1n1portedv1n1not in the wheel
v1n2portedv1n2not in the wheel
v2n1portedv2n1not in the wheel
v2n2portedv2n2not in the wheel
motionTypeportedmotion_typenot in the wheel
noMotionportedno_motionnot in the wheel
obliqueMotionportedoblique_motionnot in the wheel
similarMotionportedsimilar_motionnot in the wheel
parallelMotionportedparallel_motionnot in the wheel
contraryMotionportedcontrary_motionnot in the wheel
outwardContraryMotionportedoutward_contrary_motionnot in the wheel
inwardContraryMotionportedinward_contrary_motionnot in the wheel
antiParallelMotionportedanti_parallel_motionnot in the wheel
parallelIntervalportedparallel_intervalnot in the wheel
parallelFifthportedparallel_fifthnot in the wheel
parallelOctaveportedparallel_octavenot in the wheel
parallelUnisonportedparallel_unisonnot in the wheel
parallelUnisonOrOctaveportedparallel_unison_or_octavenot in the wheel
hiddenIntervalportedhidden_intervalnot in the wheel
hiddenFifthportedhidden_fifthnot in the wheel
hiddenOctaveportedhidden_octavenot in the wheel
voiceOverlapportedvoice_overlapnot in the wheel
voiceCrossingportedvoice_crossingnot in the wheel
isProperResolutionportedis_proper_resolutionnot in the wheel
leapNotSetWithStepportedleap_not_set_with_stepnot in the wheel
modalOpeningportedmodal_openingnot in the wheel
opensIncorrectlyportedopens_incorrectlynot in the wheel
clausulaVeraportedclausula_veranot in the wheel
closesIncorrectlyportedcloses_incorrectlynot in 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 0 of 8
8 not in wheel

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
tieportedtienot in the wheel
lyricportedlyricnot in the wheel
addLyricportedadd_lyricnot in the wheel
insertLyricportedinsert_lyricnot in the wheel
fullNameportedfull_namenot in the wheel
pitchesportedpitchesnot in the wheel
augmentOrDiminishportedaugment_or_diminishnot in the wheel
getGraceportedgrace_notenot in the wheel
▶NotRestnote.py crate 8 of 8
wheel 0 of 8
8 not in wheel

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_directionnot in the wheel
noteheadportednoteheadnot in the wheel
noteheadFillportednotehead_fillnot in the wheel
noteheadParenthesisportednotehead_parenthesisnot in the wheel
hasVolumeInformationportedhas_volume_informationnot in the wheel
volumeportedvolumenot in the wheel
storedInstrumentportedstored_instrumentnot in the wheel
getInstrumentportedinstrumentnot in 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 0 of 1
1 not in wheel

A silence of a written length.

music21Cratemusic21-rsWheel
fullNameportedfull_namenot in the wheel
▶ChordBasechord/__init__.py crate 7 of 7
wheel 0 of 7
7 not in wheel

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

music21Cratemusic21-rsWheel
addportedaddnot in the wheel
removeportedremovenot in the wheel
notesportednotesnot in the wheel
tieportedtienot in the wheel
volumeportedvolumenot in the wheel
hasComponentVolumesportedhas_component_volumesnot in the wheel
setVolumesportedset_volumesnot in 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 0 of 8
1 to port8 not in wheel

A pitch and an optional duration.

music21Cratemusic21-rsWheel
pitchChangedmissingobserver callback; there is nonenot in the wheel
nameportedpitch_namenot in the wheel
nameWithOctaveportedpitch_name_with_octavenot in the wheel
stepportedstepnot in the wheel
octaveportedoctavenot in the wheel
pitchesportedpitchesnot in the wheel
transposeportedtransposenot in the wheel
fullNameportedfull_namenot in the wheel
▶ChordSymbolharmony.py crate 3 of 3
wheel 0 of 3
3 not in wheel
music21Cratemusic21-rsWheel
findFigureportedfind_figurenot in the wheel
inversionIsValidportedinversion_is_validnot in the wheel
transposeportedtransposenot in 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 3 of 3

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
combinedChordportedchordin the wheel
tabToM21portedelementin the wheel
populateFromRowportedfrom_rowin the wheel
▶TabChordV2romanText/tsvConverter.py crate 4 of 4
wheel 4 of 4

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
beatportedbeatin the wheel
measureportedmeasurein the wheel
local_keyportedlocal_keyin the wheel
global_keyportedglobal_keyin 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 7 of 7

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_ofin the wheel
handleAddedTonesportedhandle_added_tonesin the wheel
localKeyAsRnportedlocal_key_as_romanin the wheel
isMinorportedis_minorin the wheel
characterSwapsportedcharacter_swapsin the wheel
getLocalKeyportedlocal_keyin the wheel
getSecondaryKeyportedsecondary_keyin the wheel
▶CTSongromanText/clercqTemperley.py crate 7 of 8
wheel 8 of 8
1 to port

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 outin the wheel
parseportedparsein the wheel
titleportedtitlein the wheel
commentsportedcommentsin the wheel
rulesportedrulesin the wheel
homeTimeSigportedhome_time_signaturein the wheel
homeKeyportedhome_keyin the wheel
toPartportedto_partin the wheel
▶CTRuleromanText/clercqTemperley.py crate 7 of 12
wheel 12 of 12
5 to port

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 backin the wheel
expandExpansionContentmissinga step inside the expansion, which the crate drives from the song rather than from the rule keeping the statein the wheel
expandSimpleContentmissinga step inside the expansion, as expandExpansionContentin the wheel
addOptionalTieAndLyricsmissinga step inside the expansion, which ties the chord before as it writes the one afterin the wheel
insertKsTsmissinga step inside the expansion: the crate writes the key and the meter into a measure as it builds itin the wheel
expandportedexpandin the wheel
isSameportedis_samein the wheel
fixupChordAtomportedfixup_chord_atomin the wheel
musicTextportedmusic_textin the wheel
commentportedcommentin the wheel
LHSportedleft_hand_sidein the wheel
sectionNameportedsection_namein 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 3 of 3
1 to port

Module-level helpers.

music21Cratemusic21-rsWheel
getPathsmissingwhere the archive's files sit on disk; the archive here is one bundled table and has no pathsin 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 4 of 5
wheel 5 of 5
1 to port

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

music21Cratemusic21-rsWheel
modifymissingno reason givenin the wheel
weightportedweightin the wheel
numeratorportednumeratorin the wheel
denominatorporteddenominatorin the wheel
depthporteddepthin the wheel
▶MeterNodemeter/core.py crate 7 of 8
wheel 8 of 8
1 to port

What a span and a divided span have in common: their length, comparing ratios, and dividing.

music21Cratemusic21-rsWheel
subdividemissingno reason givenin the wheel
numeratorportednumeratorin the wheel
denominatorporteddenominatorin the wheel
weightportedweightin the wheel
durationportedquarter_lengthin the wheel
ratioEqualportedratio_equalin the wheel
subdivideByCountportedsubdivide_by_countin the wheel
subdivideByListportedsubdivide_by_listin the wheel
▶MeterSequencemeter/core.py crate 27 of 30
wheel 30 of 30
3 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
modifymissingno reason givenin the wheel
loadmissingraises in music21, since a sequence cannot change; a new one is built insteadin the wheel
partitionedmissingone method dispatching on the type of what it is handed; the three partitions it dispatches to are each portedin the wheel
setIndexportedset_indexin the wheel
partitionDisplayportedpartition_displayin the wheel
getPartitionOptionsportedpartition_optionsin the wheel
partitionedByCountportedpartitioned_by_countin the wheel
partitionedByListportedpartitioned_by_listin the wheel
partitionedByOtherMeterSequenceportedpartitioned_by_otherin the wheel
subdividedPartitionsEqualportedsubdivided_partitions_equalin the wheel
subdividedNestedHierarchyportedsubdivided_nested_hierarchyin the wheel
partitionStrportedpartition_stringin the wheel
numeratorportednumeratorin the wheel
denominatorporteddenominatorin the wheel
weightportedweightin the wheel
withWeightportedwith_weightin 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
withLevelWeightportedwith_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 0 of 2
2 not in wheel

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
valueportedvaluenot in the wheel
volumeScalarportedvolume_scalarnot in 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 0 of 3
3 not in wheel

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

music21Cratemusic21-rsWheel
octaveChangeportedoctave_changenot in the wheel
nameportednamenot in the wheel
getStemDirectionForPitchesportedstem_direction_for_pitchesnot in the wheel
▶PitchClefclef.py crate 1 of 1
wheel 0 of 1
1 not in wheel

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

music21Cratemusic21-rsWheel
octaveChangeportedoctave_changenot in 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 0 of 2
2 not in wheel

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
nameportednamenot in the wheel
volumeShiftportedvolume_shiftnot in the wheel
▶Ornamentexpressions.py crate 4 of 5
wheel 0 of 5
1 to port5 not in wheel

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 portednot in the wheel
realizeportedrealizenot in the wheel
resolveOrnamentalPitchesportedornamental_pitchesnot in the wheel
ornamentalPitchesportedornamental_pitchesnot in the wheel
updateAccidentalDisplayportedupdate_accidental_displaynot in the wheel
▶GeneralMordentexpressions.py crate 9 of 9
wheel 0 of 9
9 not in wheel
music21Cratemusic21-rsWheel
nameportednamenot in the wheel
accidentalportedaccidentalnot in the wheel
directionporteddirectionnot in the wheel
getSizeportedsizenot in the wheel
resolveOrnamentalPitchesportedornamental_pitchesnot in the wheel
ornamentalPitchportedornamental_pitchesnot in the wheel
ornamentalPitchesportedornamental_pitchesnot in the wheel
updateAccidentalDisplayportedupdate_accidental_displaynot in the wheel
realizeportedrealizenot in the wheel
▶Trillexpressions.py crate 10 of 10
wheel 0 of 10
10 not in wheel
music21Cratemusic21-rsWheel
nameportednamenot in the wheel
directionporteddirectionnot in the wheel
accidentalportedaccidentalnot in the wheel
splitClientportedsplit_clientnot in the wheel
getSizeportedsizenot in the wheel
resolveOrnamentalPitchesportedornamental_pitchesnot in the wheel
ornamentalPitchportedornamental_pitchesnot in the wheel
ornamentalPitchesportedornamental_pitchesnot in the wheel
updateAccidentalDisplayportedupdate_accidental_displaynot in the wheel
realizeportedrealizenot in the wheel
▶Turnexpressions.py crate 12 of 12
wheel 0 of 12
12 not in wheel
music21Cratemusic21-rsWheel
upperAccidentalportedupper_accidentalnot in the wheel
lowerAccidentalportedlower_accidentalnot in the wheel
delayporteddelaynot in the wheel
isDelayedportedis_delayednot in the wheel
nameportednamenot in the wheel
getSizeportedturn_sizenot in the wheel
resolveOrnamentalPitchesportedornamental_pitchesnot in the wheel
upperOrnamentalPitchportedornamental_pitchesnot in the wheel
lowerOrnamentalPitchportedornamental_pitchesnot in the wheel
ornamentalPitchesportedornamental_pitchesnot in the wheel
updateAccidentalDisplayportedupdate_accidental_displaynot in the wheel
realizeportedrealizenot in the wheel
▶GeneralAppoggiaturaexpressions.py crate 1 of 1
wheel 0 of 1
1 not in wheel
music21Cratemusic21-rsWheel
realizeportedrealizenot in the wheel
▶Tremoloexpressions.py crate 2 of 2
wheel 0 of 2
2 not in wheel
music21Cratemusic21-rsWheel
numberOfMarksportednumber_of_marksnot in the wheel
realizeportedrealizenot in 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
▶expressions.py functionsexpressions.py crate 1 of 2
wheel 2 of 2
1 to port

The two functions beside music21's ornament classes: a note's ornaments played out in turn, each realizing what the one before left of it, which is realize_ornaments. The stream-level realizeOrnaments of the same name is stream/makeNotation.py's and is listed there.

music21Cratemusic21-rsWheel
isUnisonmissingwhether an ornament's interval leaves the note where it sounds, which music21 asks of each of its three interval classes before deciding whether the ornament moves the note: the crate's Interval::is_unison is the generic question -- a unison whatever its quality -- and the sounding one is ChromaticInterval::semitones, so there is nothing to dispatch between herein the wheel
realizeOrnamentsportedrealize_ornamentsin the wheel
▶stream/makeNotation.py functionsstream/makeNotation.py crate 12 of 17
wheel 11 of 17
5 to port6 not in wheel

The notation a score leaves unsaid, worked out: measures, ties, rests, voices, beams, stem directions, tuplet brackets and accidentals, each a function over a stream as music21's is. music21's makeAccidentals and makeAccidentalsInMeasureStream are one function here, make_accidentals: given a part it walks the measures itself, carrying the key in force and the measure before -- all but that measure's ornamental pitches, which is the same thing the step itself leaves out. musicxml_make_notation_parity holds the whole of it to music21 byte for byte on 257 subjects.

music21Cratemusic21-rsWheel
moveNotesToVoicesmissingthe half of makeVoices that moves the notes into a voice, which make_voices does itself: there is no stream here for a caller to hold between the two stepsnot in the wheel
setStemDirectionOneGroupmissingone group of that walknot in the wheel
saveAccidentalDisplayStatusmissinga context manager that puts the display status back after an edit that rewrites it; a caller here keeps its own copy of what it wants back, there being no with to hang it onnot in the wheel
ornamentalPitchesmissingevery ornamental pitch of a whole stream, which music21 gathers again for each measure's context: make_accidentals keeps the ones it decided as it went instead, make_ornamental_accidentals answering them note by note, and expressions::Ornament::ornamental_pitches answers for one ornament given the note's pitch and the keyin the wheel
iterateBeamGroupsmissingthe beam groups a stream's notes make, which set_stem_direction_for_beam_groups walks itself; a caller wanting them reads the beams each note carriesin the wheel
makeAccidentalsInMeasureStreamportedmake_accidentalsnot in the wheel
splitElementsToCompleteTupletsportedsplit_elements_to_complete_tupletsnot in the wheel
consolidateCompletedTupletsportedconsolidate_completed_tupletsnot in the wheel
makeBeamsportedmake_beamsin the wheel
makeMeasuresportedmake_measuresin the wheel
makeRestsportedmake_restsin the wheel
makeTiesportedmake_tiesin the wheel
makeTupletBracketsportedmake_tuplet_bracketsin the wheel
realizeOrnamentsportedrealize_ornamentsin the wheel
getTiePitchSetportedtie_pitch_setin the wheel
makeOrnamentalAccidentalsportedmake_ornamental_accidentalsin the wheel
setStemDirectionForBeamGroupsportedset_stem_direction_for_beam_groupsin the wheel
▶analysis/elements.py functionsanalysis/elements.py crate 1 of 1
wheel 1 of 1

How often each value of some property of a stream's elements comes, counted in the order each value is first met as Python's Counter counts. The property is a function of the element rather than the name of one, and the elements are whatever reading the caller counts over, as music21 takes a stream or a stream iterator.

music21Cratemusic21-rsWheel
attributeCountportedattribute_countin 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 1 of 1

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

music21Cratemusic21-rsWheel
convertHarmToRomanportedconvert_harm_to_romanin the wheel
▶HarmParserhumdrum/harmParser.py crate 1 of 1
wheel 1 of 1

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
parseportedparsein the wheel
▶Barlinebar.py crate 2 of 2
wheel 0 of 2
2 not in wheel

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_typenot in the wheel
musicXMLBarStyleportedmusicxml_bar_stylenot in the wheel
▶Repeatbar.py crate 3 of 3
wheel 0 of 3
3 not in wheel

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_directionnot in the wheel
timesportedrepeat_timesnot in the wheel
getTextExpressionportedrepeat_text_expressionnot in the wheel
▶Streamstream/base.py crate 106 of 131
wheel 0 of 131
25 to port131 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
mergeAttributesmissingwhat clone_empty carries overnot in the wheel
indexmissingas elementOffsetnot in the wheel
removemissingtakes a named object out; retain_leaves and remove_event take out by place or by testnot in the wheel
setElementOffsetmissingmoves one object; an event's offset is fixed once it is in a stream, so an element is moved by taking it out (remove_event) and inserting it againnot in the wheel
elementOffsetmissingasks where one object sits; a crate stream owns values rather than objects, so events gives each with its offsetnot in the wheel
storeAtEndmissingelements music21 keeps at the right barline rather than at an offset; a measure's barlines are its own here (set_right_barline). The wheel stores a barline as the right one and refuses anything elsenot in the wheel
isAtEndmissingasks whether one object is kept at the end; a crate stream owns values rather than objects, and keeps only a measure's barlines there (right_barline). The wheel answers it for the right barlinenot 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
transferOffsetToElementsmissingmoves a stream's own offset onto what it holds, which needs the sites a crate stream does not keepnot in the wheel
sortmissinga crate stream keeps itself in music21's order as it is built: insert and push put each element where music21's sort would, by offset and then class, and from_events keeps the order it is given at one offset, which is where music21's priorities are handed in; there is nothing left to sortnot in the wheel
sortedmissingas sortnot 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
beatmissingwhere one element sits in its bar; placed answers it for every element at once, and beat_and_measure_from_offset for a point. The wheel's Stream.placed(), its own member, hands the crate's answers back with each element, its offset and its measure numbernot 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
iterportediternot in the wheel
firstportedfirstnot in the wheel
lastportedlastnot in the wheel
elementsportedeventsnot in the wheel
clefportedclefnot in the wheel
timeSignatureportedtime_signature_atnot in the wheel
keySignatureportedkey_signature_atnot in the wheel
staffLinesportedstaff_linesnot in the wheel
clearportedclearnot in the wheel
cloneEmptyportedclone_emptynot in the wheel
hasElementOfClassportedhas_element_of_classnot in the wheel
mergeElementsportedmerge_elementsnot in the wheel
popportedremove_eventnot in the wheel
removeByClassportedremove_by_classnot in the wheel
removeByNotOfClassportedremove_by_not_of_classnot in the wheel
insertportedinsertnot in the wheel
insertIntoNoteOrChordportedinsert_into_note_or_chordnot in the wheel
appendportedpushnot in the wheel
insertAndShiftportedinsert_and_shiftnot in the wheel
splitAtDurationsportedsplit_at_durationsnot in the wheel
splitAtQuarterLengthportedsplit_at_quarter_lengthnot in the wheel
analyzeportedanalyzenot in the wheel
getElementsByClassportedelements_of_classnot in the wheel
getElementsNotOfClassportedelements_not_of_classnot in the wheel
getElementByIdportedelement_by_idnot in the wheel
getElementsByOffsetportedelements_in_spannot in the wheel
getElementAtOrBeforeportedelement_at_or_beforenot in the wheel
getElementBeforeOffsetportedelement_before_offsetnot in the wheel
getElementAfterElementportedelement_afternot in the wheel
measuresportedmeasures_betweennot in the wheel
measureportedmeasurenot in the wheel
templateportedtemplatenot in the wheel
measureOffsetMapportedmeasure_offset_mapnot in the wheel
finalBarlineportedfinal_barlinenot in the wheel
voicesportedvoicesnot in the wheel
spannersportedspannersnot in the wheel
atSoundingPitchportedat_sounding_pitchnot in the wheel
toSoundingPitchportedto_sounding_pitchnot in the wheel
toWrittenPitchportedto_written_pitchnot in the wheel
getTimeSignaturesportedtime_signaturesnot in the wheel
getInstrumentsportedinstrumentsnot in the wheel
getInstrumentportedinstrumentnot in the wheel
invertDiatonicportedinvert_diatonicnot in the wheel
shiftElementsportedshift_elementsnot in the wheel
repeatAppendportedrepeat_appendnot in the wheel
repeatInsertportedrepeat_insertnot in the wheel
extractContextportedextract_contextnot in the wheel
chordifyportedchordifynot in the wheel
splitByClassportedsplit_bynot in the wheel
offsetMapportedoffset_mapnot in the wheel
makeMeasuresportedmake_measuresnot in the wheel
makeRestsportedmake_restsnot in the wheel
makeTiesportedmake_tiesnot in the wheel
makeBeamsportedmake_beamsnot in the wheel
makeAccidentalsportedmake_accidentalsnot in the wheel
haveAccidentalsBeenMadeportedaccidentals_madenot in the wheel
makeNotationportedmake_notationnot in the wheel
extendDurationportedextend_durationnot in the wheel
stripTiesportedstrip_tiesnot in the wheel
extendTiesportedextend_tiesnot in the wheel
flattenportedflattennot in the wheel
recurseportedrecursenot in the wheel
highestOffsetportedhighest_offsetnot in the wheel
highestTimeportedhighest_timenot in the wheel
lowestOffsetportedlowest_offsetnot in the wheel
durationporteddurationnot in the wheel
secondsportedsecondsnot in the wheel
metronomeMarkBoundariesportedmetronome_mark_boundariesnot in the wheel
metadataportedmetadatanot in the wheel
beatDurationportedbeat_durationnot in the wheel
beatAndMeasureFromOffsetportedbeat_and_measure_from_offsetnot in the wheel
transposeportedtransposenot in the wheel
scaleOffsetsportedscale_offsetsnot in the wheel
scaleDurationsportedscale_durationsnot in the wheel
augmentOrDiminishportedaugment_or_diminishnot in the wheel
quantizeportedquantizenot in the wheel
expandRepeatsportedexpand_repeatsnot in the wheel
sliceByQuarterLengthsportedslice_by_quarter_lengthsnot in the wheel
sliceByGreatestDivisorportedslice_by_greatest_divisornot in the wheel
sliceAtOffsetsportedslice_at_offsetsnot in the wheel
sliceByBeatportedslice_by_beatnot in the wheel
hasMeasuresportedhas_measuresnot in the wheel
hasVoicesportedhas_voicesnot in the wheel
hasPartLikeStreamsportedhas_part_like_streamsnot in the wheel
isTwelveToneportedis_twelve_tonenot in the wheel
isWellFormedNotationportedis_well_formed_notationnot in the wheel
notesAndRestsportednotes_and_restsnot in the wheel
notesportednotesnot in the wheel
pitchesportedpitchesnot in the wheel
findConsecutiveNotesportedfind_consecutive_notesnot in the wheel
melodicIntervalsportedmelodic_intervalsnot in the wheel
findGapsportedfind_gapsnot in the wheel
isGaplessportedis_gaplessnot in the wheel
getOverlapsportedget_overlapsnot in the wheel
isSequenceportedis_sequencenot in the wheel
simultaneousAttacksportedsimultaneous_attacksnot in the wheel
attachIntervalsBetweenStreamsportedharmonic_intervalsnot in the wheel
playingWhenAttackedportedplaying_when_attackednot in the wheel
allPlayingWhileSoundingportedall_playing_while_soundingnot in the wheel
makeVoicesportedmake_voicesnot in the wheel
voicesToPartsportedvoices_to_partsnot in the wheel
explodeportedexplodenot in the wheel
flattenUnnecessaryVoicesportedflatten_unnecessary_voicesnot in the wheel
lyricsportedlyricsnot in the wheel
activateVariantsportedactivate_variantsnot in the wheel
showVariantAsOssialikePartportedshow_variant_as_ossialike_partnot in the wheel
▶Measurestream/base.py crate 8 of 9
wheel 0 of 9
1 to port9 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_suffixnot in the wheel
makeNotationportedmake_notationnot in the wheel
barDurationProportionportedbar_duration_proportionnot in the wheel
padAsAnacrusisportedpad_as_anacrusisnot in the wheel
barDurationportedbar_durationnot in the wheel
bestTimeSignatureportedbest_time_signaturenot in the wheel
leftBarlineportedleft_barlinenot in the wheel
rightBarlineportedright_barlinenot in the wheel
▶Partstream/base.py crate 3 of 4
wheel 0 of 4
1 to port4 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
partNameportednamenot in the wheel
partAbbreviationportedabbreviationnot in the wheel
makeAccidentalsportedmake_accidentalsnot in the wheel
▶Scorestream/base.py crate 8 of 9
wheel 0 of 9
1 to port9 not in wheel

Every part of a piece together.

music21Cratemusic21-rsWheel
measuremissinga score of each part's measure of one number; measures_between(n, Some(n)) answers it, measure reading only a stream's own measuresnot in the wheel
partsportedpartsnot in the wheel
measuresportedmeasures_betweennot in the wheel
expandRepeatsportedexpand_repeatsnot in the wheel
measureOffsetMapportedmeasure_offset_mapnot in the wheel
sliceByGreatestDivisorportedslice_by_greatest_divisornot in the wheel
partsToVoicesportedparts_to_voicesnot in the wheel
implodeportedimplodenot in the wheel
makeNotationportedmake_notationnot in the wheel
▶Opusstream/base.py crate 5 of 7
wheel 0 of 7
2 to port7 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_numbersnot in the wheel
getScoreByNumberportedscore_by_numbernot in the wheel
getScoreByTitleportedscore_by_titlenot in the wheel
scoresportedscoresnot in the wheel
mergeScoresportedmerge_scoresnot in the wheel
▶percussion.py classespercussion.py crate 1 of 1
wheel 1 of 1

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

music21Cratemusic21-rsWheel
PercussionChordportedPercussionChordin 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 7 of 8
1 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
ChordWithFretBoardportedChordWithFretBoardnot in the wheel
FretNoteportedFretNotein the wheel
FretBoardportedFretBoardin the wheel
FirstFretportedFirstFretin the wheel
GuitarFretBoardportedguitarin the wheel
UkeleleFretBoardportedukulelein the wheel
BassGuitarFretBoardportedbass_guitarin the wheel
MandolinFretBoardportedmandolinin the wheel
▶FretBoardtablature.py crate 3 of 3
wheel 3 of 3
music21Cratemusic21-rsWheel
fretNotesLowestFirstportedfret_notes_lowest_firstin the wheel
getFretNoteByStringportedfret_note_by_stringin the wheel
getPitchesportedpitchesin 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 4 of 4

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_lyricsin the wheel
assembleAllLyricsportedassemble_all_lyricsin the wheel
prependArticleportedprepend_articlein the wheel
postpendArticleportedpostpend_articlein 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 3 of 3
1 to port

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 IO. The wheel answers it from those built inin the wheel
mostLikelyLanguageportedmost_likely_languagein the wheel
mostLikelyLanguageNumericportedmost_likely_language_numericin the wheel
▶Trigramtext.py crate 3 of 6
wheel 4 of 6
3 to port2 not in wheel
music21Cratemusic21-rsWheel
makeWordsmissingno reason givennot in the wheel
likelymissingwhich language a trigram is nearest, which most_likely_language answersnot in the wheel
measuremissingthe step that counts the letter triples, which building one doesin the wheel
lengthportedlengthin the wheel
parseExcerptportedadd_textin the wheel
similarityportedsimilarityin the wheel
▶layout.py classeslayout.py crate 5 of 10
wheel 6 of 10
5 to port4 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
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
Staffmissinga staff of such a scorenot in the wheel
LayoutBasemissingthe class music21 hangs the four layouts off; layout::Layout is the one of them a stream holdsin the wheel
Systemmissinga system of such a scorein the wheel
StaffGroupportedStaffGroupnot in the wheel
ScoreLayoutportedScoreLayoutin the wheel
PageLayoutportedPageLayoutin the wheel
SystemLayoutportedSystemLayoutin the wheel
StaffLayoutportedStaffLayoutin 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 8 of 10
9 to port2 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; without music21 it has its own Style and NoteStyle, which the wheel column counts.

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
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 drawn. The wheel has one, for use without music21in the wheel
NoteStylemissinghow a note is drawn beyond its colour and its size, which the crate does not model. The wheel has one, for use without music21in the wheel
TextStylePlacementmissinga text style that also says which side of the staff it is on, which is display::Drawn herein the wheel
BezierStylemissingthe curve of a slurin the wheel
LineStylemissingthe dashes of a linein the wheel
StreamStylemissinghow a whole stream is drawnin the wheel
BeamStylemissinghow a beam is drawnin the wheel
TextStyleportedTextStylein 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 7 of 10
wheel 7 of 10
3 to port3 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
SpannerBundlemissingthe collection music21 keeps a stream's spanners in; a crate stream holds its ownin the wheel
RepeatBracketportedEndingnot in the wheel
SpannerportedSpannerin the wheel
SlurportedSlurin the wheel
MultiMeasureRestportedMultiMeasureRestin the wheel
OttavaportedOttavain the wheel
LineportedLinein the wheel
GlissandoportedGlissandoin the wheel
▶Spannerspanner.py crate 7 of 14
wheel 0 of 14
7 to port14 not in wheel

The leaves a spanner joins are positions in Stream::leaves, so what it holds is the stream's to hand back, and it is edited by position: an element is joined once, as music21 joins an object once.

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
fillmissingfills in every element between the first and the last, which asks the stream what stands between themnot in the wheel
getFirstmissingthe first element itself; spanned gives its position and the stream hands back what stands therenot in the wheel
getLastmissingthe last element itself, likewisenot in the wheel
getSpannedElementsportedspannednot in the wheel
addSpannedElementsportedadd_spanned_elementsnot in the wheel
insertFirstSpannedElementportedinsert_first_spanned_elementnot in the wheel
hasSpannedElementportedhas_spanned_elementnot in the wheel
replaceSpannedElementportedreplace_spanned_elementnot in the wheel
isFirstportedis_firstnot in the wheel
isLastportedis_lastnot in 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
▶MultiMeasureRestspanner.py crate 1 of 1
wheel 0 of 1
1 not in wheel

Rests of several measures drawn as one; how it is drawn and counted is its MultiRest.

music21Cratemusic21-rsWheel
numRestsportednum_restsnot in the wheel
▶repeat.py classesrepeat.py crate 13 of 16
wheel 11 of 16
3 to port5 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: an analysis that *shortens* a score, where repeats plays one out. The crate writes repeat marks readily enough (src/repeat.rs, and the MusicXML writer writes them) -- what it has none of is the search for a passage worth markingnot in the wheel
RepeatExpressionMarkerportedis_markernot in the wheel
Expanderportedexpand_repeatsnot in the wheel
RepeatExpressionportedRepeatExpressionin the wheel
CodaportedCodain the wheel
SegnoportedSegnoin the wheel
FineportedFinein the wheel
DaCapoportedDaCapoin the wheel
DaCapoAlFineportedDaCapoAlFinein the wheel
DaCapoAlCodaportedDaCapoAlCodain the wheel
AlSegnoportedAlSegnoin the wheel
DalSegnoportedDalSegnoin the wheel
DalSegnoAlFineportedDalSegnoAlFinein the wheel
DalSegnoAlCodaportedDalSegnoAlCodain 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 7 of 7
wheel 0 of 7
7 not in wheel

Playing a score's repeats out, which Stream::expand_repeats does in one and repeat::Expander a step at a time. Its steps take a stream of measures and hand back a new one, leaving the stream they were given as it was.

music21Cratemusic21-rsWheel
processportedexpand_repeatsnot in the wheel
measureMapportedmeasure_mapnot in the wheel
repeatBarsAreCoherentportedrepeat_bars_are_coherentnot in the wheel
findInnermostRepeatIndicesportedfind_innermost_repeat_indicesnot in the wheel
processInnermostRepeatBarsportedprocess_innermost_repeat_barsnot in the wheel
getRepeatExpressionIndexportedrepeat_expression_indexnot in the wheel
isExpandableportedis_expandablenot in the wheel
▶variant.py functionsvariant.py crate 10 of 10
wheel 8 of 10
2 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
getMeasureHashesportedmeasure_hashesnot in the wheel
makeVariantBlocksportedmake_variant_blocksnot in the wheel
mergeVariantsportedmerge_variantsin the wheel
mergeVariantScoresportedmerge_variant_scoresin the wheel
mergeVariantMeasureStreamsportedmerge_variant_measure_streamsin the wheel
mergeVariantsEqualDurationportedmerge_variants_equal_durationin the wheel
mergePartAsOssiaportedmerge_part_as_ossiain the wheel
addVariantportedadd_variantin the wheel
refineVariantportedrefine_variantin the wheel
makeAllVariantsReplacementsportedmake_all_variants_replacementsin 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
▶Datemetadata/primitives.py crate 5 of 8
wheel 8 of 8
3 to port

A date as music21 keeps one: any part may be missing and any part may say how sure it is, which is why music21 wrote a type of its own rather than using Python's datetime. The six parts are read and written by name through one pair of members (value, set) where music21 keeps an attribute and an error attribute for each.

music21Cratemusic21-rsWheel
loadmissingreads a date from a string, a number, a datetime or another date, which from_written, from_parts and take_from each answer for the kind they takein the wheel
loadDatetimemissingreads a date out of one of Python's, which the crate has no type for: a caller hands the parts overin the wheel
datetimemissinganswers one of Python's datetimes, likewisein the wheel
errorToSymbolportedsymbolin the wheel
loadOtherportedtake_fromin the wheel
loadStrportedfrom_writtenin the wheel
hasTimeportedhas_timein the wheel
hasErrorportedhas_certaintyin the wheel
▶DatePrimitivemetadata/primitives.py crate 1 of 2
wheel 2 of 2
1 to port

One or more dates and what they say, which is music21's relevance. Its four subclasses differ only in the relevances they take and in how they are written, so one type carries all four and DateKind says which it is.

music21Cratemusic21-rsWheel
datetimemissinganswers one of Python's datetimes for the first date, which the crate has no type forin the wheel
relevanceportedrelevancein the wheel
▶DateRelativemetadata/primitives.py crate 1 of 1
wheel 1 of 1

A date something happened before or after: DatePrimitive::relative.

music21Cratemusic21-rsWheel
relevanceportedrelevancein the wheel
▶DateBetweenmetadata/primitives.py crate 1 of 1
wheel 1 of 1

A span between two dates: DatePrimitive::between.

music21Cratemusic21-rsWheel
relevanceportedrelevancein the wheel
▶DateSelectionmetadata/primitives.py crate 1 of 1
wheel 1 of 1

A choice among dates: DatePrimitive::selection.

music21Cratemusic21-rsWheel
relevanceportedrelevancein the wheel
▶Textmetadata/primitives.py crate 2 of 2
wheel 2 of 2

One piece of text a score says about itself: what it says, the language it is written in, whether it is a translation, and the scheme it was encoded by.

music21Cratemusic21-rsWheel
languageportedlanguagein the wheel
getNormalizedArticleportednormalized_articlein the wheel
▶Contributormetadata/primitives.py crate 5 of 6
wheel 6 of 6
1 to port

Somebody who had a hand in a work, under one or more names, with the dates of a life where they are known. A role may be given as one of Humdrum's ten abbreviations, which is read as the role it stands for.

music21Cratemusic21-rsWheel
agemissinghow long they lived, which is arithmetic over two dates a caller hasin the wheel
nameportednamein the wheel
namesportednamesin the wheel
roleportedrolein the wheel
abbreviationToRoleportedrole_of_abbreviationin the wheel
roleToAbbreviationportedabbreviation_of_rolein the wheel
▶Metadatametadata/__init__.py crate 34 of 35
wheel 0 of 35
1 to port35 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
allportedallnot in the wheel
addContributorportedadd_contributornot in the wheel
getContributorsByRoleportedcontributors_by_rolenot in the wheel
searchportedsearchnot 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
▶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 18 of 18

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_overin the wheel
rhythmicSearchportedrhythmic_searchin the wheel
noteNameSearchportednote_name_searchin the wheel
noteNameRhythmicSearchportednote_name_rhythmic_searchin the wheel
approximateNoteSearchportedapproximate_note_searchin the wheel
approximateNoteSearchNoRhythmportedapproximate_note_search_no_rhythmin the wheel
approximateNoteSearchOnlyRhythmportedapproximate_note_search_only_rhythmin the wheel
approximateNoteSearchWeightedportedapproximate_note_search_weightedin the wheel
translateStreamToStringportedtranslate_stream_to_stringin the wheel
translateDiatonicStreamToStringportedtranslate_diatonic_stream_to_stringin the wheel
translateIntervalsAndSpeedportedtranslate_intervals_and_speedin the wheel
translateStreamToStringNoRhythmportedtranslate_stream_to_string_no_rhythmin the wheel
translateStreamToStringOnlyRhythmportedtranslate_stream_to_string_only_rhythmin the wheel
translateNoteToByteportedtranslate_note_to_bytein the wheel
translateNoteWithDurationToBytesportedtranslate_note_with_duration_to_bytesin the wheel
translateNoteTieToByteportedtranslate_note_tie_to_bytein the wheel
translateDurationToBytesportedtranslate_duration_to_bytesin the wheel
mostCommonMeasureRhythmsportedmost_common_measure_rhythmsin the wheel
▶StreamSearchersearch/base.py crate 4 of 4
wheel 4 of 4

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

music21Cratemusic21-rsWheel
runportedrunin the wheel
wildcardAlgorithmportedrun_overin the wheel
rhythmAlgorithmportedrhythmic_searchin the wheel
noteNameAlgorithmportednote_name_searchin the wheel
▶LyricSearchersearch/lyrics.py crate 4 of 4
wheel 4 of 4

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

music21Cratemusic21-rsWheel
indexTextportedindex_textin the wheel
indexTuplesportedindexedin the wheel
indexportedindexedin the wheel
searchportedsearchin the wheel
▶IndexedLyricsearch/lyrics.py crate 0 of 1
wheel 1 of 1
1 to port
music21Cratemusic21-rsWheel
modifymissinga named tuple's _replace, which is Python's ownin the wheel
▶search/segment.py functionssearch/segment.py crate 3 of 8
wheel 3 of 8
5 to port5 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_segmentsin the wheel
indexScorePartsportedindex_score_partsin the wheel
scoreSimilarityportedscore_similarityin 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 3 of 3
music21Cratemusic21-rsWheel
scoreportedscorein the wheel
chordReductionportedchord_reductionin the wheel
reduceportedreducein 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 1 of 1

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

music21Cratemusic21-rsWheel
pitchToDynamicportedpitch_to_dynamicin the wheel
▶ElementTimespantree/spans.py crate 4 of 6
wheel 4 of 6
2 to port2 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_lengthin the wheel
measureNumberportedmeasure_numberin the wheel
getParentageByClassportedparentagein the wheel
partportedpartin the wheel
▶Timespantree/spans.py crate 2 of 6
wheel 2 of 6
4 to port4 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
offsetportedoffsetin the wheel
endTimeportedend_timein the wheel
▶TimespanTreetree/timespanTree.py crate 15 of 17
wheel 13 of 17
2 to port4 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 herein the wheel
elementmissingthe element a timespan holds, which ElementTimespan::element answersin the wheel
removeTimespanListportedremove_timespan_listnot in the wheel
removeTimespanportedremove_timespannot in the wheel
splitAtportedsplit_atnot in the wheel
toPartwiseTimespanTreesportedto_partwise_timespan_treesnot in the wheel
elementEndTimeportedend_timein the wheel
offsetportedlowest_positionin the wheel
findNextPitchedTimespanInSameStreamByClassportednext_in_same_partin the wheel
findPreviousPitchedTimespanInSameStreamByClassportedprevious_in_same_partin the wheel
getVerticalityAtOrBeforeportedverticality_at_or_beforein the wheel
iterateConsonanceBoundedVerticalitiesportedconsonance_bounded_verticalitiesin the wheel
iterateVerticalitiesportedverticalitiesin the wheel
iterateVerticalitiesNwiseportedverticalities_nwisein the wheel
unwrapVerticalitiesportedunwrapin the wheel
allPartsportedall_partsin the wheel
maximumOverlapportedmaximum_overlapin the wheel
▶Verticalitytree/verticality.py crate 13 of 14
wheel 13 of 14
1 to port1 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_timespanin the wheel
toChordportedto_chordin the wheel
measureNumberportedmeasure_numberin the wheel
nextStartOffsetportednext_start_offsetin the wheel
nextVerticalityportednextin the wheel
pitchSetportedpitch_setin the wheel
pitchClassSetportedpitch_class_setin the wheel
previousVerticalityportedpreviousin the wheel
startAndOverlapTimespansportedstart_and_overlap_timespansin the wheel
timeToNextEventportedtime_to_next_eventin the wheel
makeElementportedmake_elementin the wheel
getAllVoiceLeadingQuartetsportedvoice_leading_quartetsin the wheel
getPairedMotionportedpaired_motionin the wheel
▶Horizontalitytree/analysis.py crate 3 of 3
wheel 3 of 3

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_tonein the wheel
hasNeighborToneportedhas_neighbor_tonein the wheel
hasNoMotionportedhas_no_motionin the wheel
▶tree/fromStream.py functionstree/fromStream.py crate 2 of 4
wheel 1 of 4
2 to port3 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_timespansin 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 5 of 5

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_listin the wheel
extractorsByIdportedextractors_by_idin the wheel
extractorByIdportedextractor_by_idin the wheel
vectorByIdportedvector_by_idin the wheel
getIndexportedindex_ofin 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 7 of 7
4 to port

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 argumentin the wheel
fillFeatureAttributesmissingcopies the extractor's own id and name onto the feature it is filling inin the wheel
prepareFeaturemissingmakes the blank feature and fills its attributes in, which blank answersin the wheel
processmissingthe reading itself, which is the row's own function and runs in extractin the wheel
getAttributeLabelsportedattribute_labelsin the wheel
extractportedextractin the wheel
getBlankFeatureportedblankin 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 10 of 12
wheel 12 of 12
2 to port

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

music21Cratemusic21-rsWheel
addMultipleDatamissingadds several subjects at once, which is add_data in a loopin the wheel
writemissingwrites the table to a file, which the library does not do: to_text is the text to writein the wheel
getClassLabelportedclass_labelin the wheel
addFeatureExtractorsportedadd_extractorsin the wheel
getAttributeLabelsportedattribute_labelsin the wheel
getDiscreteLabelsporteddiscrete_labelsin the wheel
getClassPositionLabelsportedclass_position_labelsin the wheel
addDataportedadd_datain the wheel
processportedprocessin the wheel
getFeaturesAsListportedfeatures_as_listin the wheel
getUniqueClassValuesportedunique_class_valuesin the wheel
getStringportedto_textin the wheel
▶braille/basic.py functionsbraille/basic.py crate 27 of 27
wheel 24 of 27
3 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
handlePitchWithAccidentalportednote_to_braillenot in the wheel
handleArticulationsportednote_to_braillenot in the wheel
handleExpressionsportednote_to_braillenot in the wheel
barlineToBrailleportedbarline_to_braillein the wheel
chordToBrailleportedchord_to_braillein the wheel
pitchToOctaveportedpitch_to_octavein the wheel
clefToBrailleportedclef_to_braillein the wheel
dynamicToBrailleporteddynamic_to_braillein the wheel
instrumentToBrailleportedinstrument_to_braillein the wheel
keySigToBrailleportedkey_sig_to_braillein the wheel
metronomeMarkToBrailleportedmetronome_mark_to_braillein the wheel
yieldBrailleArticulationsportednote_to_braillein the wheel
noteToBrailleportednote_to_braillein the wheel
restToBrailleportedrest_to_braillein the wheel
tempoTextToBrailleportedtempo_text_to_braillein the wheel
textExpressionToBrailleportedtext_expression_to_braillein the wheel
timeSigToBrailleportedtime_sig_to_braillein the wheel
showOctaveWithNoteportedshow_octave_with_notein the wheel
transcribeHeadingportedtranscribe_headingin the wheel
transcribeNoteFingeringportedtranscribe_note_fingeringin the wheel
transcribeSignaturesportedtranscribe_signaturesin the wheel
brailleUnicodeToBrailleAsciiportedbraille_unicode_to_braille_asciiin the wheel
brailleAsciiToBrailleUnicodeportedbraille_ascii_to_braille_unicodein the wheel
brailleUnicodeToSymbolsportedbraille_unicode_to_symbolsin the wheel
yieldDotsportedyield_dotsin the wheel
wordToBrailleportedword_to_braillein the wheel
numberToBrailleportednumber_to_braillein the wheel
▶braille/translate.py functionsbraille/translate.py crate 7 of 8
wheel 8 of 8
1 to port

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 eachin the wheel
objectToBrailleportedelement_to_braillein the wheel
streamToBrailleportedstream_to_braillein the wheel
scoreToBrailleportedscore_to_braillein the wheel
metadataToStringportedmetadata_to_stringin the wheel
measureToBrailleportedmeasure_to_braillein the wheel
partToBrailleportedpart_to_braillein the wheel
keyboardPartsToBrailleportedkeyboard_parts_to_braillein the wheel
▶BrailleTextbraille/text.py crate 11 of 11
wheel 11 of 11

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

music21Cratemusic21-rsWheel
showHandportedset_show_handin the wheel
addHeadingportedadd_headingin the wheel
addLongExpressionportedadd_long_expressionin the wheel
addToNewLineportedadd_to_new_linein the wheel
appendOrInsertCurrentportedappend_or_insert_currentin the wheel
addInaccordportedadd_inaccordin the wheel
addMeasureNumberportedadd_measure_numberin the wheel
optionalAddKeyboardSymbolsAndDotsportedoptional_add_keyboard_symbols_and_dotsin the wheel
addSignaturesportedadd_signaturesin the wheel
makeNewLineportedmake_new_linein the wheel
recenterHeadingsportedrecenter_headingsin the wheel
▶BrailleTextLinebraille/text.py crate 5 of 5
wheel 5 of 5
music21Cratemusic21-rsWheel
appendportedappendin the wheel
insertportedinsertin the wheel
canAppendportedcan_appendin the wheel
canInsertportedcan_insertin the wheel
lastHyphenToSpaceportedlast_hyphen_to_spacein the wheel
▶BrailleKeyboardbraille/text.py crate 2 of 2
wheel 2 of 2
music21Cratemusic21-rsWheel
makeNewLinesportedmake_new_linesin the wheel
addNoteGroupingsportedadd_note_groupingsin the wheel
▶braille/lookup.py functionsbraille/lookup.py crate 2 of 3
wheel 3 of 3
1 to port

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 outin the wheel
dotsAddporteddots_addin the wheel
makePitchNameToNotesportedpitch_name_to_notein the wheel
▶braille/segment.py functionsbraille/segment.py crate 6 of 10
wheel 8 of 10
4 to port2 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
splitMeasuremissingcuts a measure in two so that the braille fits, which split_note_grouping does of the groupingnot in the wheel
setAffinityCodemissingwhich kind of segment an element belongs in, which extract_braille_elements says as it readsin the wheel
areGroupingsIdenticalmissingwhether two groupings are the same, which the segment asks of its ownin the wheel
findSegmentsportedfind_segmentsin the wheel
prepareSlurredNotesportedprepare_slurred_notesin the wheel
getRawSegmentsportedget_raw_segmentsin the wheel
extractBrailleElementsportedextract_braille_elementsin the wheel
prepareBeamedNotesportedprepare_beamed_notesin the wheel
splitNoteGroupingportedsplit_note_groupingin the wheel
▶BrailleSegmentbraille/segment.py crate 4 of 17
wheel 17 of 17
13 to port

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 numberin the wheel
extractMeasureNumbermissinga step of the transcriptionin the wheel
extractHeadingmissinga step of the transcription: the key, the meter and the tempo over the first measurein the wheel
extractInaccordGroupingmissinga step of the transcription: the voices written one after anotherin the wheel
extractLongExpressionGroupingmissinga step of the transcriptionin the wheel
showLeadingOctaveFromNoteGroupingmissinga step of the transcription: whether the first note of a grouping shows its octavein the wheel
needsSplitToFitmissinga step of the transcription: whether a grouping must be split to fit the linein the wheel
splitNoteGroupingAndTranscribemissinga step of the transcription, which split_note_grouping does the splitting half ofin the wheel
extractNoteGroupingmissinga step of the transcriptionin the wheel
addRepeatSymbolsmissinga step of the transcription: the sign for a measure repeatedin the wheel
extractSignatureGroupingmissinga step of the transcriptionin the wheel
extractTempoTextGroupingmissinga step of the transcriptionin the wheel
consolidatemissinga step of the transcription: the groupings of one kind joined into onein the wheel
brailleTextportedtranscribein the wheel
transcribeportedtranscribein the wheel
addGroupingAttributesportedadd_grouping_attributesin the wheel
fixArticulationsportedfix_articulationsin the wheel
▶BrailleGrandSegmentbraille/segment.py crate 3 of 5
wheel 5 of 5
2 to port

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

music21Cratemusic21-rsWheel
extractHeadingmissinga step of the transcriptionin the wheel
extractNoteGroupingmissinga step of the transcriptionin the wheel
brailleTextportedtranscribein the wheel
yieldCombinedGroupingKeysportedcombined_keysin the wheel
transcribeportedtranscribein the wheel
▶StreamAligneralpha/analysis/aligner.py crate 13 of 14
wheel 14 of 14
1 to port

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
showChangesmissingprints the changes, and colours the notes of the score to show themin the wheel
getDefaultHasherporteddefault_hasherin the wheel
alignportedalignin the wheel
makeHashedStreamsportedalignin the wheel
setupDistanceMatrixportedsetup_distance_matrixin the wheel
populateDistanceMatrixportedpopulate_distance_matrixin the wheel
getPossibleMovesFromLocationportedmoves_from_locationin the wheel
getOpFromLocationportedop_from_locationin the wheel
insertCostportedinsert_costin the wheel
deleteCostporteddelete_costin the wheel
substitutionCostportedsubstitution_costin the wheel
calculateNumSimilaritiesportednum_similaritiesin the wheel
tupleEqualityWithoutReferenceportedhashes_equal_without_referencein the wheel
calculateChangesListportedchange_placesin the wheel
▶Hasheralpha/analysis/hasher.py crate 2 of 7
wheel 7 of 7
5 to port

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 herein the wheel
hashMeasuresmissingthe measures hashed one at a time, which is hash_stream of eachin the wheel
addHashToFinalHashmissingappends one hash to the list being builtin the wheel
addNoteHashWithReferenceToFinalHashmissingappends a note's hash with the note it came from, likewisein the wheel
addNoteHashToFinalHashmissingappends a note's hash, likewisein the wheel
setupTupleListportedtuple_listin the wheel
hashStreamportedhash_streamin 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 2 of 8
wheel 8 of 8
6 to port

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

music21Cratemusic21-rsWheel
isEnharmonicmissingwhether two notes sound alike, which is Pitch::is_enharmonicin the wheel
hasAccmissingwhether a note carries an accidental, which is Pitch::accidental_is_writtenin the wheel
hasNatAccmissingwhether it carries a natural, likewisein the wheel
hasSharpFlatAccmissingwhether it carries a sharp or a flat, likewisein the wheel
stepEqmissingwhether two notes stand on the same stepin the wheel
stepNotEqmissingwhether they do notin the wheel
fixportedfix_enharmonicsin the wheel
intervalTooBigportedinterval_too_bigin the wheel
▶alpha/analysis/ornamentRecognizer.py functionsalpha/analysis/ornamentRecognizer.py crate 1 of 1
wheel 1 of 1

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

music21Cratemusic21-rsWheel
calculateTrillNoteDurationportedornament_note_quarter_lengthin the wheel
▶TrillRecognizeralpha/analysis/ornamentRecognizer.py crate 1 of 1
wheel 1 of 1

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

music21Cratemusic21-rsWheel
recognizeportedrecognizein the wheel
▶TurnRecognizeralpha/analysis/ornamentRecognizer.py crate 2 of 2
wheel 2 of 2
music21Cratemusic21-rsWheel
isAcceptableIntervalportedis_acceptable_intervalin the wheel
recognizeportedrecognizein the wheel
▶OrnamentRecognizeralpha/analysis/ornamentRecognizer.py crate 2 of 2
wheel 2 of 2
music21Cratemusic21-rsWheel
calculateOrnamentNoteQlportedornament_note_quarter_lengthin the wheel
calculateOrnamentTotalQlportedornament_total_quarter_lengthin the wheel
▶alpha/analysis/search.py functionsalpha/analysis/search.py crate 1 of 1
wheel 1 of 1

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

music21Cratemusic21-rsWheel
findConsecutiveScaleportedfind_consecutive_scalein the wheel
▶ScoreCorrectoromr/correctors.py crate 13 of 14
wheel 0 of 14
1 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
runPriorModelmissingboth models run and the score corrected, which run doesnot 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
getMeasureSliceportedslice_hashesnot in the wheel
getAllIncorrectMeasuresportedall_incorrect_measuresnot in the wheel
verticalProbabilityDistportedvertical_probability_distnot in the wheel
getVerticalProbabilityDistributionSinglePartportedvertical_probability_dist_of_partnot in the wheel
getVerticalProbabilityDistributionSinglePartSingleMeasureportedvertical_probability_dist_of_measurenot 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 7 of 7
1 to port
music21Cratemusic21-rsWheel
getMeasuresmissingthe measures of the part, which the Stream it was read from holdsin the wheel
getIncorrectMeasureIndicesportedfind_incorrect_measuresin the wheel
getSequenceHashesFromMeasureStreamportedhashed_notesin the wheel
horizontalProbabilityDistportedhorizontal_probability_distin the wheel
runHorizontalSearchportedrun_horizontal_searchin the wheel
runHorizontalCorrectionModelportedrun_horizontal_correction_modelin the wheel
getProbabilityDistributionportedprobability_distributionin the wheel
▶MeasureHashomr/correctors.py crate 11 of 15
wheel 15 of 15
4 to port

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, portedin the wheel
getProbabilityOnEqualitymissingthe odds of two measures reading alike, which is the PROBABILITY_ON_EQUALITY constantin the wheel
getProbabilityOnOmissionmissingthe odds of a note left out, PROBABILITY_ON_OMISSIONin the wheel
getProbabilityOnAdditionmissingthe odds of a note put in, PROBABILITY_ON_ADDITIONin the wheel
getHashStringportedmeasure_hashin the wheel
hashNoteportedhash_notein the wheel
hashGraceportedhash_gracein the wheel
hashRestportedhash_restin the wheel
hashQuarterLengthportedhash_quarter_lengthin the wheel
getMeasureDifferenceportedmeasure_differencein the wheel
getOpCodesportedopcodesin the wheel
getProbabilityBasedOnChangesportedprobability_based_on_changesin the wheel
differenceProbabilityForOneOpCodeportedprobability_for_one_opcodein the wheel
getProbabilityOnSubstituteportedprobability_on_substitutein the wheel
getProbabilityFromOneCharSubportedprobability_from_one_char_subin the wheel
▶MeasureSliceomr/correctors.py crate 2 of 2
wheel 2 of 2

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

music21Cratemusic21-rsWheel
getSliceHashesportedslice_hashesin the wheel
runSliceSearchportedslice_searchin 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 13 of 16
2 to port3 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
getFrequenciesFromAudioFileportedfrequencies_from_wavnot in the wheel
histogramportedhistogramin the wheel
autocorrelationFunctionportedautocorrelation_frequencyin the wheel
prepareThresholdsportedprepare_thresholdsin the wheel
interpolationportedinterpolationin the wheel
normalizeInputFrequencyportednormalize_input_frequencyin the wheel
pitchFrequenciesToObjectsportedpitch_frequencies_to_objectsin the wheel
detectPitchFrequenciesporteddetect_pitch_frequenciesin the wheel
smoothFrequenciesportedsmooth_frequenciesin the wheel
joinConsecutiveIdenticalPitchesportedjoin_consecutive_identical_pitchesin the wheel
quantizeDurationportedquantize_durationin the wheel
quarterLengthEstimationportedquarter_length_estimationin the wheel
notesAndDurationsToStreamportednotes_and_durations_to_streamin the wheel
decisionProcessporteddecision_processin the wheel
▶search/serial.py classessearch/serial.py crate 3 of 8
wheel 8 of 8
5 to port

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 makesin the wheel
TransformedSegmentMatchermissingMatching::Transformed, which compares the rows a transposition, inversion, retrograde or retrograde inversion takes one to the otherin the wheel
MultisetSegmentMatchermissingMatching::Multiset, which compares the pitch classes in any orderin the wheel
TransposedMultisetMatchermissingMatching::TransposedMultisetin the wheel
TransposedInvertedMultisetMatchermissingMatching::TransposedInvertedMultisetin the wheel
ContiguousSegmentOfNotesportedContiguousSegmentin the wheel
ContiguousSegmentSearcherportedContiguousSegmentSearcherin the wheel
SegmentMatcherportedSegmentMatcherin 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 1 of 11
10 to port10 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_lengthin the wheel
▶SegmentMatchersearch/serial.py crate 3 of 9
wheel 6 of 9
6 to port3 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 goesin 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 arein the wheel
equalSubsetmissingthe comparison Matching decides, which the crate does inside findin the wheel
repsportedrepetitionsin the wheel
includeChordsportedinclude_chordsin the wheel
findportedfindin the wheel
▶search/serial.py functionssearch/serial.py crate 6 of 6
wheel 6 of 6

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
labelSegmentsportedlabelin the wheel
labelTransposedSegmentsportedlabelin the wheel
labelTransformedSegmentsportedlabelin the wheel
labelMultisetsportedlabelin the wheel
labelTransposedMultisetsportedlabelin the wheel
labelTransposedAndInvertedMultisetsportedlabelin the wheel
▶ChordReduceranalysis/reduceChords.py crate 8 of 22
wheel 19 of 22
14 to port3 not in wheel

A score reduced to the chords it is made of: reduce_chords is music21's run, which reads the notes as spans of time, thins them out step by step, chordifies what is left against the score and reduces each measure to the few chords weighing most in it. The whole is held to music21 by reduce_chords_parity on twelve corpus scores. The steps music21 documents on their own are public here -- a measure's weights and its reduction, and the slices a measure is cut into, their weights, the heaviest kept and what is consonant -- and reduced_measure_places is the latter read as places, which is what lets a facade edit music21's own measure.

music21Cratemusic21-rsWheel
alignHocketsmissinga step music21 offers and its own run never takes: it moves a verticality's spans back where the moment before it sounds a subset of its notes, editing that mutable tree as it walksin the wheel
collapseArpeggiosmissinga step run never takes: it makes one chord of two neighbours standing on the same bass, walking that mutable tree and editing it as it goes -- and the walk is *live*, measured on real music: a span it fuses is fused again later, so Beach's fifth part goes from 312 spans to 268 on 18 fusions. Reading it without the tree would mean porting music21's own walk over one, which is the tree decision in miniature, so the wheel refuses it with that reasonin the wheel
fillBassGapsmissinga step inside the reduction, as removeZeroDurationTimespansin the wheel
fillMeasureGapsmissinga step inside the reduction, as removeZeroDurationTimespansin the wheel
fuseTimespansByPartmissinga step inside the reduction, as removeZeroDurationTimespansin the wheel
qlbsmpConsonancemissingone of ChordWeight's four, which ChordWeight::of weighs a chord by: this is the one a reduction weighs byin the wheel
quarterLengthBeatStrengthmissingone of ChordWeight's four, likewisein the wheel
quarterLengthBeatStrengthMeasurePositionmissingone of ChordWeight's four, likewisein the wheel
quarterLengthOnlymissingone of ChordWeight's four, likewise, and the one computeMeasureChordWeights weighs by when it is handed nonein the wheel
removeNonChordTonesmissinga step run never takes: it joins the two spans of a passing or neighbour tone, editing that tree likewisein the wheel
removeShortTimespansmissinga step inside the reduction, as removeZeroDurationTimespansin the wheel
removeVerticalDissonancesmissinga step inside the reduction, as removeZeroDurationTimespansin the wheel
removeZeroDurationTimespansmissinga step inside the reduction, which reduce_chords drives: the steps work on a list of spans of the crate's own rather than on the mutable timespan tree a caller holds and music21's own step edits as it walksin the wheel
splitByBassmissinga step inside the reduction, as removeZeroDurationTimespansin the wheel
measureSlicesportedmeasure_slicesnot in the wheel
sliceWeightsportedslice_weightsnot in the wheel
keepHeaviestSlicesportedkeep_heaviest_slicesnot in the wheel
runportedreduce_chordsin the wheel
sliceWeightportedslice_weightin the wheel
isConsonantportedis_consonantin the wheel
computeMeasureChordWeightsportedmeasure_chord_weightsin the wheel
reduceMeasureToNChordsportedreduce_measure_to_n_chordsin the wheel
▶braille/noteGrouping.py functionsbraille/noteGrouping.py crate 1 of 1
wheel 1 of 1

A note grouping written out as braille, which is one function here: transcribe_note_grouping walks the grouping's elements as music21's does, and what music21 keeps on a transcriber object between the calls is that function's arguments and the grouping's own fields.

music21Cratemusic21-rsWheel
transcribeNoteGroupingportedtranscribe_note_groupingin the wheel
▶NoteGroupingTranscriberbraille/noteGrouping.py crate 0 of 13
wheel 5 of 13
13 to port8 not in wheel

The object music21 keeps the transcription's state on while it walks a grouping. There is no such object here: transcribe_note_grouping is the whole of it, its settings are read off the grouping as music21 reads them, and each translate* is a branch of the walk.

music21Cratemusic21-rsWheel
translateNotemissinga branch of the walknot in the wheel
translateRestmissinga branch of the walknot in the wheel
translateChordmissinga branch of the walknot in the wheel
translateDynamicmissinga branch of the walknot in the wheel
translateTextExpressionmissinga branch of the walknot in the wheel
translateBarlinemissinga branch of the walknot in the wheel
translateClefmissinga branch of the walknot in the wheel
optionallyAddDotToPreviousmissingpart of the walk, which writes the dot where the element before it needs onenot in the wheel
resetmissingstate between groupings, which a function that takes the grouping has none ofin the wheel
showClefSignsmissingread off the grouping, as music21's transcriber reads it: BrailleElementGrouping::show_clef_signsin the wheel
upperFirstInFingeringmissingread off the grouping, as showClefSigns: upper_first_in_note_fingeringin the wheel
transcribeGroupmissingthe whole of transcribe_note_groupingin the wheel
transcribeOneElementmissingone turn of that walkin the wheel
▶languageExcerpts/naturalLanguageObjects.py functionslanguageExcerpts/naturalLanguageObjects.py crate 2 of 4
wheel 4 of 4
2 to port

A pitch read from what it is called in German, French, Italian or Spanish, which is the other direction of Pitch::german and its three sisters: language_dictionary writes every name the language has, as music21's generateLanguageDictionary does, and from_language_name reads one back, answering a C natural where the language calls no pitch that. music21's own doctests for the module run against it (doctest_naturallanguage), and language_names_parity compares every pair of all four languages with music21's own dictionary.

music21Cratemusic21-rsWheel
toNotemissinga note built on what from_language_name read, which is Note::new(pitch) here and is music21's own one-linerin the wheel
toChordmissinga chord built on what it read, as toNotein the wheel
generateLanguageDictionaryportedlanguage_dictionaryin the wheel
toPitchportedfrom_language_namein the wheel
▶converter/__init__.py functionsconverter/__init__.py crate 0 of 12
wheel 6 of 12
12 to port6 not in wheel

Not the crate's: each reader and writer is a function on the stream it reads or writes. The wheel's converter is Python over them (python/pysrc/music21_rs/converter.py): it tells a format by extension or content as music21 does and hands the file to the crate's reader for it, MuseScore included.

music21Cratemusic21-rsWheel
resetSubConvertersmissingthe subconverter machinery: the readers are the crate's own, chosen by formatnot in the wheel
registerSubConvertermissingthe subconverter machinery, as resetSubConvertersnot in the wheel
unregisterSubConvertermissingthe subconverter machinery, as resetSubConvertersnot in the wheel
freezemissingmusic21's pickle cache, which the wheel does not keep: every parse reads the filenot in the wheel
freezeStrmissingmusic21's pickle cache, as freezenot in the wheel
thawStrmissingmusic21's pickle cache, as freezenot in the wheel
parseFilemissingno reason givenin the wheel
parseDatamissingno reason givenin the wheel
parseURLmissingno reason givenin the wheel
parsemissingno reason givenin the wheel
toDatamissingno reason givenin the wheel
thawmissingmusic21's pickle cache, as freezein the wheel
▶corpus/__init__.py functionscorpus/__init__.py crate 0 of 9
wheel 4 of 9
9 to port5 not in wheel

Not the crate's, which reads no files of its own choosing. The wheel's corpus (python/pysrc/music21_rs/corpus.py) finds a work in the directory MUSIC21_RS_CORPUS names, or in an installed music21's, and reads it with the wheel's converter.

music21Cratemusic21-rsWheel
getLocalPathsmissingthe local corpus, a setting of music21's environmentnot in the wheel
addPathmissingthe local corpus, as getLocalPathsnot in the wheel
cacheMetadatamissingthe corpus's metadata bundles, which the wheel does not keepnot in the wheel
getComposermissinga search of the metadata bundles, as cacheMetadatanot in the wheel
noCorpusmissingmusic21's installation without its corpus, which the wheel answers by MUSIC21_RS_CORPUSnot in the wheel
getCorePathsmissingno reason givenin the wheel
getPathsmissingno reason givenin the wheel
getWorkmissingno reason givenin the wheel
parsemissingno reason givenin 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

1524 public members the map matches to nothing in music21179 fn, 1031 method, 101 struct, 109 enum, 3 trait, 6 type, 95 const, across 114 modules

▶stream
60 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::layout_width 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_layout_width 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
  • StreamEvent::priority method
  • StreamEvent::with_priority method
  • StreamKind enum
  • StreamKind::as_str method
▶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
▶spanner
59 members
  • LineEnd enum
  • LineEnd::as_str method
  • LineEnds struct
  • MultiRest 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::complete method
  • Spanner::ends method
  • Spanner::glissando_details method
  • Spanner::id_local method
  • Spanner::is_empty method
  • Spanner::kind method
  • Spanner::len method
  • Spanner::multi_rest method
  • Spanner::pedal method
  • Spanner::pedal_mark method
  • Spanner::set_arpeggio method
  • Spanner::set_complete method
  • Spanner::set_ends method
  • Spanner::set_glissando_details method
  • Spanner::set_id_local method
  • Spanner::set_line_type method
  • Spanner::set_multi_rest 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::set_stands_in_score method
  • Spanner::set_unplaced_element method
  • Spanner::shift method
  • Spanner::slur method
  • Spanner::spread method
  • Spanner::stands_in_score method
  • Spanner::unplaced_elements method
  • Spanner::wedge method
  • Spanner::with_unplaced method
  • SpannerKind enum
  • SpannerKind::class_name method
  • SpannerKind::is_wedge method
  • SpannerKind::numbering_class 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
48 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
▶instrument
45 members
  • EACH const
  • Instrument::class_name method
  • Instrument::families method
  • Instrument::headless 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::muted method
  • Instrument::of_kind method
  • Instrument::part_id method
  • Instrument::pitched method
  • Instrument::set_abbreviation method
  • Instrument::set_headless 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_muted 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_pitched 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
  • for_percussion_key_or_unmapped fn
  • named_percussion_sounds fn
  • percussion_keys fn
▶metadata::primitives
45 members
  • ALL const
  • Certainty enum
  • Certainty::named method
  • Contributor::birth method
  • Contributor::death method
  • Contributor::set_birth method
  • Contributor::set_death method
  • Contributor::set_name method
  • Contributor::set_names method
  • Contributor::set_role method
  • Contributor::unnamed method
  • Date::certainty method
  • Date::check method
  • Date::day method
  • Date::from_parts method
  • Date::from_written_unchecked method
  • Date::month method
  • Date::set_unchecked method
  • Date::year method
  • DateKind enum
  • DateKind::default_relevance method
  • DatePart enum
  • DatePrimitive::between method
  • DatePrimitive::dates method
  • DatePrimitive::kind method
  • DatePrimitive::of_dates method
  • DatePrimitive::selection method
  • DatePrimitive::set_relevance method
  • DatePrimitive::single method
  • ROLE_ABBREVIATIONS const
  • Relevance enum
  • Relevance::kind method
  • Relevance::named method
  • Text::data method
  • Text::encoded_by method
  • Text::encoding_scheme method
  • Text::in_language method
  • Text::in_role method
  • Text::is_translated method
  • Text::set_encoding_scheme method
  • Text::set_language method
  • Text::set_role method
  • Text::set_translated method
  • Text::translated method
  • strip_certainty fn
▶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
▶tempo
41 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::from_text method
  • MetronomeMark::hidden method
  • MetronomeMark::number_implicit method
  • MetronomeMark::parentheses method
  • MetronomeMark::quarter_length_to_seconds method
  • MetronomeMark::set_hidden 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
▶articulations
40 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
▶chord
40 members
  • Chord::diatonic_ascending_order method
  • Chord::empty method
  • Chord::found_bass method
  • Chord::found_inversion method
  • Chord::found_root method
  • Chord::guitar_fingering method
  • Chord::guitar_fingering_with_tuning method
  • Chord::inversion_name_of method
  • Chord::inversion_text_of method
  • Chord::is_empty method
  • Chord::is_sorted_diatonic_ascending method
  • Chord::iter_pitches method
  • Chord::len method
  • Chord::midi_tick_start 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_inversion method
  • Chord::overridden_root method
  • Chord::polyrhythm_components method
  • Chord::polyrhythm_ratio_string method
  • Chord::quantization_errors 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_id method
  • Chord::set_inversion_override method
  • Chord::set_midi_tick_start method
  • Chord::set_numeral method
  • Chord::set_quantization_errors method
  • Chord::set_root method
  • Chord::simplify_enharmonics_in_place method
  • Chord::with_duration method
  • Chord::with_numeral method
  • IntoNotes trait
▶meter
40 members
  • BeamedNote struct
  • BeatDivision enum
  • BeatDivision::count method
  • MAX_NUMERATOR const
  • TimeSignature::accent_partition_quarter_length method
  • TimeSignature::accent_sequence 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::beat_division method
  • TimeSignature::beat_division_quarter_lengths method
  • TimeSignature::beat_duration_at method
  • TimeSignature::beat_quarter_length method
  • TimeSignature::beat_sequence method
  • TimeSignature::common method
  • TimeSignature::cut method
  • TimeSignature::display_sequence 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_accent_sequence method
  • TimeSignature::set_bar_duration method
  • TimeSignature::set_beam_sequence method
  • TimeSignature::set_beat_count method
  • TimeSignature::set_beat_sequence method
  • TimeSignature::set_display_sequence 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
  • TimeSignature::written_bar_duration method
  • partition_name fn
  • snapped_fraction fn
▶common::numbertools
30 members
  • DENOM_LIMIT const
  • IntOrFloat enum
  • MUSIC_ORDINAL_NAMES const
  • NearestMultiple struct
  • ORDINAL_NAMES const
  • OffsetQL enum
  • OffsetQL::to_f64 method
  • add_float_precision fn
  • approximate_gcd fn
  • contiguous_list fn
  • contiguous_runs fn
  • decimal_to_tuplet fn
  • dot_multiplier fn
  • float_ratio fn
  • float_repr fn
  • is_binary_denominator fn
  • is_close fn
  • limit_denominator fn
  • mixed_numeral fn
  • mixed_numeral_fraction fn
  • nearest_multiple fn
  • num_to_int_or_float fn
  • op_frac fn
  • ordinal_abbreviation fn
  • ordinals_to_numbers fn
  • round_to_half_integer fn
  • str_trim_float fn
  • unit_boundary_proportion fn
  • unit_normalize_proportion fn
  • weighted_index fn
▶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
▶chordsymbol
26 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::transposed_pitches method
  • ChordSymbol::with_duration method
  • ChordSymbol::with_kind method
  • chord_symbol_durations fn
▶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
▶braille::segment
25 members
  • Affinity enum
  • BrailleElement struct
  • BrailleElementGrouping struct
  • BrailleGrandSegment::english method
  • BrailleGrandSegment::transcribe_into method
  • BrailleSegment::english method
  • Hand enum
  • KeyPair type
  • NoteGroupingTranscriber::transcribe_element method
  • NoteGroupingTranscriber::transcribed method
  • SegmentKey struct
  • SegmentOptions struct
  • SegmentTranscriber struct
  • SegmentTranscriber::current method
  • SegmentTranscriber::into_text method
  • SegmentTranscriber::keys_mut method
  • SegmentTranscriber::last_note method
  • SegmentTranscriber::needs_split_for method
  • SegmentTranscriber::set_current method
  • SegmentTranscriber::set_last_note method
  • SegmentTranscriber::set_previous method
  • SegmentTranscriber::show_leading_octave_from method
  • SegmentTranscriber::split_and_transcribe method
  • SegmentTranscriber::text_mut method
  • affinity_code fn
▶note
24 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::midi_tick_start method
  • Note::quantization_errors method
  • Note::set_beams method
  • Note::set_duration method
  • Note::set_hidden method
  • Note::set_id method
  • Note::set_lyric method
  • Note::set_midi_tick_start method
  • Note::set_notehead_parenthesis method
  • Note::set_pitch method
  • Note::set_quantization_errors method
  • Note::set_size method
  • Note::set_stored_instrument method
  • Note::with_duration method
▶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::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
▶metadata
21 members
  • Metadata::all_sorted method
  • Metadata::first_text method
  • Metadata::is_empty method
  • MetadataContent enum
  • MetadataMatch struct
  • MetadataMatch::field method
  • MetadataQuery enum
  • MetadataValue struct
  • MetadataValue::as_contributor method
  • MetadataValue::as_date method
  • MetadataValue::as_text method
  • MetadataValue::of_contributor method
  • MetadataValue::of_date method
  • MetadataValue::of_text method
  • MetadataValue::with_role method
  • OLD_MUSIC21_NAMES const
  • STANDARD_PROPERTIES const
  • ValueKind enum
  • unique_name_from_namespace fn
  • unique_name_of_plural fn
  • value_kind_of fn
▶polyrhythm
21 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::set_tempo method
  • Polyrhythm::tempo method
  • Polyrhythm::tick_duration method
  • Polyrhythm::with_tempo method
  • PolyrhythmAnalysis struct
  • PolyrhythmEvent struct
  • PolyrhythmRatioTone struct
▶tuningsystem::scala
21 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
  • 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
▶environment
18 members
  • LocalCorpus struct
  • PATH_KEYS const
  • Platform enum
  • Platform::as_str method
  • Platform::current method
  • Value enum
  • accepted fn
  • debug_level fn
  • default_root_temp_dir fn
  • defaults fn
  • format_to_key fn
  • is_accessible fn
  • is_path_key fn
  • is_safe_temp_dir fn
  • read_settings fn
  • settings_path fn
  • settings_xml fn
  • xml_reader_type fn
▶scale::scaletype
18 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_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
▶rest
17 members
  • FullMeasure enum
  • 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_beams method
  • Rest::set_duration method
  • Rest::set_full_measure method
  • Rest::set_hidden method
  • Rest::set_id method
  • Rest::set_lyric method
  • Rest::set_size method
  • Rest::set_step_shift method
  • Rest::step_shift 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
▶common::stringtools
15 members
  • ParenthesesMatch struct
  • camel_case_to_hyphen fn
  • camel_case_to_hyphen_checked fn
  • format_str fn
  • get_num_from_str fn
  • hyphen_to_camel_case fn
  • is_python_space fn
  • md5_hex fn
  • normalize_filename fn
  • parentheses_match fn
  • remove_punctuation fn
  • space_camel_case fn
  • str_repr fn
  • strip_accents fn
  • whitespace_equal 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
▶error
14 members
  • Error enum
  • Error::format_error method
  • Error::position method
  • Error::unplaced method
  • FormatError struct
  • FormatError::with_position method
  • FormatErrorKind enum
  • PlacedError struct
  • Position struct
  • Position::at_tick method
  • Position::in_part method
  • Position::track method
  • Position::with_column method
  • Result type
▶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
▶musedata::base40
14 members
  • Base40Error struct
  • Base40Error::message method
  • Direction enum
  • EQUIVALENTS const
  • INTERVALS const
  • actual_interval fn
  • delta_to_interval fn
  • equivalent fn
  • from_pitch fn
  • from_pitch_name fn
  • octave_and_number fn
  • quick_enharmonic_string fn
  • quick_enharmonics fn
  • representation fn
▶omr::correctors
14 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::from_part method
  • SinglePart::incorrect_measures method
  • SinglePart::index_array method
  • SinglePart::part_number method
  • incorrect_measures fn
  • part_hashes fn
  • probability_based_on_changes_between fn
▶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
▶romantext::clercq_temperley
13 members
  • CtLabels struct
  • CtRule struct
  • CtRule::expand_in method
  • CtRule::measure_groups method
  • CtSong struct
  • CtSong::from_lines method
  • CtSong::lines method
  • CtSong::rule method
  • CtSong::to_part_with method
  • GroupKind enum
  • MeasureGroup struct
  • from_clercq_temperley fn
  • from_clercq_temperley_with 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
▶voiceleading
12 members
  • MotionType enum
  • MotionType::as_str method
  • ParallelRequirement enum
  • QuartetOptions struct
  • VoiceLeadingQuartet::from_names method
  • VoiceLeadingQuartet::horizontal_intervals method
  • VoiceLeadingQuartet::set_key method
  • VoiceLeadingQuartet::set_pitches method
  • VoiceLeadingQuartet::vertical_intervals method
  • VoiceLeadingQuartet::with_key method
  • verticality_positions_at fn
  • voice_leading_quartet_positions fn
▶figuredbass::realizer
11 members
  • FiguredBassLine::add_chord method
  • FiguredBassLine::in_key method
  • FiguredBassLine::in_key_and_time method
  • FiguredBassLine::is_empty method
  • FiguredBassLine::len method
  • FiguredBassLine::set_key_signature method
  • FiguredBassLine::set_time_signature method
  • Realization::fallbacks method
  • Realization::keyboard_style_output method
  • Realization::of method
  • Realization::set_keyboard_style_output method
▶key
11 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
  • Key::with_sharps method
  • MODES const
▶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
▶meter::sequence
11 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::partitioned_by_parts method
  • MeterTerminal::sequence method
  • MeterTerminal::subdivided_nested_hierarchy_by method
  • MeterTerminal::with_summed_numerator method
  • OffsetAlign enum
▶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
▶romantext::tsv
11 members
  • Direction enum
  • Spelling struct
  • TabChord struct
  • TabChord::element_as_spelled method
  • TabChord::spelled method
  • Version enum
  • Version::columns method
  • Version::from_number method
  • Version::read_columns method
  • figured_bass_of fn
  • to_tsv_with_extra fn
▶analysis::reduce_chords
10 members
  • ChordWeight enum
  • ChordWeight::named method
  • ChordWeight::of method
  • KeptChord struct
  • ReductionOptions struct
  • SliceWeigher struct
  • SliceWeigher::weigh method
  • WeighedChord struct
  • interval_class_set fn
  • reduced_measure_places fn
▶common::formats
10 members
  • SUB_CONVERTERS const
  • SubConverter struct
  • VALID_AUTO_DOWNLOAD const
  • VALID_SHOW_FORMATS const
  • VALID_WRITE_FORMATS const
  • find_format fn
  • find_format_ext_url fn
  • find_input_extension fn
  • regularize_format fn
  • sub_converter_for_format fn
▶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
▶common::enums
9 members
  • APPEND_SPANNERS const
  • ELEMENT_SEARCH const
  • GATHER_SPANNERS const
  • METER_DIVISION const
  • Member type
  • MemberValue enum
  • OFFSET_SPECIAL const
  • ORNAMENT_DELAY const
  • hex_numbers fn
▶alpha::analysis::aligner
8 members
  • Change struct
  • ChangeOp enum
  • ChangePlace struct
  • StreamAligner::align_hashed method
  • StreamAligner::changes_count method
  • StreamAligner::with_hasher method
  • fill_distance_matrix fn
  • similarity_score fn
▶audiosearch
8 members
  • AUDIO_CHUNK_LENGTH const
  • JoinedNote struct
  • RECORD_SAMPLE_RATE const
  • REST_FREQUENCY const
  • TranscribedNote struct
  • joined_pitches fn
  • monophonic_stream_from_wav fn
  • transcribed_notes fn
▶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
▶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
▶features::language
7 members
  • LANGUAGE_CODES const
  • Trigram::add_words method
  • Trigram::distance method
  • Trigram::from_text method
  • Trigram::from_words method
  • known_trigram fn
  • language_name fn
▶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
▶alpha::analysis::fixer
6 members
  • EnharmonicFix enum
  • OrnamentFixer::fixed method
  • OrnamentFixer::trills method
  • OrnamentFixer::turns method
  • Recognizer enum
  • enharmonic_fix 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
▶braille::basic
5 members
  • NoteContext struct
  • Transcription struct
  • braille_articulations fn
  • chord_symbol_to_braille fn
  • tempo_to_braille fn
▶figuredbass::resolution
5 members
  • AugmentedSixth enum
  • AugmentedSixth::from_number method
  • AugmentedSixth::of method
  • ChordInfo struct
  • ChordInfo::of method
▶figuredbass::scale
5 members
  • ALL const
  • FiguredBassMode enum
  • FiguredBassScale::mode method
  • FiguredBassScale::with_key_signature method
  • FiguredBassScale::with_scale method
▶layout
5 members
  • Layout enum
  • Layout::class_name method
  • StaffType enum
  • StaffType::as_str method
  • Tenths enum
▶musedata::base12_26
5 members
  • BASE12_EQUIVALENTS const
  • BASE12_INTERVALS const
  • BASE26_EQUIVALENTS const
  • BASE26_INTERVALS const
  • named fn
▶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::hasher
4 members
  • HashReference struct
  • HashValue enum
  • Hasher::hash_value method
  • NoteHash struct
▶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
▶braille::text
4 members
  • BrailleText::add_measure_number_value method
  • BrailleText::current_line method
  • BrailleText::render method
  • BrailleTextLine::cells method
▶common
4 members
  • DEBUG_ALL const
  • DEBUG_DEVEL const
  • DEBUG_OFF const
  • DEBUG_USER const
▶figuredbass::possibility
4 members
  • DEFAULT_MAX_PITCH const
  • ItalianSixth struct
  • ItalianSixth::from_chord method
  • ItalianSixth::of method
▶makenotation
4 members
  • MAX_MEASURES const
  • QUANTIZATION_DIVISORS const
  • make_measures_by fn
  • op_frac fn
▶volpiano
4 members
  • Break enum
  • Break::class_name method
  • from_volpiano fn
  • to_volpiano fn
▶common::misc
3 members
  • cleaned_flat_notation fn
  • missing_import_message fn
  • platform_name fn
▶common::objects
3 members
  • Timer struct
  • Timer::elapsed method
  • Timer::stop method
▶common::parallel
3 members
  • cpus fn
  • cpus_for fn
  • update_positions fn
▶common::filetools
2 members
  • MAX_UNCOMPRESSED_BYTES const
  • read_limited fn
▶common::pathtools
2 members
  • clean_path fn
  • last_parent_dir fn
▶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
▶common::classtools
1 member
  • class_to_class_str fn
▶common::decorators
1 member
  • deprecation_message 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.