The crate music21-rs
Full report →
The Rust library: what is ported, how well it is tested, and how fast it is with no Python in the way.
music21-rsThe Rust library: what is ported, how well it is tested, and how fast it is with no Python in the way.
music21_rsThe Python package: what of music21 it answers, how it fares installed over music21, and what the binding costs.
7781 passing, all green
| Suite | Tests | Result | Passed | Failed | Command |
|---|---|---|---|---|---|
| Workspace | passed | 1434 | 0 | cargo test --workspace --all-targets |
|
| Workspace doctests | passed | 323 | 0 | cargo test --workspace --doc |
|
| Python parity and music21's doctests | 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 |
passed | — | — | maturin build --release --manifest-path python/Cargo.toml |
|
| Python wheel tests | 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 |
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.
of music21-rs, across every instrumented suite
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 →
crate 70.2× median, wheel 14.4× median, across 33 cases
| Case | music21 | crate | wheel | crate × | wheel × | binding |
|---|---|---|---|---|---|---|
| construction | ||||||
Pitch('C#4') | 1.5 µs | 137 ns | 2.1 µs | 10.8× | 0.7× | +1.9 µs |
Note('C#4') | 6.8 µs | 163 ns | 999 ns | 41.5× | 6.8× | +836 ns |
Interval('P5') | 14.4 µs | 87 ns | 528 ns | 166.0× | 27.3× | +441 ns |
Chord('C4 E4 G4') | 27.7 µs | 634 ns | 4.2 µs | 43.8× | 6.6× | +3.6 µs |
| chord analysis | ||||||
Chord.commonName5 chords | 860.3 µs | 8.8 µs | 12.9 µs | 97.3× | 66.8× | +4.0 µs |
Chord.root()5 chords | 194.3 µs | — | 13.5 µs | — | 14.4× | — |
Chord.inversion()5 chords | 285.8 µs | 4.1 µs | 9.3 µs | 70.5× | 30.8× | +5.2 µs |
Chord.forteClass5 chords | 409.1 µs | 6.3 µs | 10.8 µs | 65.4× | 38.0× | +4.5 µs |
Chord.primeForm5 chords | 417.5 µs | 7.0 µs | 11.3 µs | 60.1× | 37.1× | +4.3 µs |
Chord.intervalVector5 chords | 415.3 µs | 7.2 µs | 11.2 µs | 57.8× | 37.2× | +4.0 µs |
Chord.isDominantSeventh()5 chords | 391.7 µs | 4.1 µs | 8.5 µs | 95.8× | 46.1× | +4.4 µs |
Chord.orderedPitchClasses5 chords | 185.8 µs | 4.9 µs | 9.0 µs | 38.2× | 20.7× | +4.1 µs |
Chord: forteClass + primeForm + intervalVectorone chord, three questions | 93.1 µs | 2.9 µs | 4.1 µs | 32.0× | 22.5× | +1.2 µs |
| pitch | ||||||
Pitch.transpose('M3') | 41.6 µs | 369 ns | 2.6 µs | 112.9× | 16.0× | +2.2 µs |
Pitch.frequency | 1.4 µs | 269 ns | 2.1 µs | 5.3× | 0.7× | +1.8 µs |
Pitch.getEnharmonic() | 33.4 µs | — | 2.4 µs | — | 14.2× | — |
Interval(p1, p2) | 15.7 µs | 297 ns | 3.8 µs | 53.0× | 4.1× | +3.5 µs |
| serial | ||||||
pcToToneRow(...).matrix() | 4.2 ms | 4.9 µs | 5.3 µs | 846.9× | 784.4× | +393 ns |
ToneRow.zeroCenteredTransformation | 402.5 µs | 528 ns | 950 ns | 763.0× | 423.8× | +422 ns |
| figured bass | ||||||
Segment(G2, '7').allCorrectSinglePossibilities() | 4.4 ms | 52.2 µs | 82.8 µs | 83.8× | 52.8× | +30.6 µs |
Segment(G2, '7') to Segment(C3), a dominant seventh resolving | 17.1 ms | 244.3 µs | 351.0 µs | 70.2× | 48.9× | +106.7 µs |
Segment(C3) to Segment(D3, '4,3'), every pair of voicings | 6.2 ms | 83.6 µs | 152.9 µs | 73.6× | 40.2× | +69.3 µs |
| stream | ||||||
Stream: append 100 noteseach note built and appended | 1.4 ms | — | 304.6 µs | — | 4.4× | — |
Stream: append 2000 noteseach note built and appended | 25.5 ms | — | 6.2 ms | — | 4.1× | — |
Stream: s[i] over 2000 notesone stream, every index | 1.5 ms | — | 276.0 µs | — | 5.4× | — |
Score.recurse().notes2 parts of 100 measures of 4 notes | 3.6 ms | — | 847.4 µs | — | 4.2× | — |
Score.flatten()2 parts of 100 measures of 4 notes, after an edit | 5.4 ms | — | 1.4 ms | — | 4.0× | — |
Part.makeMeasures()200 dotted quarters, a copy cut into measures | 23.4 ms | — | 4.8 ms | — | 4.8× | — |
read bach/bwv69.6.xmlmusic21's parse cache off; counting the notes read | 64.0 ms | — | 10.4 ms | — | 6.1× | — |
read schubert/Lindenbaum.xmlmusic21's parse cache off; counting the notes read | 337.5 ms | — | 28.7 ms | — | 11.8× | — |
write bach/bwv69.6.xmlas read by each side, written without makeNotation | 107.9 ms | — | 22.3 ms | — | 4.8× | — |
| warm object | ||||||
Chord.commonName (cached)music21 memoizes | 125 ns | — | 97 ns | — | 1.3× | — |
Chord.forteClass (cached)music21 memoizes | 2.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.
| Test | music21 | music21-rs | music21-rs-wheel | music21-rs × | music21-rs-wheel × |
|---|---|---|---|---|---|
| furthest ahead | |||||
findTransformedHistorical (music21.serial.TwelveToneRow) | 94 ms | 1 ms | 1 ms | 84.44× | 84.70× |
testOctaveRepeatingScaleClosesOnItsTonicSpelling (music21.scale.test_scale_main.Test.testOctaveRepeatingScaleClosesOnItsTonicSpelling) | 124 ms | 2 ms | 2 ms | 62.01× | 60.78× |
isTranspositionallySymmetrical (music21.chord.Chord) | 108 ms | 3 ms | 3 ms | 39.84× | 40.10× |
getZRelation (music21.chord.Chord) | 56 ms | 2 ms | 2 ms | 28.78× | 28.55× |
fromIntervalVector (music21.chord) | 60 ms | 2 ms | 2 ms | 28.23× | 28.80× |
findHistorical (music21.serial.TwelveToneRow) | 31 ms | 1 ms | 1 ms | 27.48× | 27.27× |
testAugmented (music21.roman.Test.testAugmented) | 97 ms | 4 ms | 5 ms | 21.89× | 20.82× |
fromForteClass (music21.chord) | 39 ms | 2 ms | 2 ms | 19.63× | 23.45× |
simplifyMultipleEnharmonics (music21.pitch) | 38 ms | 2 ms | 2 ms | 19.40× | 19.83× |
testSetFigureReparsesSecondaryAndAugmentedSixth (music21.roman.Test.testSetFigureReparsesSecondaryAndAugmentedSixth) | 44 ms | 2 ms | 3 ms | 17.76× | 16.82× |
TranspositionChecker (music21.analysis.transposition) | 39 ms | 2 ms | 2 ms | 17.57× | 17.11× |
testPreferSecondaryDominantsSkipsDiatonicChords (music21.roman.Test.testPreferSecondaryDominantsSkipsDiatonicChords) | 32 ms | 2 ms | 2 ms | 17.30× | 17.32× |
| furthest behind | |||||
testPartitionOptionsAddUpToMeter (music21.meter.tests.Test.testPartitionOptionsAddUpToMeter) | 1 ms | 7 ms | 6 ms | 0.18× | 0.18× |
tupleEqualityWithoutReference (music21.alpha.analysis.aligner.StreamAligner) | 2 ms | 7 ms | 7 ms | 0.26× | 0.25× |
pedalObjectToXml (music21.musicxml.m21ToXml.MeasureExporter) | 2 ms | 7 ms | 7 ms | 0.27× | 0.26× |
testCompressedSizeLimit (music21.noteworthy.binaryTranslate.Test.testCompressedSizeLimit) | 4 ms | 14 ms | 14 ms | 0.29× | 0.28× |
testTimeSignature (music21.midi.tests.Test.testTimeSignature) | 5 ms | 17 ms | 17 ms | 0.29× | 0.28× |
SaxophoneFractionFeature (music21.features.jSymbolic) | 4 ms | 14 ms | 14 ms | 0.30× | 0.29× |
test_example09_4b (music21.braille.test.Test.test_example09_4b) | 4 ms | 13 ms | 13 ms | 0.32× | 0.32× |
unfreeze (music21.duration.FrozenDuration) | 2 ms | 4 ms | 4 ms | 0.36× | 0.36× |
testARFFNumericClassValues (music21.features.outputFormats.Test.testARFFNumericClassValues) | 15 ms | 39 ms | 39 ms | 0.40× | 0.39× |
testHaveAccidentalsBeenMadeB (music21.stream.tests.Test.testHaveAccidentalsBeenMadeB) | 8 ms | 18 ms | 13 ms | 0.42× | 0.61× |
testCoreUnit2 (music21.mei.test_base.Test.testCoreUnit2) | 5 ms | 12 ms | 12 ms | 0.42× | 0.42× |
testChordifyA (music21.stream.tests.Test.testChordifyA) | 5 ms | 11 ms | 5 ms | 0.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 →
17402 of 17416 examples and 1096 of 1096 unit tests, across 96 modules, 3 with no harness yet
| Module | Docstrings | Examples | Unit 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.
1745 members:1428 in the crate860 in the wheel
chord/__init__.py
crate 96 of 96Chord 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.
| music21 | Crate | music21-rs | Wheel |
|---|---|---|---|
formatVectorString | ported | format_vector_string | not in the wheel |
add | ported | add | not in the wheel |
annotateIntervals | ported | annotate_intervals | not in the wheel |
areZRelations | ported | are_z_relations | not in the wheel |
bass | ported | bass | not in the wheel |
canBeDominantV | ported | can_be_dominant_v | not in the wheel |
canBeTonic | ported | can_be_tonic | not in the wheel |
closedPosition | ported | closed_position | not in the wheel |
containsSeventh | ported | contains_seventh | not in the wheel |
containsTriad | ported | contains_triad | not in the wheel |
geometricNormalForm | ported | geometric_normal_form | not in the wheel |
getChordStep | ported | chord_step | not in the wheel |
getColor | ported | color | not in the wheel |
getNotehead | ported | notehead | not in the wheel |
getNoteheadFill | ported | notehead_fill | not in the wheel |
getStemDirection | ported | stem_direction | not in the wheel |
getTie | ported | tie | not in the wheel |
getVolume | ported | volume | not in the wheel |
getZRelation | ported | z_relation | not in the wheel |
hasAnyEnharmonicSpelledPitches | ported | has_any_enharmonic_spelled_pitches | not in the wheel |
hasAnyRepeatedDiatonicNote | ported | has_any_repeated_diatonic_note | not in the wheel |
hasRepeatedChordStep | ported | has_repeated_chord_step | not in the wheel |
intervalFromChordStep | ported | interval_from_chord_step | not in the wheel |
inversion | ported | inversion | not in the wheel |
setInversion | ported | set_inversion | not in the wheel |
inversionName | ported | inversion_name | not in the wheel |
inversionText | ported | inversion_text | not in the wheel |
isAugmentedSixth | ported | is_augmented_sixth | not in the wheel |
isAugmentedTriad | ported | is_augmented_triad | not in the wheel |
isConsonant | ported | is_consonant | not in the wheel |
isDiminishedSeventh | ported | is_diminished_seventh | not in the wheel |
isSeventhOfType | ported | is_seventh_of_type | not in the wheel |
isDiminishedTriad | ported | is_diminished_triad | not in the wheel |
isDominantSeventh | ported | is_dominant_seventh | not in the wheel |
isFalseDiminishedSeventh | ported | is_false_diminished_seventh | not in the wheel |
isFrenchAugmentedSixth | ported | is_french_augmented_sixth | not in the wheel |
isGermanAugmentedSixth | ported | is_german_augmented_sixth | not in the wheel |
isHalfDiminishedSeventh | ported | is_half_diminished_seventh | not in the wheel |
isIncompleteMajorTriad | ported | is_incomplete_major_triad | not in the wheel |
isIncompleteMinorTriad | ported | is_incomplete_minor_triad | not in the wheel |
isItalianAugmentedSixth | ported | is_italian_augmented_sixth | not in the wheel |
isMajorTriad | ported | is_major_triad | not in the wheel |
isMinorTriad | ported | is_minor_triad | not in the wheel |
isTranspositionallySymmetrical | ported | is_transpositionally_symmetrical | not in the wheel |
isSeventh | ported | is_seventh | not in the wheel |
isNinth | ported | is_ninth | not in the wheel |
isSwissAugmentedSixth | ported | is_swiss_augmented_sixth | not in the wheel |
isTriad | ported | is_triad | not in the wheel |
removeRedundantPitches | ported | remove_redundant_pitches | not in the wheel |
removeRedundantPitchClasses | ported | remove_redundant_pitch_classes | not in the wheel |
removeRedundantPitchNames | ported | remove_redundant_pitch_names | not in the wheel |
root | ported | root | not in the wheel |
semiClosedPosition | ported | semi_closed_position | not in the wheel |
semitonesFromChordStep | ported | semitones_from_chord_step | not in the wheel |
setColor | ported | set_color | not in the wheel |
setNotehead | ported | set_notehead | not in the wheel |
setNoteheadFill | ported | set_notehead_fill | not in the wheel |
setStemDirection | ported | set_stem_direction | not in the wheel |
setTie | ported | set_tie | not in the wheel |
setVolume | ported | set_volume | not in the wheel |
simplifyEnharmonics | ported | simplify_enharmonics | not in the wheel |
sortAscending | ported | sort_ascending | not in the wheel |
sortChromaticAscending | ported | sort_chromatic_ascending | not in the wheel |
sortDiatonicAscending | ported | sort_diatonic_ascending | not in the wheel |
sortFrequencyAscending | ported | sort_frequency_ascending | not in the wheel |
transpose | ported | transpose | not in the wheel |
chordTablesAddress | ported | chord_tables_address_entry | not in the wheel |
commonName | ported | common_name | not in the wheel |
duration | ported | duration | not in the wheel |
fifth | ported | fifth | not in the wheel |
forteClass | ported | forte_class | not in the wheel |
forteClassNumber | ported | forte_class_number | not in the wheel |
forteClassTn | ported | forte_class_tn | not in the wheel |
forteClassTnI | ported | forte_class_tni | not in the wheel |
fullName | ported | full_name | not in the wheel |
hasZRelation | ported | has_z_relation | not in the wheel |
intervalVector | ported | interval_class_vector | not in the wheel |
intervalVectorString | ported | interval_vector_string | not in the wheel |
isPrimeFormInversion | ported | is_prime_form_inversion | not in the wheel |
multisetCardinality | ported | multiset_cardinality | not in the wheel |
notes | ported | notes | not in the wheel |
normalOrder | ported | normal_order | not in the wheel |
normalOrderString | ported | normal_order_string | not in the wheel |
orderedPitchClasses | ported | pitch_classes | not in the wheel |
orderedPitchClassesString | ported | ordered_pitch_classes_string | not in the wheel |
pitchClassCardinality | ported | pitch_class_cardinality | not in the wheel |
pitchClasses | ported | note_pitch_classes | not in the wheel |
pitchNames | ported | pitch_names | not in the wheel |
pitchedCommonName | ported | pitched_common_name | not in the wheel |
pitches | ported | pitches | not in the wheel |
primeForm | ported | prime_form | not in the wheel |
primeFormString | ported | prime_form_string | not in the wheel |
quality | ported | quality | not in the wheel |
scaleDegrees | ported | scale_degrees | not in the wheel |
seventh | ported | seventh | not in the wheel |
third | ported | third | not in the wheel |
pitch.py
crate 43 of 45| music21 | Crate | music21-rs | Wheel |
|---|---|---|---|
groups | missing | the 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 names | in the wheel |
informClient | missing | observer callback for a containing note; there is none | in the wheel |
accidental | ported | accidental | in the wheel |
microtone | ported | microtone | in the wheel |
isTwelveTone | ported | is_twelve_tone | in the wheel |
getCentShiftFromMidi | ported | cent_shift_from_midi | in the wheel |
alter | ported | alter | in the wheel |
convertQuarterTonesToMicrotones | ported | convert_quarter_tones_to_microtones | in the wheel |
convertMicrotonesToQuarterTones | ported | convert_microtones_to_quarter_tones | in the wheel |
ps | ported | ps | in the wheel |
midi | ported | midi | in the wheel |
name | ported | name | in the wheel |
unicodeName | ported | unicode_name | in the wheel |
nameWithOctave | ported | name_with_octave | in the wheel |
unicodeNameWithOctave | ported | unicode_name_with_octave | in the wheel |
fullName | ported | full_name | in the wheel |
step | ported | step | in the wheel |
pitchClass | ported | pitch_class | in the wheel |
pitchClassString | ported | pitch_class_string | in the wheel |
octave | ported | octave | in the wheel |
octaveIsImplicit | ported | octave_is_implicit | in the wheel |
implicitOctave | ported | implicit_octave | in the wheel |
german | ported | german | in the wheel |
italian | ported | italian | in the wheel |
spanish | ported | spanish | in the wheel |
french | ported | french | in the wheel |
frequency | ported | frequency_hz | in the wheel |
freq440 | ported | frequency_hz | in the wheel |
getHarmonic | ported | harmonic | in the wheel |
harmonicFromFundamental | ported | harmonic_from_fundamental | in the wheel |
harmonicString | ported | harmonic_string | in the wheel |
harmonicAndFundamentalFromPitch | ported | harmonic_and_fundamental_from_pitch | in the wheel |
harmonicAndFundamentalStringFromPitch | ported | harmonic_and_fundamental_string_from_pitch | in the wheel |
isEnharmonic | ported | is_enharmonic | in the wheel |
getHigherEnharmonic | ported | get_higher_enharmonic | in the wheel |
getLowerEnharmonic | ported | get_lower_enharmonic | in the wheel |
simplifyEnharmonic | ported | simplify_enharmonic | in the wheel |
getEnharmonic | ported | get_enharmonic | in the wheel |
getAllCommonEnharmonics | ported | all_common_enharmonics | in the wheel |
diatonicNoteNum | ported | diatonic_note_number | in the wheel |
transpose | ported | transpose | in the wheel |
transposeBelowTarget | ported | transpose_below_target | in the wheel |
transposeAboveTarget | ported | transpose_above_target | in the wheel |
updateAccidentalDisplay | ported | update_accidental_display | in the wheel |
getStringHarmonic | ported | string_harmonic | in the wheel |
pitch.py
crate 12 of 12| music21 | Crate | music21-rs | Wheel |
|---|---|---|---|
listNames | ported | list_names | in the wheel |
set | ported | set | in the wheel |
isTwelveTone | ported | is_twelve_tone | in the wheel |
setAttributeIndependently | ported | set_attribute_independently | in the wheel |
inheritDisplay | ported | inherit_display | in the wheel |
name | ported | name | in the wheel |
alter | ported | alter | in the wheel |
modifier | ported | modifier | in the wheel |
displayType | ported | display_type | in the wheel |
displayStatus | ported | display_status | in the wheel |
unicode | ported | unicode | in the wheel |
fullName | ported | full_name | in the wheel |
pitch.py
crate 3 of 3| music21 | Crate | music21-rs | Wheel |
|---|---|---|---|
alter | ported | alter | in the wheel |
cents | ported | cents | in the wheel |
harmonicShift | ported | harmonic_shift | in the wheel |
interval.py
crate 29 of 29| music21 | Crate | music21-rs | Wheel |
|---|---|---|---|
generic | ported | generic | not in the wheel |
name | ported | short_name | not in the wheel |
niceName | ported | name | not in the wheel |
simpleName | ported | simple_name | not in the wheel |
simpleNiceName | ported | simple_nice_name | not in the wheel |
semiSimpleName | ported | semi_simple_name | not in the wheel |
semiSimpleNiceName | ported | semi_simple_nice_name | not in the wheel |
directedName | ported | directed_name | not in the wheel |
directedNiceName | ported | directed_nice_name | not in the wheel |
directedSimpleName | ported | directed_simple_name | not in the wheel |
directedSimpleNiceName | ported | directed_simple_nice_name | not in the wheel |
semitones | ported | semitones | not in the wheel |
direction | ported | direction | not in the wheel |
specifier | ported | specifier | not in the wheel |
specificName | ported | specific_name | not in the wheel |
isDiatonicStep | ported | is_diatonic_step | not in the wheel |
isChromaticStep | ported | is_chromatic_step | not in the wheel |
isStep | ported | is_step | not in the wheel |
isSkip | ported | is_skip | not in the wheel |
isConsonant | ported | is_consonant | not in the wheel |
complement | ported | complement | not in the wheel |
intervalClass | ported | interval_class | not in the wheel |
cents | ported | cents | not in the wheel |
transposePitch | ported | transpose_pitch | not in the wheel |
reverse | ported | reversed | not in the wheel |
pitchStart | ported | pitch_start | not in the wheel |
pitchEnd | ported | pitch_end | not in the wheel |
noteStart | ported | note_start | not in the wheel |
noteEnd | ported | note_end | not in the wheel |
interval.py
crate 26 of 26| music21 | Crate | music21-rs | Wheel |
|---|---|---|---|
value | ported | value | not in the wheel |
directed | ported | directed | not in the wheel |
undirected | ported | undirected | not in the wheel |
direction | ported | direction | not in the wheel |
isSkip | ported | is_skip | not in the wheel |
isDiatonicStep | ported | is_diatonic_step | not in the wheel |
isStep | ported | is_step | not in the wheel |
isUnison | ported | is_unison | not in the wheel |
simpleUndirected | ported | simple_undirected | not in the wheel |
semiSimpleUndirected | ported | semi_simple_undirected | not in the wheel |
undirectedOctaves | ported | undirected_octaves | not in the wheel |
octaves | ported | octaves | not in the wheel |
simpleDirected | ported | simple_directed | not in the wheel |
semiSimpleDirected | ported | semi_simple_directed | not in the wheel |
perfectable | ported | is_perfectable | not in the wheel |
niceName | ported | nice_name | not in the wheel |
simpleNiceName | ported | simple_nice_name | not in the wheel |
semiSimpleNiceName | ported | semi_simple_nice_name | not in the wheel |
staffDistance | ported | staff_distance | not in the wheel |
mod7inversion | ported | mod7_inversion | not in the wheel |
mod7 | ported | mod7 | not in the wheel |
complement | ported | complement | not in the wheel |
reverse | ported | reverse | not in the wheel |
transposePitch | ported | transpose_pitch | not in the wheel |
transposePitchKeyAware | ported | transpose_pitch_key_aware | not in the wheel |
getDiatonic | ported | get_diatonic | not in the wheel |
interval.py
crate 25 of 25| music21 | Crate | music21-rs | Wheel |
|---|---|---|---|
name | ported | name | not in the wheel |
niceName | ported | nice_name | not in the wheel |
specificName | ported | specific_name | not in the wheel |
simpleName | ported | simple_name | not in the wheel |
simpleNiceName | ported | simple_nice_name | not in the wheel |
semiSimpleName | ported | semi_simple_name | not in the wheel |
semiSimpleNiceName | ported | semi_simple_nice_name | not in the wheel |
direction | ported | direction | not in the wheel |
directedName | ported | directed_name | not in the wheel |
directedNiceName | ported | directed_nice_name | not in the wheel |
directedSimpleName | ported | directed_simple_name | not in the wheel |
directedSimpleNiceName | ported | directed_simple_nice_name | not in the wheel |
directedSemiSimpleName | ported | directed_semi_simple_name | not in the wheel |
directedSemiSimpleNiceName | ported | directed_semi_simple_nice_name | not in the wheel |
isStep | ported | is_step | not in the wheel |
isDiatonicStep | ported | is_diatonic_step | not in the wheel |
isSkip | ported | is_skip | not in the wheel |
perfectable | ported | is_perfectable | not in the wheel |
mod7inversion | ported | mod7_inversion | not in the wheel |
mod7 | ported | mod7 | not in the wheel |
reverse | ported | reverse | not in the wheel |
getChromatic | ported | get_chromatic | not in the wheel |
transposePitch | ported | transpose_pitch | not in the wheel |
specifierAbbreviation | ported | specifier_abbreviation | not in the wheel |
cents | ported | cents | not in the wheel |
interval.py
crate 13 of 13| music21 | Crate | music21-rs | Wheel |
|---|---|---|---|
cents | ported | cents | not in the wheel |
directed | ported | directed | not in the wheel |
undirected | ported | undirected | not in the wheel |
direction | ported | direction | not in the wheel |
mod12 | ported | mod12 | not in the wheel |
simpleUndirected | ported | simple_undirected | not in the wheel |
simpleDirected | ported | simple_directed | not in the wheel |
intervalClass | ported | interval_class | not in the wheel |
isChromaticStep | ported | is_chromatic_step | not in the wheel |
isStep | ported | is_step | not in the wheel |
reverse | ported | reverse | not in the wheel |
getDiatonic | ported | get_diatonic | not in the wheel |
transposePitch | ported | transpose_pitch | not in the wheel |
interval.py
crate 4 of 4| music21 | Crate | music21-rs | Wheel |
|---|---|---|---|
niceName | ported | nice_name | in the wheel |
inversion | ported | inversion | in the wheel |
semitonesAbovePerfect | ported | semitones_above_perfect | in the wheel |
semitonesAboveMajor | ported | semitones_above_major | in the wheel |
interval.py
crate 20 of 20Module-level helpers.
| music21 | Crate | music21-rs | Wheel |
|---|---|---|---|
convertStaffDistanceToInterval | ported | staff_distance_to_generic_number | in the wheel |
convertDiatonicNumberToStep | ported | convert_diatonic_number_to_step | in the wheel |
parseSpecifier | ported | parse_specifier | in the wheel |
convertGeneric | ported | convert_generic | in the wheel |
convertSemitoneToSpecifierGenericMicrotone | ported | convert_semitone_to_specifier_generic_microtone | in the wheel |
convertSemitoneToSpecifierGeneric | ported | convert_semitone_to_specifier_generic | in the wheel |
intervalToPythagoreanRatio | ported | pythagorean_ratio | in the wheel |
notesToGeneric | ported | notes_to_generic | in the wheel |
notesToChromatic | ported | notes_to_chromatic | in the wheel |
intervalsToDiatonic | ported | intervals_to_diatonic | in the wheel |
intervalFromGenericAndChromatic | ported | from_generic_and_chromatic | in the wheel |
getWrittenHigherNote | ported | written_higher_pitch | in the wheel |
getAbsoluteHigherNote | ported | absolute_higher_pitch | in the wheel |
getWrittenLowerNote | ported | written_lower_pitch | in the wheel |
getAbsoluteLowerNote | ported | absolute_lower_pitch | in the wheel |
transposePitch | ported | transpose_pitch | in the wheel |
transposeNote | ported | transpose_note | in the wheel |
notesToInterval | ported | between_pitches | in the wheel |
add | ported | sum | in the wheel |
subtract | ported | difference | in the wheel |
key.py
crate 7 of 7| music21 | Crate | music21-rs | Wheel |
|---|---|---|---|
asKey | ported | as_key | not in the wheel |
alteredPitches | ported | altered_pitches | not in the wheel |
accidentalByStep | ported | accidental_by_step | not in the wheel |
transpose | ported | transpose | not in the wheel |
transposePitchFromC | ported | transpose_pitch_from_c | not in the wheel |
getScale | ported | scale | not in the wheel |
sharps | ported | sharps | not in the wheel |
key.py
crate 6 of 6tonalCertainty belongs to a key that came out of analysis, so it lives on the ranked estimates in analysis.
| music21 | Crate | music21-rs | Wheel |
|---|---|---|---|
relative | ported | relative | not in the wheel |
parallel | ported | parallel | not in the wheel |
tonicPitchNameWithCase | ported | tonic_pitch_name_with_case | not in the wheel |
deriveByDegree | ported | derive_by_degree | not in the wheel |
tonalCertainty | ported | tonal_certainty | not in the wheel |
transpose | ported | transpose | not in the wheel |
scale/__init__.py
crate 23 of 27| music21 | Crate | music21-rs | Wheel |
|---|---|---|---|
isConcrete | missing | every Scale here has a tonic, so the question has one answer; the wheel answers it for a scale built without one | not in the wheel |
abstract | missing | a 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 those | not in the wheel |
write | missing | writes 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 writes | not in the wheel |
show | missing | opens the scale in another program, which is the caller's to do | not in the wheel |
name | ported | music21_name | not in the wheel |
getTonic | ported | tonic | not in the wheel |
getDegreeMaxUnique | ported | degree_count | not in the wheel |
transpose | ported | transpose | not in the wheel |
tune | ported | tune | not in the wheel |
romanNumeral | ported | roman_numeral | not in the wheel |
getPitches | ported | pitches | not in the wheel |
getChord | ported | chord | not in the wheel |
pitchFromDegree | ported | pitch_at_degree | not in the wheel |
pitchesFromScaleDegrees | ported | pitches_from_scale_degrees | not in the wheel |
intervalBetweenDegrees | ported | interval_between_degrees | not in the wheel |
getScaleDegreeFromPitch | ported | degree_of | not in the wheel |
getScaleDegreeAndAccidentalFromPitch | ported | degree_and_accidental_of | not in the wheel |
solfeg | ported | solfeg | not in the wheel |
nextPitch | ported | next_pitch_above | not in the wheel |
isNext | ported | is_next | not in the wheel |
match | ported | match_pitches | not in the wheel |
findMissing | ported | find_missing | not in the wheel |
deriveRanked | ported | derive_ranked | not in the wheel |
derive | ported | derive | not in the wheel |
deriveAll | ported | derive_all | not in the wheel |
deriveByDegree | ported | derive_by_degree | not in the wheel |
getScalaData | ported | scala_data | not in the wheel |
scale/__init__.py
crate 22 of 32The ConcreteScale subclasses, as ScaleType variants or runtime constructors.
| music21 | Crate | music21-rs | Wheel |
|---|---|---|---|
AbstractDiatonicScale | missing | the IntervalNetwork layer | not in the wheel |
AbstractOctatonicScale | missing | the IntervalNetwork layer | not in the wheel |
AbstractHarmonicMinorScale | missing | the IntervalNetwork layer | not in the wheel |
AbstractMelodicMinorScale | missing | the IntervalNetwork layer | not in the wheel |
AbstractCyclicalScale | missing | the IntervalNetwork layer | not in the wheel |
AbstractOctaveRepeatingScale | missing | the IntervalNetwork layer | not in the wheel |
Scale | missing | the abstract base | in the wheel |
AbstractScale | missing | a 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 them | in the wheel |
ConcreteScale | missing | realized by Scale, StepScale and ScalaScale | in the wheel |
DiatonicScale | missing | the diatonic modes are ScaleType variants | in the wheel |
MajorScale | ported | MajorScale | in the wheel |
MinorScale | ported | MinorScale | in the wheel |
DorianScale | ported | DorianScale | in the wheel |
PhrygianScale | ported | PhrygianScale | in the wheel |
LydianScale | ported | LydianScale | in the wheel |
MixolydianScale | ported | MixolydianScale | in the wheel |
HypodorianScale | ported | HypodorianScale | in the wheel |
HypophrygianScale | ported | HypophrygianScale | in the wheel |
HypolydianScale | ported | HypolydianScale | in the wheel |
HypomixolydianScale | ported | HypomixolydianScale | in the wheel |
LocrianScale | ported | LocrianScale | in the wheel |
HypolocrianScale | ported | HypolocrianScale | in the wheel |
HypoaeolianScale | ported | HypoaeolianScale | in the wheel |
HarmonicMinorScale | ported | HarmonicMinorScale | in the wheel |
MelodicMinorScale | ported | MelodicMinorScale | in the wheel |
OctatonicScale | ported | OctatonicScale | in the wheel |
OctaveRepeatingScale | ported | octave_repeating | in the wheel |
CyclicalScale | ported | cyclical | in the wheel |
ChromaticScale | ported | ChromaticScale | in the wheel |
WholeToneScale | ported | WholeToneScale | in the wheel |
SieveScale | ported | sieve | in the wheel |
ScalaScale | ported | ScalaScale | in the wheel |
roman.py
crate 11 of 11| music21 | Crate | music21-rs | Wheel |
|---|---|---|---|
adjustMinorVIandVIIByQuality | ported | adjust_minor_vi_and_vii_by_quality | not in the wheel |
transpose | ported | transpose | not in the wheel |
romanNumeral | ported | roman_numeral | not in the wheel |
figure | ported | figure | not in the wheel |
figureAndKey | ported | figure_and_key | not in the wheel |
key | ported | key | not in the wheel |
scaleDegreeWithAlteration | ported | scale_degree_with_alteration | not in the wheel |
bassScaleDegreeFromNotation | ported | bass_scale_degree_from_notation | not in the wheel |
functionalityScore | ported | functionality_score | not in the wheel |
isNeapolitan | ported | is_neapolitan | not in the wheel |
isMixture | ported | is_mixture | not in the wheel |
meter/base.py
crate 31 of 33The 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.
| music21 | Crate | music21-rs | Wheel |
|---|---|---|---|
resetValues | missing | rebuilding a meter in place; a new one is built instead | not in the wheel |
load | missing | rebuilding a meter in place; a new one is built instead | not in the wheel |
ratioString | ported | ratio_string | not in the wheel |
ratioEqual | ported | ratio_equal | not in the wheel |
numerator | ported | numerator | not in the wheel |
denominator | ported | denominator | not in the wheel |
barDuration | ported | bar_duration | not in the wheel |
beatLengthToQuarterLengthRatio | ported | beat_length_to_quarter_length_ratio | not in the wheel |
quarterLengthToBeatLengthRatio | ported | quarter_length_to_beat_length_ratio | not in the wheel |
beatCount | ported | beat_count | not in the wheel |
beatCountName | ported | beat_count_name | not in the wheel |
beatDuration | ported | beat_duration | not in the wheel |
beatDivisionCount | ported | beat_division_count | not in the wheel |
beatDivisionCountName | ported | beat_division_count_name | not in the wheel |
beatDivisionDurations | ported | beat_division_durations | not in the wheel |
beatSubDivisionDurations | ported | beat_sub_division_durations | not in the wheel |
classification | ported | classification | not in the wheel |
summedNumerator | ported | summed_numerator | not in the wheel |
getBeams | ported | beams_for | not in the wheel |
setDisplay | ported | set_display | not in the wheel |
getAccent | ported | accent | not in the wheel |
setAccentWeight | ported | set_accent_weight | not in the wheel |
averageBeatStrength | ported | average_beat_strength | not in the wheel |
getMeasureOffsetOrMeterModulusOffset | ported | offset_in_bar | not in the wheel |
getAccentWeight | ported | accent_weight | not in the wheel |
getBeat | ported | beat_at_offset | not in the wheel |
getBeatOffsets | ported | beat_offsets | not in the wheel |
getBeatDuration | ported | beat_duration | not in the wheel |
getOffsetFromBeat | ported | offset_from_beat | not in the wheel |
getBeatProgress | ported | beat_progress | not in the wheel |
getBeatProportion | ported | beat_proportion | not in the wheel |
getBeatProportionStr | ported | beat_proportion_string | not in the wheel |
getBeatDepth | ported | beat_depth | not in the wheel |
tempo.py
crate 10 of 10| music21 | Crate | music21-rs | Wheel |
|---|---|---|---|
referent | ported | referent | not in the wheel |
numberSounding | ported | number_sounding | not in the wheel |
getQuarterBPM | ported | quarter_bpm | not in the wheel |
setQuarterBPM | ported | quarter_bpm | not in the wheel |
getTextExpression | ported | text_expression | not in the wheel |
getEquivalentByReferent | ported | equivalent_by_referent | not in the wheel |
getMaintainedNumberWithReferent | ported | maintained_number_with_referent | not in the wheel |
secondsPerQuarter | ported | seconds_per_quarter | not in the wheel |
durationToSeconds | ported | duration_to_seconds | not in the wheel |
secondsToDuration | ported | seconds_to_duration | not in the wheel |
tempo.py
crate 8 of 8A change of tempo written as an equation between two metronome marks.
| music21 | Crate | music21-rs | Wheel |
|---|---|---|---|
oldMetronome | ported | old_metronome | not in the wheel |
oldReferent | ported | old_referent | not in the wheel |
newMetronome | ported | new_metronome | not in the wheel |
newReferent | ported | new_referent | not in the wheel |
number | ported | number | not in the wheel |
updateByContext | ported | update_from | not in the wheel |
setEqualityByReferent | ported | set_equality_by_referent | not in the wheel |
setOtherByReferent | ported | set_other_by_referent | not in the wheel |
instrument.py
crate 2 of 4One of music21's instrument classes, with what an instrument of it starts out as.
| music21 | Crate | music21-rs | Wheel |
|---|---|---|---|
partIdRandomize | missing | makes 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 does | not in the wheel |
instrumentIdRandomize | missing | makes 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 does | not in the wheel |
bestName | ported | best_name | not in the wheel |
autoAssignMidiChannel | ported | auto_assign_midi_channel | not in the wheel |
instrument.py
crate 1 of 1A string instrument's open strings, the only member music21 gives its string family.
| music21 | Crate | music21-rs | Wheel |
|---|---|---|---|
stringPitches | ported | string_pitches | not in the wheel |
instrument.py
crate 1 of 1How 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.
| music21 | Crate | music21-rs | Wheel |
|---|---|---|---|
modifier | ported | modifier | not in the wheel |
instrument.py
crate 8 of 8Module-level helpers: finding an instrument by name or program, and what instruments do to a stream they stand in.
| music21 | Crate | music21-rs | Wheel |
|---|---|---|---|
unbundleInstruments | ported | unbundle_instruments | in the wheel |
bundleInstruments | ported | bundle_instruments | in the wheel |
ensembleNameBySize | ported | ensemble_name_by_size | in the wheel |
deduplicate | ported | deduplicate | in the wheel |
instrumentFromMidiProgram | ported | from_midi_program | in the wheel |
partitionByInstrument | ported | partition_by_instrument | in the wheel |
fromString | ported | from_name | in the wheel |
getAllNamesForInstrument | ported | all_names | in the wheel |
midi/percussion.py
crate 2 of 2The 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.
| music21 | Crate | music21-rs | Wheel |
|---|---|---|---|
midiPitchToInstrument | ported | for_percussion_key | in the wheel |
midiInstrumentToPitch | ported | percussion_pitch | in the wheel |
duration.py
crate 22 of 24A quarter length, the note values it is written as, and the tuplets it is written inside.
| music21 | Crate | music21-rs | Wheel |
|---|---|---|---|
informClient | missing | observer callback for a containing note; there is none | in the wheel |
currentComponents | missing | the working-out is not deferred here, so there is no half-worked-out state to read | in the wheel |
linked | ported | linked | in the wheel |
addDurationTuple | ported | add_duration_tuple | in the wheel |
appendTuplet | ported | append_tuplet | in the wheel |
augmentOrDiminish | ported | augment_or_diminish | in the wheel |
clear | ported | clear | in the wheel |
componentIndexAtQtrPosition | ported | component_index_at_qtr_position | in the wheel |
componentStartTime | ported | component_start_time | in the wheel |
consolidate | ported | consolidate | in the wheel |
getGraceDuration | ported | grace_duration | in the wheel |
sliceComponentAtPosition | ported | slice_component_at_position | in the wheel |
splitDotGroups | ported | split_dot_groups | in the wheel |
components | ported | components | in the wheel |
dotGroups | ported | dot_groups | in the wheel |
dots | ported | dots | in the wheel |
fullName | ported | full_name | in the wheel |
isComplex | ported | is_complex | in the wheel |
ordinal | ported | ordinal | in the wheel |
quarterLengthNoTuplets | ported | quarter_length_no_tuplets | in the wheel |
quarterLength | ported | quarter_length | in the wheel |
tuplets | ported | tuplets | in the wheel |
aggregateTupletMultiplier | ported | aggregate_tuplet_multiplier | in the wheel |
type | ported | duration_type | in the wheel |
serial.py
crate 10 of 10| music21 | Crate | music21-rs | Wheel |
|---|---|---|---|
pitchClasses | ported | pitch_classes | not in the wheel |
noteNames | ported | note_names | not in the wheel |
isTwelveToneRow | ported | is_twelve_tone_row | not in the wheel |
makeTwelveToneRow | ported | make_twelve_tone_row | not in the wheel |
isSameRow | ported | is_same_row | not in the wheel |
getIntervalsAsString | ported | intervals_as_string | not in the wheel |
zeroCenteredTransformation | ported | zero_centered_transformation | not in the wheel |
originalCenteredTransformation | ported | original_centered_transformation | not in the wheel |
findZeroCenteredTransformations | ported | find_zero_centered_transformations | not in the wheel |
findOriginalCenteredTransformations | ported | find_original_centered_transformations | not in the wheel |
serial.py
crate 7 of 7| music21 | Crate | music21-rs | Wheel |
|---|---|---|---|
matrix | ported | matrix | not in the wheel |
findHistorical | ported | find_historical | not in the wheel |
findTransformedHistorical | ported | find_transformed_historical | not in the wheel |
isAllInterval | ported | is_all_interval | not in the wheel |
getLinkClassification | ported | link_classification | not in the wheel |
isLinkChord | ported | is_link_chord | not in the wheel |
areCombinatorial | ported | are_combinatorial | not in the wheel |
serial.py
crate 3 of 3Module-level helpers.
| music21 | Crate | music21-rs | Wheel |
|---|---|---|---|
getHistoricalRowByName | ported | historical_row_by_name | in the wheel |
pcToToneRow | ported | new | in the wheel |
rowToMatrix | ported | row_to_matrix | in the wheel |
voiceLeading.py
crate 30 of 30| music21 | Crate | music21-rs | Wheel |
|---|---|---|---|
key | ported | key | not in the wheel |
v1n1 | ported | v1n1 | not in the wheel |
v1n2 | ported | v1n2 | not in the wheel |
v2n1 | ported | v2n1 | not in the wheel |
v2n2 | ported | v2n2 | not in the wheel |
motionType | ported | motion_type | not in the wheel |
noMotion | ported | no_motion | not in the wheel |
obliqueMotion | ported | oblique_motion | not in the wheel |
similarMotion | ported | similar_motion | not in the wheel |
parallelMotion | ported | parallel_motion | not in the wheel |
contraryMotion | ported | contrary_motion | not in the wheel |
outwardContraryMotion | ported | outward_contrary_motion | not in the wheel |
inwardContraryMotion | ported | inward_contrary_motion | not in the wheel |
antiParallelMotion | ported | anti_parallel_motion | not in the wheel |
parallelInterval | ported | parallel_interval | not in the wheel |
parallelFifth | ported | parallel_fifth | not in the wheel |
parallelOctave | ported | parallel_octave | not in the wheel |
parallelUnison | ported | parallel_unison | not in the wheel |
parallelUnisonOrOctave | ported | parallel_unison_or_octave | not in the wheel |
hiddenInterval | ported | hidden_interval | not in the wheel |
hiddenFifth | ported | hidden_fifth | not in the wheel |
hiddenOctave | ported | hidden_octave | not in the wheel |
voiceOverlap | ported | voice_overlap | not in the wheel |
voiceCrossing | ported | voice_crossing | not in the wheel |
isProperResolution | ported | is_proper_resolution | not in the wheel |
leapNotSetWithStep | ported | leap_not_set_with_step | not in the wheel |
modalOpening | ported | modal_opening | not in the wheel |
opensIncorrectly | ported | opens_incorrectly | not in the wheel |
clausulaVera | ported | clausula_vera | not in the wheel |
closesIncorrectly | ported | closes_incorrectly | not in the wheel |
sieve.py
crate 4 of 9The sieve as written and its compressed reading: parse, membership, the segment formats and the interval widths of one period.
| music21 | Crate | music21-rs | Wheel |
|---|---|---|---|
expand | missing | which reading answers is not state on the sieve here; compressed hands back the other one and the sieve as written stays as it was | in the wheel |
setZ | missing | the range is an argument of each question here, not state on the sieve | in the wheel |
setZRange | missing | the range is an argument of each question here, not state on the sieve | in the wheel |
setSegmentFormat | missing | the segment format is an argument of each question here, not state on the sieve | in the wheel |
represent | missing | the sieve is written by Display, which is not a function the map can name | in the wheel |
compress | ported | compressed | in the wheel |
segment | ported | segment | in the wheel |
period | ported | period | in the wheel |
collect | ported | collect | in the wheel |
beam.py
crate 12 of 12All the beams over one note, and the rules for a run of them.
| music21 | Crate | music21-rs | Wheel |
|---|---|---|---|
naiveBeams | ported | naive_beams | in the wheel |
removeSandwichedUnbeamables | ported | remove_sandwiched_unbeamables | in the wheel |
mergeConnectingPartialBeams | ported | merge_connecting_partial_beams | in the wheel |
sanitizePartialBeams | ported | sanitize_partial_beams | in the wheel |
append | ported | append | in the wheel |
fill | ported | fill | in the wheel |
getByNumber | ported | by_number | in the wheel |
getNumbers | ported | numbers | in the wheel |
getTypeByNumber | ported | by_number | in the wheel |
getTypes | ported | types | in the wheel |
setAll | ported | set_all | in the wheel |
setByNumber | ported | set_by_number | in the wheel |
volume.py
crate 7 of 9How loud a note sounds, as a velocity and as a scalar.
| music21 | Crate | music21-rs | Wheel |
|---|---|---|---|
cachedRealized | missing | the crate caches nothing -- a value that answers the same question twice is doing arithmetic. The wheel caches as music21 does | in the wheel |
cachedRealizedStr | missing | the crate caches nothing -- a value that answers the same question twice is doing arithmetic. The wheel caches as music21 does | in the wheel |
getDynamicContext | ported | dynamic_context | in the wheel |
mergeAttributes | ported | merge_attributes | in the wheel |
getRealizedStr | ported | realized_str | in the wheel |
getRealized | ported | realized | in the wheel |
realized | ported | realized | in the wheel |
velocity | ported | velocity | in the wheel |
velocityScalar | ported | velocity_scalar | in the wheel |
volume.py
crate 1 of 1| music21 | Crate | music21-rs | Wheel |
|---|---|---|---|
realizeVolume | ported | realize_volume | in the wheel |
figuredBass/notation.py
crate 1 of 1One number of that column, with the accidental written against it.
| music21 | Crate | music21-rs | Wheel |
|---|---|---|---|
isPureExtender | ported | is_pure_extender | in the wheel |
figuredBass/notation.py
crate 2 of 2The mark as written beside the accidental it means: figured bass has marks no accidental name covers, a + that raises and a / that lowers.
| music21 | Crate | music21-rs | Wheel |
|---|---|---|---|
modifyPitchName | ported | modify_pitch_name | in the wheel |
modifyPitch | ported | modify | in the wheel |
figuredBass/notation.py
crate 1 of 1| music21 | Crate | music21-rs | Wheel |
|---|---|---|---|
convertToPitch | ported | convert_to_pitch | in the wheel |
sieve.py
crate 6 of 6The number helpers music21 keeps beside the sieve: primes, and spacings across the unit interval.
| music21 | Crate | music21-rs | Wheel |
|---|---|---|---|
eratosthenes | ported | eratosthenes | in the wheel |
rabinMiller | ported | rabin_miller | in the wheel |
discreteBinaryPad | ported | discrete_binary_pad | in the wheel |
unitNormRange | ported | unit_norm_range | in the wheel |
unitNormEqual | ported | unit_norm_equal | in the wheel |
unitNormStep | ported | unit_norm_step | in the wheel |
note.py
crate 8 of 8What 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.
| music21 | Crate | music21-rs | Wheel |
|---|---|---|---|
tie | ported | tie | not in the wheel |
lyric | ported | lyric | not in the wheel |
addLyric | ported | add_lyric | not in the wheel |
insertLyric | ported | insert_lyric | not in the wheel |
fullName | ported | full_name | not in the wheel |
pitches | ported | pitches | not in the wheel |
augmentOrDiminish | ported | augment_or_diminish | not in the wheel |
getGrace | ported | grace_note | not in the wheel |
note.py
crate 8 of 8A note or chord as distinct from a rest: what it is written as, which way its stem goes, and how loud it sounds.
| music21 | Crate | music21-rs | Wheel |
|---|---|---|---|
stemDirection | ported | stem_direction | not in the wheel |
notehead | ported | notehead | not in the wheel |
noteheadFill | ported | notehead_fill | not in the wheel |
noteheadParenthesis | ported | notehead_parenthesis | not in the wheel |
hasVolumeInformation | ported | has_volume_information | not in the wheel |
volume | ported | volume | not in the wheel |
storedInstrument | ported | stored_instrument | not in the wheel |
getInstrument | ported | instrument | not in the wheel |
note.py
crate 7 of 7A syllable sung to a note.
| music21 | Crate | music21-rs | Wheel |
|---|---|---|---|
isComposite | ported | is_composite | in the wheel |
text | ported | text | in the wheel |
syllabic | ported | syllabic | in the wheel |
identifier | ported | identifier | in the wheel |
rawText | ported | raw_text | in the wheel |
number | ported | number | in the wheel |
setTextAndSyllabic | ported | set_text_and_syllabic | in the wheel |
note.py
crate 1 of 1A silence of a written length.
| music21 | Crate | music21-rs | Wheel |
|---|---|---|---|
fullName | ported | full_name | not in the wheel |
chord/__init__.py
crate 7 of 7What a chord is before it is asked anything: the notes it holds, and adding to and taking from them.
| music21 | Crate | music21-rs | Wheel |
|---|---|---|---|
add | ported | add | not in the wheel |
remove | ported | remove | not in the wheel |
notes | ported | notes | not in the wheel |
tie | ported | tie | not in the wheel |
volume | ported | volume | not in the wheel |
hasComponentVolumes | ported | has_component_volumes | not in the wheel |
setVolumes | ported | set_volumes | not in the wheel |
duration.py
crate 10 of 10The bracket that says a length is written as one thing and sounds as another.
| music21 | Crate | music21-rs | Wheel |
|---|---|---|---|
augmentOrDiminish | ported | augment_or_diminish | in the wheel |
setDurationType | ported | set_duration_type | in the wheel |
setRatio | ported | set_ratio | in the wheel |
totalTupletLength | ported | total_tuplet_length | in the wheel |
tupletMultiplier | ported | multiplier | in the wheel |
durationActual | ported | duration_actual | in the wheel |
durationNormal | ported | duration_normal | in the wheel |
fullName | ported | full_name | in the wheel |
tupletActual | ported | tuplet_actual | in the wheel |
tupletNormal | ported | tuplet_normal | in the wheel |
note.py
crate 7 of 8A pitch and an optional duration.
| music21 | Crate | music21-rs | Wheel |
|---|---|---|---|
pitchChanged | missing | observer callback; there is none | not in the wheel |
name | ported | pitch_name | not in the wheel |
nameWithOctave | ported | pitch_name_with_octave | not in the wheel |
step | ported | step | not in the wheel |
octave | ported | octave | not in the wheel |
pitches | ported | pitches | not in the wheel |
transpose | ported | transpose | not in the wheel |
fullName | ported | full_name | not in the wheel |
harmony.py
crate 3 of 3| music21 | Crate | music21-rs | Wheel |
|---|---|---|---|
findFigure | ported | find_figure | not in the wheel |
inversionIsValid | ported | inversion_is_valid | not in the wheel |
transpose | ported | transpose | not in the wheel |
pitch.py
crate 4 of 4Module-level helpers.
| music21 | Crate | music21-rs | Wheel |
|---|---|---|---|
isValidAccidentalName | ported | is_valid_name | in the wheel |
standardizeAccidentalName | ported | standardize_name | in the wheel |
convertPitchClassToStr | ported | convert_pitch_class_to_str | in the wheel |
simplifyMultipleEnharmonics | ported | simplify_multiple_enharmonics | in the wheel |
key.py
crate 3 of 3Module-level helpers.
| music21 | Crate | music21-rs | Wheel |
|---|---|---|---|
convertKeyStringToMusic21KeyString | ported | convert_key_string_to_music21_key_string | in the wheel |
sharpsToPitch | ported | sharps_to_pitch | in the wheel |
pitchToSharps | ported | pitch_to_sharps | in the wheel |
duration.py
crate 12 of 12Module-level helpers.
| music21 | Crate | music21-rs | Wheel |
|---|---|---|---|
nextLargerType | ported | next_larger | in the wheel |
nextSmallerType | ported | next_smaller | in the wheel |
quarterLengthToClosestType | ported | quarter_length_to_closest_type | in the wheel |
convertQuarterLengthToType | ported | from_quarter_length | in the wheel |
dottedMatch | ported | type_and_dots | in the wheel |
quarterLengthToNonPowerOf2Tuplet | ported | quarter_length_to_non_power_of_2_tuplet | in the wheel |
quarterLengthToTuplet | ported | quarter_length_to_tuplet | in the wheel |
quarterConversion | ported | quarter_conversion | in the wheel |
convertTypeToQuarterLength | ported | quarter_length | in the wheel |
convertTypeToNumber | ported | type_number | in the wheel |
durationTupleFromQuarterLength | ported | type_and_dots | in the wheel |
durationTupleFromTypeDots | ported | from_type_with_dots | in the wheel |
tempo.py
crate 2 of 2Module-level helpers.
| music21 | Crate | music21-rs | Wheel |
|---|---|---|---|
convertTempoByReferent | ported | convert_tempo_by_referent | in the wheel |
interpolateElements | ported | interpolate_elements | in the wheel |
roman.py
crate 8 of 8Module-level helpers.
| music21 | Crate | music21-rs | Wheel |
|---|---|---|---|
expandShortHand | ported | expand_shorthand | in the wheel |
correctSuffixForChordQuality | ported | correct_suffix_for_chord_quality | in the wheel |
figureTuples | ported | figure_tuples | in the wheel |
figureTupleSolo | ported | from_pitch_and_reference | in the wheel |
identifyAsTonicOrDominant | ported | identify_as_tonic_or_dominant | in the wheel |
romanInversionName | ported | roman_inversion_name | in the wheel |
correctRNAlterationForMinor | ported | correct_rn_alteration_for_minor | in the wheel |
romanNumeralFromChord | ported | roman_numeral_from_chord | in the wheel |
chord/__init__.py
crate 2 of 2Module-level helpers.
| music21 | Crate | music21-rs | Wheel |
|---|---|---|---|
fromForteClass | ported | from_forte_class | in the wheel |
fromIntervalVector | ported | from_interval_vector | in the wheel |
chord/tables.py
crate 9 of 9The 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.
| music21 | Crate | music21-rs | Wheel |
|---|---|---|---|
forteIndexToInversionsAvailable | ported | inversions_available | in the wheel |
addressToTransposedNormalForm | ported | normal_form | in the wheel |
addressToPrimeForm | ported | prime_form | in the wheel |
addressToIntervalVector | ported | interval_class_vector | in the wheel |
intervalVectorToAddress | ported | set_classes_with_interval_vector | in the wheel |
addressToZAddress | ported | z_related_class | in the wheel |
addressToCommonNames | ported | common_names | in the wheel |
addressToForteName | ported | forte_name | in the wheel |
seekChordTablesAddress | ported | address_of_pitch_classes | in the wheel |
romanText/tsvConverter.py
crate 3 of 3One 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.
| music21 | Crate | music21-rs | Wheel |
|---|---|---|---|
combinedChord | ported | chord | in the wheel |
tabToM21 | ported | element | in the wheel |
populateFromRow | ported | from_row | in the wheel |
romanText/tsvConverter.py
crate 4 of 4What 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.
| music21 | Crate | music21-rs | Wheel |
|---|---|---|---|
beat | ported | beat | in the wheel |
measure | ported | measure | in the wheel |
local_key | ported | local_key | in the wheel |
global_key | ported | global_key | in the wheel |
romanText/tsvConverter.py
crate 2 of 3A table read: the rows, and the score of numerals they make.
| music21 | Crate | music21-rs | Wheel |
|---|---|---|---|
prepStream | missing | a step inside the reader: from_tsv prepares the measures from the table's own numbers and meters itself and hands back the whole score | not in the wheel |
tsvToChords | ported | tsv_to_chords | not in the wheel |
toM21Stream | ported | from_tsv | not in the wheel |
romanText/tsvConverter.py
crate 1 of 2A score written back as a table, column for column.
| music21 | Crate | music21-rs | Wheel |
|---|---|---|---|
write | missing | writes a file, which the library does not do: to_tsv hands back the text | not in the wheel |
m21ToTsv | ported | to_tsv | not in the wheel |
romanText/tsvConverter.py
crate 7 of 7Module-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.
| music21 | Crate | music21-rs | Wheel |
|---|---|---|---|
getForm | ported | form_of | in the wheel |
handleAddedTones | ported | handle_added_tones | in the wheel |
localKeyAsRn | ported | local_key_as_roman | in the wheel |
isMinor | ported | is_minor | in the wheel |
characterSwaps | ported | character_swaps | in the wheel |
getLocalKey | ported | local_key | in the wheel |
getSecondaryKey | ported | secondary_key | in the wheel |
romanText/clercqTemperley.py
crate 7 of 8A 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.
| music21 | Crate | music21-rs | Wheel |
|---|---|---|---|
toScore | missing | music21's own deprecated name for toPart, which it will take out | in the wheel |
parse | ported | parse | in the wheel |
title | ported | title | in the wheel |
comments | ported | comments | in the wheel |
rules | ported | rules | in the wheel |
homeTimeSig | ported | home_time_signature | in the wheel |
homeKey | ported | home_key | in the wheel |
toPart | ported | to_part | in the wheel |
romanText/clercqTemperley.py
crate 7 of 12One 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.
| music21 | Crate | music21-rs | Wheel |
|---|---|---|---|
parent | missing | music21 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 back | in the wheel |
expandExpansionContent | missing | a step inside the expansion, which the crate drives from the song rather than from the rule keeping the state | in the wheel |
expandSimpleContent | missing | a step inside the expansion, as expandExpansionContent | in the wheel |
addOptionalTieAndLyrics | missing | a step inside the expansion, which ties the chord before as it writes the one after | in the wheel |
insertKsTs | missing | a step inside the expansion: the crate writes the key and the meter into a measure as it builds it | in the wheel |
expand | ported | expand | in the wheel |
isSame | ported | is_same | in the wheel |
fixupChordAtom | ported | fixup_chord_atom | in the wheel |
musicText | ported | music_text | in the wheel |
comment | ported | comment | in the wheel |
LHS | ported | left_hand_side | in the wheel |
sectionName | ported | section_name | in the wheel |
harmony.py
crate 7 of 10Module-level helpers.
| music21 | Crate | music21-rs | Wheel |
|---|---|---|---|
addNewChordSymbol | missing | mutates 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 it | not in the wheel |
changeAbbreviationFor | missing | mutates 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 it | not in the wheel |
removeChordSymbols | missing | mutates 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 it | not in the wheel |
chordSymbolFigureFromChord | ported | chord_symbol_figure_from_chord | in the wheel |
alterToChordSymbolString | ported | alter_to_chord_symbol_string | in the wheel |
chordSymbolFromChord | ported | chord_symbol_from_chord | in the wheel |
getAbbreviationListGivenChordType | ported | abbreviations_for_kind | in the wheel |
getCurrentAbbreviationFor | ported | current_abbreviation_for_kind | in the wheel |
getNotationStringGivenChordType | ported | notation_for_kind | in the wheel |
realizeChordSymbolDurations | ported | realize_chord_symbol_durations | in the wheel |
meter/base.py
crate 1 of 1Module-level helpers.
| music21 | Crate | music21-rs | Wheel |
|---|---|---|---|
bestTimeSignature | ported | best_time_signature | in the wheel |
scale/scala/__init__.py
crate 7 of 7A 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.
| music21 | Crate | music21-rs | Wheel |
|---|---|---|---|
parse | ported | parse | in the wheel |
getCentsAboveTonic | ported | written_cents | in the wheel |
getAdjacentCents | ported | adjacent_cents | in the wheel |
setAdjacentCents | ported | from_adjacent_cents | in the wheel |
getIntervalSequence | ported | interval_sequence | in the wheel |
setIntervalSequence | ported | from_interval_sequence | in the wheel |
getFileString | ported | file_string | in the wheel |
scale/scala/__init__.py
crate 2 of 3Module-level helpers.
| music21 | Crate | music21-rs | Wheel |
|---|---|---|---|
getPaths | missing | where the archive's files sit on disk; the archive here is one bundled table and has no paths | in the wheel |
parse | ported | find | in the wheel |
search | ported | search | in the wheel |
tie.py
crate 3 of 4Two written notes sounding as one, and how the tie between them is drawn.
| music21 | Crate | music21-rs | Wheel |
|---|---|---|---|
id | missing | the 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 it | in the wheel |
placement | ported | placement | in the wheel |
style | ported | style | in the wheel |
type | ported | tie_type | in the wheel |
meter/core.py
crate 4 of 5A span of a bar written as a ratio, which is what a meter's partitions are made of.
| music21 | Crate | music21-rs | Wheel |
|---|---|---|---|
modify | missing | no reason given | in the wheel |
weight | ported | weight | in the wheel |
numerator | ported | numerator | in the wheel |
denominator | ported | denominator | in the wheel |
depth | ported | depth | in the wheel |
meter/core.py
crate 7 of 8What a span and a divided span have in common: their length, comparing ratios, and dividing.
| music21 | Crate | music21-rs | Wheel |
|---|---|---|---|
subdivide | missing | no reason given | in the wheel |
numerator | ported | numerator | in the wheel |
denominator | ported | denominator | in the wheel |
weight | ported | weight | in the wheel |
duration | ported | quarter_length | in the wheel |
ratioEqual | ported | ratio_equal | in the wheel |
subdivideByCount | ported | subdivide_by_count | in the wheel |
subdivideByList | ported | subdivide_by_list | in the wheel |
meter/core.py
crate 27 of 30A span divided into parts, each of them a span in turn, which is the tree every meter question is read off.
| music21 | Crate | music21-rs | Wheel |
|---|---|---|---|
modify | missing | no reason given | in the wheel |
load | missing | raises in music21, since a sequence cannot change; a new one is built instead | in the wheel |
partitioned | missing | one method dispatching on the type of what it is handed; the three partitions it dispatches to are each ported | in the wheel |
setIndex | ported | set_index | in the wheel |
partitionDisplay | ported | partition_display | in the wheel |
getPartitionOptions | ported | partition_options | in the wheel |
partitionedByCount | ported | partitioned_by_count | in the wheel |
partitionedByList | ported | partitioned_by_list | in the wheel |
partitionedByOtherMeterSequence | ported | partitioned_by_other | in the wheel |
subdividedPartitionsEqual | ported | subdivided_partitions_equal | in the wheel |
subdividedNestedHierarchy | ported | subdivided_nested_hierarchy | in the wheel |
partitionStr | ported | partition_string | in the wheel |
numerator | ported | numerator | in the wheel |
denominator | ported | denominator | in the wheel |
weight | ported | weight | in the wheel |
withWeight | ported | with_weight | in the wheel |
flatten | ported | flatten | in the wheel |
flatWeight | ported | flat_weights | in the wheel |
depth | ported | depth | in the wheel |
isUniformPartition | ported | is_uniform_partition | in the wheel |
getLevelList | ported | level_list | in the wheel |
getLevel | ported | level | in the wheel |
getLevelSpan | ported | level_span | in the wheel |
getLevelWeight | ported | level_weight | in the wheel |
withLevelWeight | ported | with_level_weight | in the wheel |
offsetToIndex | ported | offset_to_index | in the wheel |
offsetToAddress | ported | offset_to_address | in the wheel |
offsetToSpan | ported | offset_to_span | in the wheel |
offsetToWeight | ported | offset_to_weight | in the wheel |
offsetToDepth | ported | offset_to_depth | in the wheel |
voiceLeading.py
crate 2 of 2Module-level helpers.
| music21 | Crate | music21-rs | Wheel |
|---|---|---|---|
getVerticalityFromObject | ported | verticality_at | in the wheel |
iterateAllVoiceLeadingQuartets | ported | iterate_all_voice_leading_quartets | in the wheel |
dynamics.py
crate 2 of 2A dynamic mark and the loudness it stands for. In a stream it is in force until the next, which is what realize_volume reads.
| music21 | Crate | music21-rs | Wheel |
|---|---|---|---|
value | ported | value | not in the wheel |
volumeScalar | ported | volume_scalar | not in the wheel |
dynamics.py
crate 1 of 1Module-level helpers.
| music21 | Crate | music21-rs | Wheel |
|---|---|---|---|
dynamicStrFromDecimal | ported | dynamic_str_from_decimal | in the wheel |
clef.py
crate 3 of 3A clef: its sign, the line it sits on, the octaves it transposes and the note on its lowest line.
| music21 | Crate | music21-rs | Wheel |
|---|---|---|---|
octaveChange | ported | octave_change | not in the wheel |
name | ported | name | not in the wheel |
getStemDirectionForPitches | ported | stem_direction_for_pitches | not in the wheel |
clef.py
crate 1 of 1A clef that places pitches, whose lowest line moves with its octave change.
| music21 | Crate | music21-rs | Wheel |
|---|---|---|---|
octaveChange | ported | octave_change | not in the wheel |
clef.py
crate 2 of 2Module-level helpers.
| music21 | Crate | music21-rs | Wheel |
|---|---|---|---|
clefFromString | ported | from_string | in the wheel |
bestClef | ported | best_for | in the wheel |
articulations.py
crate 2 of 2A mark on a note saying how it is played: how much louder, how much shorter, and which part of a tied note keeps it.
| music21 | Crate | music21-rs | Wheel |
|---|---|---|---|
name | ported | name | not in the wheel |
volumeShift | ported | volume_shift | not in the wheel |
expressions.py
crate 4 of 5An ornament and the notes it is played as: its ornamental pitches and its realization over a note in a key.
| music21 | Crate | music21-rs | Wheel |
|---|---|---|---|
fillListOfRealizedNotes | missing | a helper realize fills its lists with; realize is ported | not in the wheel |
realize | ported | realize | not in the wheel |
resolveOrnamentalPitches | ported | ornamental_pitches | not in the wheel |
ornamentalPitches | ported | ornamental_pitches | not in the wheel |
updateAccidentalDisplay | ported | update_accidental_display | not in the wheel |
expressions.py
crate 9 of 9| music21 | Crate | music21-rs | Wheel |
|---|---|---|---|
name | ported | name | not in the wheel |
accidental | ported | accidental | not in the wheel |
direction | ported | direction | not in the wheel |
getSize | ported | size | not in the wheel |
resolveOrnamentalPitches | ported | ornamental_pitches | not in the wheel |
ornamentalPitch | ported | ornamental_pitches | not in the wheel |
ornamentalPitches | ported | ornamental_pitches | not in the wheel |
updateAccidentalDisplay | ported | update_accidental_display | not in the wheel |
realize | ported | realize | not in the wheel |
expressions.py
crate 10 of 10| music21 | Crate | music21-rs | Wheel |
|---|---|---|---|
name | ported | name | not in the wheel |
direction | ported | direction | not in the wheel |
accidental | ported | accidental | not in the wheel |
splitClient | ported | split_client | not in the wheel |
getSize | ported | size | not in the wheel |
resolveOrnamentalPitches | ported | ornamental_pitches | not in the wheel |
ornamentalPitch | ported | ornamental_pitches | not in the wheel |
ornamentalPitches | ported | ornamental_pitches | not in the wheel |
updateAccidentalDisplay | ported | update_accidental_display | not in the wheel |
realize | ported | realize | not in the wheel |
expressions.py
crate 12 of 12| music21 | Crate | music21-rs | Wheel |
|---|---|---|---|
upperAccidental | ported | upper_accidental | not in the wheel |
lowerAccidental | ported | lower_accidental | not in the wheel |
delay | ported | delay | not in the wheel |
isDelayed | ported | is_delayed | not in the wheel |
name | ported | name | not in the wheel |
getSize | ported | turn_size | not in the wheel |
resolveOrnamentalPitches | ported | ornamental_pitches | not in the wheel |
upperOrnamentalPitch | ported | ornamental_pitches | not in the wheel |
lowerOrnamentalPitch | ported | ornamental_pitches | not in the wheel |
ornamentalPitches | ported | ornamental_pitches | not in the wheel |
updateAccidentalDisplay | ported | update_accidental_display | not in the wheel |
realize | ported | realize | not in the wheel |
expressions.py
crate 1 of 1| music21 | Crate | music21-rs | Wheel |
|---|---|---|---|
realize | ported | realize | not in the wheel |
expressions.py
crate 2 of 2| music21 | Crate | music21-rs | Wheel |
|---|---|---|---|
numberOfMarks | ported | number_of_marks | not in the wheel |
realize | ported | realize | not in the wheel |
figuredBass/possibility.py
crate 15 of 15The rules a voicing of a figured bass is held to, alone and moving to the next.
| music21 | Crate | music21-rs | Wheel |
|---|---|---|---|
voiceCrossing | ported | voice_crossing | in the wheel |
isIncomplete | ported | is_incomplete | in the wheel |
upperPartsWithinLimit | ported | upper_parts_within_limit | in the wheel |
pitchesWithinLimit | ported | pitches_within_limit | in the wheel |
limitPartToPitch | ported | limit_part_to_pitch | in the wheel |
parallelFifths | ported | parallel_fifths | in the wheel |
parallelOctaves | ported | parallel_octaves | in the wheel |
hiddenFifths | ported | hidden_fifths | in the wheel |
hiddenOctaves | ported | hidden_octaves | in the wheel |
voiceOverlap | ported | voice_overlap | in the wheel |
partMovementsWithinLimits | ported | part_movements_within_limits | in the wheel |
upperPartsSame | ported | upper_parts_same | in the wheel |
partsSame | ported | parts_same | in the wheel |
couldBeItalianA6Resolution | ported | could_be_italian_a6_resolution | in the wheel |
partPairs | ported | part_pairs | in the wheel |
figuredBass/resolution.py
crate 13 of 14How a dominant seventh, a diminished seventh or an augmented sixth resolves, voiced part for part.
| music21 | Crate | music21-rs | Wheel |
|---|---|---|---|
showResolutions | missing | puts 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 do | not in the wheel |
augmentedSixthToDominant | ported | augmented_sixth_to_dominant | in the wheel |
augmentedSixthToMajorTonic | ported | augmented_sixth_to_major_tonic | in the wheel |
augmentedSixthToMinorTonic | ported | augmented_sixth_to_minor_tonic | in the wheel |
dominantSeventhToMajorTonic | ported | dominant_seventh_to_major_tonic | in the wheel |
dominantSeventhToMinorTonic | ported | dominant_seventh_to_minor_tonic | in the wheel |
dominantSeventhToMajorSubmediant | ported | dominant_seventh_to_major_submediant | in the wheel |
dominantSeventhToMinorSubmediant | ported | dominant_seventh_to_minor_submediant | in the wheel |
dominantSeventhToMajorSubdominant | ported | dominant_seventh_to_major_subdominant | in the wheel |
dominantSeventhToMinorSubdominant | ported | dominant_seventh_to_minor_subdominant | in the wheel |
diminishedSeventhToMajorTonic | ported | diminished_seventh_to_major_tonic | in the wheel |
diminishedSeventhToMinorTonic | ported | diminished_seventh_to_minor_tonic | in the wheel |
diminishedSeventhToMajorSubdominant | ported | diminished_seventh_to_major_subdominant | in the wheel |
diminishedSeventhToMinorSubdominant | ported | diminished_seventh_to_minor_subdominant | in the wheel |
figuredBass/realizerScale.py
crate 3 of 3The key a figured bass is counted in, and the notes a bass and its figures stand for.
| music21 | Crate | music21-rs | Wheel |
|---|---|---|---|
getPitchNames | ported | pitch_names | in the wheel |
getSamplePitches | ported | sample_pitches | in the wheel |
getPitches | ported | pitches | in the wheel |
figuredBass/segment.py
crate 6 of 9A bass note and its figures, every voicing of them, and the moves to the next.
| music21 | Crate | music21-rs | Wheel |
|---|---|---|---|
singlePossibilityRules | missing | music21's table of its own Python functions for printing; the rules are Rules and the segment runs them | in the wheel |
consecutivePossibilityRules | missing | music21's table of its own Python functions for printing; the rules are Rules and the segment runs them | in the wheel |
specialResolutionRules | missing | music21's table of its own Python functions for printing; the rules are Rules and the segment runs them | in the wheel |
resolveDominantSeventhSegment | ported | resolve_dominant_seventh_segment | in the wheel |
resolveDiminishedSeventhSegment | ported | resolve_diminished_seventh_segment | in the wheel |
resolveAugmentedSixthSegment | ported | resolve_augmented_sixth_segment | in the wheel |
allSinglePossibilities | ported | all_single_possibilities | in the wheel |
allCorrectSinglePossibilities | ported | all_correct_single_possibilities | in the wheel |
allCorrectConsecutivePossibilities | ported | all_correct_consecutive_possibilities | in the wheel |
figuredBass/segment.py
crate 1 of 2Module-level helpers.
| music21 | Crate | music21-rs | Wheel |
|---|---|---|---|
printRules | missing | prints music21's rule tables, which hold its Python functions | not in the wheel |
getPitches | ported | pitches | in the wheel |
figuredBass/realizer.py
crate 5 of 5A 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.
| music21 | Crate | music21-rs | Wheel |
|---|---|---|---|
addElement | ported | add_element | in the wheel |
generateBassLine | ported | generate_bass_line | in the wheel |
retrieveSegments | ported | segments | in the wheel |
overlayPart | ported | overlay_part | in the wheel |
realize | ported | realize | in the wheel |
figuredBass/realizer.py
crate 7 of 7Every 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.
| music21 | Crate | music21-rs | Wheel |
|---|---|---|---|
getNumSolutions | ported | num_solutions | in the wheel |
getAllPossibilityProgressions | ported | all_possibility_progressions | in the wheel |
getRandomPossibilityProgression | ported | possibility_progression_by | in the wheel |
generateRealizationFromPossibilityProgression | ported | generate_realization_from_possibility_progression | in the wheel |
generateAllRealizations | ported | generate_all_realizations | in the wheel |
generateRandomRealization | ported | generate_random_realization | in the wheel |
generateRandomRealizations | ported | generate_random_realizations | in the wheel |
analysis/discrete.py
crate 3 of 6Key finding by correlating a duration-weighted pitch-class distribution with one of five key profiles.
| music21 | Crate | music21-rs | Wheel |
|---|---|---|---|
solutionLegend | missing | the colour legend of a keyscape graph; presentation | not in the wheel |
solutionUnitString | missing | the unit a graph's legend is labelled with; presentation | not in the wheel |
solutionToColor | missing | the colour a key is drawn in; presentation | not in the wheel |
process | ported | estimate_key_from_distribution | not in the wheel |
getWeights | ported | major_weights | in the wheel |
getSolution | ported | estimate_key_from_distribution | in the wheel |
analysis/discrete.py
crate 3 of 6| music21 | Crate | music21-rs | Wheel |
|---|---|---|---|
solutionLegend | missing | the colour legend of a graph; presentation | not in the wheel |
solutionUnitString | missing | the unit a graph's legend is labelled with; presentation | not in the wheel |
solutionToColor | missing | the colour a span is drawn in; presentation | not in the wheel |
process | ported | pitch_span | not in the wheel |
getPitchSpan | ported | pitch_span | in the wheel |
getSolution | ported | pitch_span | in the wheel |
analysis/discrete.py
crate 3 of 4| music21 | Crate | music21-rs | Wheel |
|---|---|---|---|
solutionToColor | missing | the colour a count is drawn in; presentation | in the wheel |
countMelodicIntervals | ported | melodic_interval_counts | in the wheel |
process | ported | melodic_interval_counts | in the wheel |
getSolution | ported | melodic_interval_counts | in the wheel |
analysis/enharmonics.py
crate 5 of 6The best spelling of a run of pitches, scored on augmented and diminished steps, accidentals and their mixture.
| music21 | Crate | music21-rs | Wheel |
|---|---|---|---|
getProduct | missing | lists every combination of the spellings at once; best_choice walks them one at a time | in the wheel |
getRepresentations | ported | spelling_options | in the wheel |
bestPitches | ported | best_spelling | in the wheel |
getAlterationScore | ported | alteration_score | in the wheel |
getMixSharpFlatsScore | ported | mixture_score | in the wheel |
getAugDimScore | ported | aug_dim_score | in the wheel |
analysis/neoRiemannian.py
crate 12 of 12L, P and R, their chains, the hexatonic cycle and systems, and the chromatic and disjunct mediants.
| music21 | Crate | music21-rs | Wheel |
|---|---|---|---|
L | ported | apply | in the wheel |
P | ported | apply | in the wheel |
R | ported | apply | in the wheel |
isNeoR | ported | is_neo_r | in the wheel |
isChromaticMediant | ported | is_chromatic_mediant | in the wheel |
LRP_combinations | ported | lrp_combination | in the wheel |
completeHexatonic | ported | complete_hexatonic | in the wheel |
hexatonicSystem | ported | hexatonic_system | in the wheel |
chromaticMediants | ported | chromatic_mediant | in the wheel |
disjunctMediants | ported | disjunct_mediant | in the wheel |
S | ported | slide | in the wheel |
N | ported | nebenverwandt | in the wheel |
analysis/harmonicFunction.py
crate 2 of 2The eighteen harmonic function labels and the Roman numerals they stand for, in either mode.
| music21 | Crate | music21-rs | Wheel |
|---|---|---|---|
functionToRoman | ported | to_roman | in the wheel |
romanToFunction | ported | from_roman | in the wheel |
analysis/transposition.py
crate 6 of 6A set of pitches in all twelve transpositions, and how many of them differ.
| music21 | Crate | music21-rs | Wheel |
|---|---|---|---|
getTranspositions | ported | transpositions | in the wheel |
listNormalOrders | ported | normal_orders | in the wheel |
listDistinctNormalOrders | ported | distinct_normal_orders | in the wheel |
numDistinctTranspositions | ported | distinct_count | in the wheel |
getChordsOfDistinctTranspositions | ported | distinct_chords | in the wheel |
getPitchesOfDistinctTranspositions | ported | distinct_pitches | in the wheel |
analysis/patel.py
crate 2 of 2The normalized pairwise variability of a rhythm and the melodic interval variability of a line.
| music21 | Crate | music21-rs | Wheel |
|---|---|---|---|
nPVI | ported | n_pvi | in the wheel |
melodicIntervalVariability | ported | melodic_interval_variability | in the wheel |
analysis/metrical.py
crate 2 of 2The depth of the metrical hierarchy at each note, and Thomassen's melodic accent.
| music21 | Crate | music21-rs | Wheel |
|---|---|---|---|
labelBeatDepth | ported | label_beat_depth | in the wheel |
thomassenMelodicAccent | ported | thomassen_melodic_accent | in the wheel |
expressions.py
crate 1 of 2The 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.
| music21 | Crate | music21-rs | Wheel |
|---|---|---|---|
isUnison | missing | whether 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 here | in the wheel |
realizeOrnaments | ported | realize_ornaments | in the wheel |
stream/makeNotation.py
crate 12 of 17The 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.
| music21 | Crate | music21-rs | Wheel |
|---|---|---|---|
moveNotesToVoices | missing | the 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 steps | not in the wheel |
setStemDirectionOneGroup | missing | one group of that walk | not in the wheel |
saveAccidentalDisplayStatus | missing | a 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 on | not in the wheel |
ornamentalPitches | missing | every 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 key | in the wheel |
iterateBeamGroups | missing | the 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 carries | in the wheel |
makeAccidentalsInMeasureStream | ported | make_accidentals | not in the wheel |
splitElementsToCompleteTuplets | ported | split_elements_to_complete_tuplets | not in the wheel |
consolidateCompletedTuplets | ported | consolidate_completed_tuplets | not in the wheel |
makeBeams | ported | make_beams | in the wheel |
makeMeasures | ported | make_measures | in the wheel |
makeRests | ported | make_rests | in the wheel |
makeTies | ported | make_ties | in the wheel |
makeTupletBrackets | ported | make_tuplet_brackets | in the wheel |
realizeOrnaments | ported | realize_ornaments | in the wheel |
getTiePitchSet | ported | tie_pitch_set | in the wheel |
makeOrnamentalAccidentals | ported | make_ornamental_accidentals | in the wheel |
setStemDirectionForBeamGroups | ported | set_stem_direction_for_beam_groups | in the wheel |
analysis/elements.py
crate 1 of 1How 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.
| music21 | Crate | music21-rs | Wheel |
|---|---|---|---|
attributeCount | ported | attribute_count | in the wheel |
analysis/segmentByRests.py
crate 2 of 2A part cut into its runs of notes between rests and clefs, and the intervals inside them.
| music21 | Crate | music21-rs | Wheel |
|---|---|---|---|
getSegmentsList | ported | segments_list | in the wheel |
getIntervalList | ported | interval_list | in the wheel |
analysis/pitchAnalysis.py
crate 1 of 1How often each value of a property of a stream's pitches comes.
| music21 | Crate | music21-rs | Wheel |
|---|---|---|---|
pitchAttributeCount | ported | pitch_attribute_count | in the wheel |
analysis/windowed.py
crate 3 of 3A stream cut into quarter-note windows, and an analysis run over windows of each size.
| music21 | Crate | music21-rs | Wheel |
|---|---|---|---|
getMinimumWindowStream | ported | new | in the wheel |
analyze | ported | analyze | in the wheel |
process | ported | process | in the wheel |
analysis/floatingKey.py
crate 4 of 4A key for every measure, each measure's reading smoothed by its neighbours'.
| music21 | Crate | music21-rs | Wheel |
|---|---|---|---|
run | ported | run | in the wheel |
getRawKeyByMeasure | ported | raw_key_by_measure | in the wheel |
getInterpretationByMeasure | ported | interpretation_by_measure | in the wheel |
smoothInterpretationByMeasure | ported | smooth_interpretation_by_measure | in the wheel |
analysis/floatingKey.py
crate 1 of 1| music21 | Crate | music21-rs | Wheel |
|---|---|---|---|
divide | ported | divide | in the wheel |
humdrum/harmParser.py
crate 1 of 1The harmonic annotations a **harm spine carries, read as the roman numerals they stand for.
| music21 | Crate | music21-rs | Wheel |
|---|---|---|---|
convertHarmToRoman | ported | convert_harm_to_roman | in the wheel |
humdrum/harmParser.py
crate 1 of 1A **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.
| music21 | Crate | music21-rs | Wheel |
|---|---|---|---|
parse | ported | parse | in the wheel |
bar.py
crate 2 of 2How 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.
| music21 | Crate | music21-rs | Wheel |
|---|---|---|---|
type | ported | bar_type | not in the wheel |
musicXMLBarStyle | ported | musicxml_bar_style | not in the wheel |
bar.py
crate 3 of 3A 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.
| music21 | Crate | music21-rs | Wheel |
|---|---|---|---|
direction | ported | repeat_direction | not in the wheel |
times | ported | repeat_times | not in the wheel |
getTextExpression | ported | repeat_text_expression | not in the wheel |
stream/base.py
crate 106 of 131Music 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.
| music21 | Crate | music21-rs | Wheel |
|---|---|---|---|
write | missing | writing a file, which the format modules do | not in the wheel |
show | missing | rendering, which the crate leaves to its caller | not in the wheel |
mergeAttributes | missing | what clone_empty carries over | not in the wheel |
index | missing | as elementOffset | not in the wheel |
remove | missing | takes a named object out; retain_leaves and remove_event take out by place or by test | not in the wheel |
setElementOffset | missing | moves 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 again | not in the wheel |
elementOffset | missing | asks where one object sits; a crate stream owns values rather than objects, so events gives each with its offset | not in the wheel |
storeAtEnd | missing | elements 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 else | not in the wheel |
isAtEnd | missing | asks 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 barline | not in the wheel |
setDerivationMethod | missing | derivations, which a crate stream does not keep | not in the wheel |
replace | missing | swaps one object for another; events_mut reaches each in place | not in the wheel |
recurseRepr | missing | music21's own text dump of a stream | not in the wheel |
plot | missing | plotting, which the crate leaves to its caller | not in the wheel |
addGroupForElements | missing | the group names music21 picks elements out of a stream by; nothing a crate stream holds carries them | not in the wheel |
getElementsByGroup | missing | as addGroupForElements | not in the wheel |
transferOffsetToElements | missing | moves a stream's own offset onto what it holds, which needs the sites a crate stream does not keep | not in the wheel |
sort | missing | a 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 sort | not in the wheel |
sorted | missing | as sort | not in the wheel |
containerInHierarchy | missing | needs the sites a crate stream does not keep | not in the wheel |
makeImmutable | missing | music21's mutability machinery, which a value has no need of | not in the wheel |
makeMutable | missing | as makeImmutable | not in the wheel |
beat | missing | where 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 number | not in the wheel |
beatStr | missing | as beat | not in the wheel |
beatStrength | missing | as beat | not in the wheel |
attachMelodicIntervals | missing | attaches an interval to each note; melodic_intervals answers them instead, a crate note carrying nothing of its line | not in the wheel |
iter | ported | iter | not in the wheel |
first | ported | first | not in the wheel |
last | ported | last | not in the wheel |
elements | ported | events | not in the wheel |
clef | ported | clef | not in the wheel |
timeSignature | ported | time_signature_at | not in the wheel |
keySignature | ported | key_signature_at | not in the wheel |
staffLines | ported | staff_lines | not in the wheel |
clear | ported | clear | not in the wheel |
cloneEmpty | ported | clone_empty | not in the wheel |
hasElementOfClass | ported | has_element_of_class | not in the wheel |
mergeElements | ported | merge_elements | not in the wheel |
pop | ported | remove_event | not in the wheel |
removeByClass | ported | remove_by_class | not in the wheel |
removeByNotOfClass | ported | remove_by_not_of_class | not in the wheel |
insert | ported | insert | not in the wheel |
insertIntoNoteOrChord | ported | insert_into_note_or_chord | not in the wheel |
append | ported | push | not in the wheel |
insertAndShift | ported | insert_and_shift | not in the wheel |
splitAtDurations | ported | split_at_durations | not in the wheel |
splitAtQuarterLength | ported | split_at_quarter_length | not in the wheel |
analyze | ported | analyze | not in the wheel |
getElementsByClass | ported | elements_of_class | not in the wheel |
getElementsNotOfClass | ported | elements_not_of_class | not in the wheel |
getElementById | ported | element_by_id | not in the wheel |
getElementsByOffset | ported | elements_in_span | not in the wheel |
getElementAtOrBefore | ported | element_at_or_before | not in the wheel |
getElementBeforeOffset | ported | element_before_offset | not in the wheel |
getElementAfterElement | ported | element_after | not in the wheel |
measures | ported | measures_between | not in the wheel |
measure | ported | measure | not in the wheel |
template | ported | template | not in the wheel |
measureOffsetMap | ported | measure_offset_map | not in the wheel |
finalBarline | ported | final_barline | not in the wheel |
voices | ported | voices | not in the wheel |
spanners | ported | spanners | not in the wheel |
atSoundingPitch | ported | at_sounding_pitch | not in the wheel |
toSoundingPitch | ported | to_sounding_pitch | not in the wheel |
toWrittenPitch | ported | to_written_pitch | not in the wheel |
getTimeSignatures | ported | time_signatures | not in the wheel |
getInstruments | ported | instruments | not in the wheel |
getInstrument | ported | instrument | not in the wheel |
invertDiatonic | ported | invert_diatonic | not in the wheel |
shiftElements | ported | shift_elements | not in the wheel |
repeatAppend | ported | repeat_append | not in the wheel |
repeatInsert | ported | repeat_insert | not in the wheel |
extractContext | ported | extract_context | not in the wheel |
chordify | ported | chordify | not in the wheel |
splitByClass | ported | split_by | not in the wheel |
offsetMap | ported | offset_map | not in the wheel |
makeMeasures | ported | make_measures | not in the wheel |
makeRests | ported | make_rests | not in the wheel |
makeTies | ported | make_ties | not in the wheel |
makeBeams | ported | make_beams | not in the wheel |
makeAccidentals | ported | make_accidentals | not in the wheel |
haveAccidentalsBeenMade | ported | accidentals_made | not in the wheel |
makeNotation | ported | make_notation | not in the wheel |
extendDuration | ported | extend_duration | not in the wheel |
stripTies | ported | strip_ties | not in the wheel |
extendTies | ported | extend_ties | not in the wheel |
flatten | ported | flatten | not in the wheel |
recurse | ported | recurse | not in the wheel |
highestOffset | ported | highest_offset | not in the wheel |
highestTime | ported | highest_time | not in the wheel |
lowestOffset | ported | lowest_offset | not in the wheel |
duration | ported | duration | not in the wheel |
seconds | ported | seconds | not in the wheel |
metronomeMarkBoundaries | ported | metronome_mark_boundaries | not in the wheel |
metadata | ported | metadata | not in the wheel |
beatDuration | ported | beat_duration | not in the wheel |
beatAndMeasureFromOffset | ported | beat_and_measure_from_offset | not in the wheel |
transpose | ported | transpose | not in the wheel |
scaleOffsets | ported | scale_offsets | not in the wheel |
scaleDurations | ported | scale_durations | not in the wheel |
augmentOrDiminish | ported | augment_or_diminish | not in the wheel |
quantize | ported | quantize | not in the wheel |
expandRepeats | ported | expand_repeats | not in the wheel |
sliceByQuarterLengths | ported | slice_by_quarter_lengths | not in the wheel |
sliceByGreatestDivisor | ported | slice_by_greatest_divisor | not in the wheel |
sliceAtOffsets | ported | slice_at_offsets | not in the wheel |
sliceByBeat | ported | slice_by_beat | not in the wheel |
hasMeasures | ported | has_measures | not in the wheel |
hasVoices | ported | has_voices | not in the wheel |
hasPartLikeStreams | ported | has_part_like_streams | not in the wheel |
isTwelveTone | ported | is_twelve_tone | not in the wheel |
isWellFormedNotation | ported | is_well_formed_notation | not in the wheel |
notesAndRests | ported | notes_and_rests | not in the wheel |
notes | ported | notes | not in the wheel |
pitches | ported | pitches | not in the wheel |
findConsecutiveNotes | ported | find_consecutive_notes | not in the wheel |
melodicIntervals | ported | melodic_intervals | not in the wheel |
findGaps | ported | find_gaps | not in the wheel |
isGapless | ported | is_gapless | not in the wheel |
getOverlaps | ported | get_overlaps | not in the wheel |
isSequence | ported | is_sequence | not in the wheel |
simultaneousAttacks | ported | simultaneous_attacks | not in the wheel |
attachIntervalsBetweenStreams | ported | harmonic_intervals | not in the wheel |
playingWhenAttacked | ported | playing_when_attacked | not in the wheel |
allPlayingWhileSounding | ported | all_playing_while_sounding | not in the wheel |
makeVoices | ported | make_voices | not in the wheel |
voicesToParts | ported | voices_to_parts | not in the wheel |
explode | ported | explode | not in the wheel |
flattenUnnecessaryVoices | ported | flatten_unnecessary_voices | not in the wheel |
lyrics | ported | lyrics | not in the wheel |
activateVariants | ported | activate_variants | not in the wheel |
showVariantAsOssialikePart | ported | show_variant_as_ossialike_part | not in the wheel |
stream/base.py
crate 8 of 9A 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.
| music21 | Crate | music21-rs | Wheel |
|---|---|---|---|
mergeAttributes | missing | what clone_empty carries over | not in the wheel |
measureNumberWithSuffix | ported | number_with_suffix | not in the wheel |
makeNotation | ported | make_notation | not in the wheel |
barDurationProportion | ported | bar_duration_proportion | not in the wheel |
padAsAnacrusis | ported | pad_as_anacrusis | not in the wheel |
barDuration | ported | bar_duration | not in the wheel |
bestTimeSignature | ported | best_time_signature | not in the wheel |
leftBarline | ported | left_barline | not in the wheel |
rightBarline | ported | right_barline | not in the wheel |
stream/base.py
crate 3 of 4One player's line. A crate stream of kind Part or PartStaff carries the name and abbreviation music21 keeps as partName and partAbbreviation.
| music21 | Crate | music21-rs | Wheel |
|---|---|---|---|
mergeAttributes | missing | what clone_empty carries over | not in the wheel |
partName | ported | name | not in the wheel |
partAbbreviation | ported | abbreviation | not in the wheel |
makeAccidentals | ported | make_accidentals | not in the wheel |
stream/base.py
crate 8 of 9Every part of a piece together.
| music21 | Crate | music21-rs | Wheel |
|---|---|---|---|
measure | missing | a score of each part's measure of one number; measures_between(n, Some(n)) answers it, measure reading only a stream's own measures | not in the wheel |
parts | ported | parts | not in the wheel |
measures | ported | measures_between | not in the wheel |
expandRepeats | ported | expand_repeats | not in the wheel |
measureOffsetMap | ported | measure_offset_map | not in the wheel |
sliceByGreatestDivisor | ported | slice_by_greatest_divisor | not in the wheel |
partsToVoices | ported | parts_to_voices | not in the wheel |
implode | ported | implode | not in the wheel |
makeNotation | ported | make_notation | not in the wheel |
stream/base.py
crate 5 of 7The scores a multi-work file holds, which many an ABC or Essen collection is.
| music21 | Crate | music21-rs | Wheel |
|---|---|---|---|
write | missing | writing a file, which the format modules do | not in the wheel |
show | missing | rendering, which the crate leaves to its caller | not in the wheel |
getNumbers | ported | score_numbers | not in the wheel |
getScoreByNumber | ported | score_by_number | not in the wheel |
getScoreByTitle | ported | score_by_title | not in the wheel |
scores | ported | scores | not in the wheel |
mergeScores | ported | merge_scores | not in the wheel |
percussion.py
crate 1 of 1Unpitched percussion: a stroke written on a staff with no pitch to it, and a chord of them.
| music21 | Crate | music21-rs | Wheel |
|---|---|---|---|
PercussionChord | ported | PercussionChord | in the wheel |
percussion.py
crate 2 of 2A 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.
| music21 | Crate | music21-rs | Wheel |
|---|---|---|---|
notes | ported | members | not in the wheel |
pitches | ported | pitches | not in the wheel |
tablature.py
crate 8 of 8Fretted-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.
| music21 | Crate | music21-rs | Wheel |
|---|---|---|---|
ChordWithFretBoard | ported | ChordWithFretBoard | not in the wheel |
FretNote | ported | FretNote | in the wheel |
FretBoard | ported | FretBoard | in the wheel |
FirstFret | ported | FirstFret | in the wheel |
GuitarFretBoard | ported | guitar | in the wheel |
UkeleleFretBoard | ported | ukulele | in the wheel |
BassGuitarFretBoard | ported | bass_guitar | in the wheel |
MandolinFretBoard | ported | mandolin | in the wheel |
tablature.py
crate 3 of 3| music21 | Crate | music21-rs | Wheel |
|---|---|---|---|
fretNotesLowestFirst | ported | fret_notes_lowest_first | in the wheel |
getFretNoteByString | ported | fret_note_by_string | in the wheel |
getPitches | ported | pitches | in the wheel |
tablature.py
crate 0 of 1A chord symbol with a diagram under it.
| music21 | Crate | music21-rs | Wheel |
|---|---|---|---|
getFretNotesFromFigure | missing | music21's own is a stub that answers nothing, its docstring a TODO: the fret notes a figure stands for are not worked out there either | not in the wheel |
text.py
crate 4 of 4Words in a score: the lyrics assembled off its notes, and an article moved to the front of a title or back to its end.
| music21 | Crate | music21-rs | Wheel |
|---|---|---|---|
assembleLyrics | ported | assemble_lyrics | in the wheel |
assembleAllLyrics | ported | assemble_all_lyrics | in the wheel |
prependArticle | ported | prepend_article | in the wheel |
postpendArticle | ported | postpend_article | in the wheel |
text.py
crate 2 of 2Text standing anywhere on the page, which MusicXML writes as a credit.
| music21 | Crate | music21-rs | Wheel |
|---|---|---|---|
content | ported | content | not in the wheel |
page | ported | page | not in the wheel |
text.py
crate 2 of 3Which language a text is most likely in, by the letters that follow each pair of letters.
| music21 | Crate | music21-rs | Wheel |
|---|---|---|---|
readExcerpts | missing | reads 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 in | in the wheel |
mostLikelyLanguage | ported | most_likely_language | in the wheel |
mostLikelyLanguageNumeric | ported | most_likely_language_numeric | in the wheel |
text.py
crate 3 of 6| music21 | Crate | music21-rs | Wheel |
|---|---|---|---|
makeWords | missing | no reason given | not in the wheel |
likely | missing | which language a trigram is nearest, which most_likely_language answers | not in the wheel |
measure | missing | the step that counts the letter triples, which building one does | in the wheel |
length | ported | length | in the wheel |
parseExcerpt | ported | add_text | in the wheel |
similarity | ported | similarity | in the wheel |
layout.py
crate 5 of 10How a score is laid out: the page and system margins a file states, a staff's size and lines, and the parts bracketed together.
| music21 | Crate | music21-rs | Wheel |
|---|---|---|---|
LayoutScore | missing | a 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 nothing | not in the wheel |
Page | missing | a page of such a score | not in the wheel |
Staff | missing | a staff of such a score | not in the wheel |
LayoutBase | missing | the class music21 hangs the four layouts off; layout::Layout is the one of them a stream holds | in the wheel |
System | missing | a system of such a score | in the wheel |
StaffGroup | ported | StaffGroup | not in the wheel |
ScoreLayout | ported | ScoreLayout | in the wheel |
PageLayout | ported | PageLayout | in the wheel |
SystemLayout | ported | SystemLayout | in the wheel |
StaffLayout | ported | StaffLayout | in the wheel |
layout.py
crate 0 of 4Reading a score's measures back off its pages and systems, which only a LayoutScore has.
| music21 | Crate | music21-rs | Wheel |
|---|---|---|---|
divideByPages | missing | builds a LayoutScore, which the crate has none of | not in the wheel |
getPageRegionMeasureNumbers | missing | the measures on a page of a LayoutScore | not in the wheel |
getSystemRegionMeasureNumbers | missing | the measures in a system of a LayoutScore | not in the wheel |
getRegionMeasureNumbers | missing | the measures in a region of a LayoutScore | not in the wheel |
layout.py
crate 1 of 1| music21 | Crate | music21-rs | Wheel |
|---|---|---|---|
tenthsToMillimeters | ported | tenths_to_millimeters | not in the wheel |
layout.py
crate 2 of 2The parts a brace or a bracket joins, and whether their barlines are drawn through.
| music21 | Crate | music21-rs | Wheel |
|---|---|---|---|
barTogether | ported | bar_together | not in the wheel |
symbol | ported | symbol | not in the wheel |
style.py
crate 1 of 10How 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.
| music21 | Crate | music21-rs | Wheel |
|---|---|---|---|
Enclosure | missing | the 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 own | not in the wheel |
StyleMixin | missing | what music21 mixes into every class it draws; nothing here has a style of its own to mix in | not in the wheel |
Style | missing | the 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 music21 | in the wheel |
NoteStyle | missing | how a note is drawn beyond its colour and its size, which the crate does not model. The wheel has one, for use without music21 | in the wheel |
TextStylePlacement | missing | a text style that also says which side of the staff it is on, which is display::Drawn here | in the wheel |
BezierStyle | missing | the curve of a slur | in the wheel |
LineStyle | missing | the dashes of a line | in the wheel |
StreamStyle | missing | how a whole stream is drawn | in the wheel |
BeamStyle | missing | how a beam is drawn | in the wheel |
TextStyle | ported | TextStyle | in the wheel |
style.py
crate 7 of 8| music21 | Crate | music21-rs | Wheel |
|---|---|---|---|
letterSpacing | missing | the 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 across | not in the wheel |
alignVertical | ported | align_vertical | not in the wheel |
alignHorizontal | ported | align_horizontal | not in the wheel |
justify | ported | justify | not in the wheel |
fontStyle | ported | font_style | not in the wheel |
fontWeight | ported | font_weight | not in the wheel |
fontSize | ported | font_size | not in the wheel |
fontFamily | ported | font_family | not in the wheel |
spanner.py
crate 7 of 10Something 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.
| music21 | Crate | music21-rs | Wheel |
|---|---|---|---|
PendingAssignmentRef | missing | music21's note to itself that a spanner is waiting for its first element, which the readers keep as a queue | not in the wheel |
SpannerAnchor | missing | an element standing in a stream for a spanner to hang off where there is no note to; a spanner here names positions and needs none | not in the wheel |
SpannerBundle | missing | the collection music21 keeps a stream's spanners in; a crate stream holds its own | in the wheel |
RepeatBracket | ported | Ending | not in the wheel |
Spanner | ported | Spanner | in the wheel |
Slur | ported | Slur | in the wheel |
MultiMeasureRest | ported | MultiMeasureRest | in the wheel |
Ottava | ported | Ottava | in the wheel |
Line | ported | Line | in the wheel |
Glissando | ported | Glissando | in the wheel |
spanner.py
crate 7 of 14The 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.
| music21 | Crate | music21-rs | Wheel |
|---|---|---|---|
purgeOrphans | missing | drops the elements no stream holds any more, which only a spanner keeping objects can have | not in the wheel |
purgeLocations | missing | drops the sites it remembers, and it remembers none | not in the wheel |
getSpannedElementsByClass | missing | the elements of a class among them, which the stream holding them answers | not in the wheel |
getSpannedElementIds | missing | Python object ids | not in the wheel |
fill | missing | fills in every element between the first and the last, which asks the stream what stands between them | not in the wheel |
getFirst | missing | the first element itself; spanned gives its position and the stream hands back what stands there | not in the wheel |
getLast | missing | the last element itself, likewise | not in the wheel |
getSpannedElements | ported | spanned | not in the wheel |
addSpannedElements | ported | add_spanned_elements | not in the wheel |
insertFirstSpannedElement | ported | insert_first_spanned_element | not in the wheel |
hasSpannedElement | ported | has_spanned_element | not in the wheel |
replaceSpannedElement | ported | replace_spanned_element | not in the wheel |
isFirst | ported | is_first | not in the wheel |
isLast | ported | is_last | not in the wheel |
spanner.py
crate 6 of 6An octave line, and whether the notes under it are written where they sound.
| music21 | Crate | music21-rs | Wheel |
|---|---|---|---|
type | ported | name | not in the wheel |
shiftMagnitude | ported | magnitude | not in the wheel |
shiftDirection | ported | up | not in the wheel |
interval | ported | interval | not in the wheel |
performTransposition | ported | to_sounding_pitch | not in the wheel |
undoTransposition | ported | to_written_pitch | not in the wheel |
spanner.py
crate 5 of 6A bracket with a tick at each end.
| music21 | Crate | music21-rs | Wheel |
|---|---|---|---|
tick | missing | sets both ends at once; LineEnds carries each | not in the wheel |
endTick | ported | end | not in the wheel |
startTick | ported | start | not in the wheel |
lineType | ported | line_type | not in the wheel |
endHeight | ported | end_height | not in the wheel |
startHeight | ported | start_height | not in the wheel |
spanner.py
crate 2 of 2| music21 | Crate | music21-rs | Wheel |
|---|---|---|---|
lineType | ported | line_type | not in the wheel |
slideType | ported | slide_type | not in the wheel |
spanner.py
crate 1 of 1Rests of several measures drawn as one; how it is drawn and counted is its MultiRest.
| music21 | Crate | music21-rs | Wheel |
|---|---|---|---|
numRests | ported | num_rests | not in the wheel |
repeat.py
crate 13 of 16The 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.
| music21 | Crate | music21-rs | Wheel |
|---|---|---|---|
RepeatMark | missing | what music21 mixes into everything that repeats; a barline here says it repeats and an expression says where to go back to | not in the wheel |
RepeatExpressionCommand | missing | the kinds that send the music somewhere rather than marking a place, which is every kind is_marker says no to | not in the wheel |
RepeatFinder | missing | finds 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 marking | not in the wheel |
RepeatExpressionMarker | ported | is_marker | not in the wheel |
Expander | ported | expand_repeats | not in the wheel |
RepeatExpression | ported | RepeatExpression | in the wheel |
Coda | ported | Coda | in the wheel |
Segno | ported | Segno | in the wheel |
Fine | ported | Fine | in the wheel |
DaCapo | ported | DaCapo | in the wheel |
DaCapoAlFine | ported | DaCapoAlFine | in the wheel |
DaCapoAlCoda | ported | DaCapoAlCoda | in the wheel |
AlSegno | ported | AlSegno | in the wheel |
DalSegno | ported | DalSegno | in the wheel |
DalSegnoAlFine | ported | DalSegnoAlFine | in the wheel |
DalSegnoAlCoda | ported | DalSegnoAlCoda | in the wheel |
repeat.py
crate 0 of 3Writing repeats into a score, which the crate does not do: it plays out the repeats a score already has.
| music21 | Crate | music21-rs | Wheel |
|---|---|---|---|
insertRepeatEnding | missing | writes an ending bracket over some measures | not in the wheel |
insertRepeat | missing | writes repeat barlines round some measures | not in the wheel |
deleteMeasures | missing | takes measures out and renumbers the rest | not in the wheel |
repeat.py
crate 3 of 6| music21 | Crate | music21-rs | Wheel |
|---|---|---|---|
applyTextFormatting | missing | the font and the justification a renderer draws the words with; justify says which way they are set | not in the wheel |
setTextExpression | missing | keeps the words as a TextExpression object | not in the wheel |
getTextExpression | missing | the words as a TextExpression for a renderer; text is what they say | not in the wheel |
getText | ported | text | not in the wheel |
setText | ported | set_text | not in the wheel |
isValidText | ported | is_valid_text | not in the wheel |
repeat.py
crate 7 of 7Playing 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.
| music21 | Crate | music21-rs | Wheel |
|---|---|---|---|
process | ported | expand_repeats | not in the wheel |
measureMap | ported | measure_map | not in the wheel |
repeatBarsAreCoherent | ported | repeat_bars_are_coherent | not in the wheel |
findInnermostRepeatIndices | ported | find_innermost_repeat_indices | not in the wheel |
processInnermostRepeatBars | ported | process_innermost_repeat_bars | not in the wheel |
getRepeatExpressionIndex | ported | repeat_expression_index | not in the wheel |
isExpandable | ported | is_expandable | not in the wheel |
variant.py
crate 10 of 10Another 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.
| music21 | Crate | music21-rs | Wheel |
|---|---|---|---|
getMeasureHashes | ported | measure_hashes | not in the wheel |
makeVariantBlocks | ported | make_variant_blocks | not in the wheel |
mergeVariants | ported | merge_variants | in the wheel |
mergeVariantScores | ported | merge_variant_scores | in the wheel |
mergeVariantMeasureStreams | ported | merge_variant_measure_streams | in the wheel |
mergeVariantsEqualDuration | ported | merge_variants_equal_duration | in the wheel |
mergePartAsOssia | ported | merge_part_as_ossia | in the wheel |
addVariant | ported | add_variant | in the wheel |
refineVariant | ported | refine_variant | in the wheel |
makeAllVariantsReplacements | ported | make_all_variants_replacements | in the wheel |
variant.py
crate 7 of 15| music21 | Crate | music21-rs | Wheel |
|---|---|---|---|
purgeOrphans | missing | drops the elements no stream holds any more, which only a variant keeping objects can have | not in the wheel |
purgeLocations | missing | drops the sites it remembers, and it remembers none | not in the wheel |
getElementIds | missing | Python object ids | not in the wheel |
replaceElement | missing | swaps one element for another by object | not in the wheel |
highestOffset | missing | the offset of the stream it holds, which Stream::highest_offset answers of its contents | not in the wheel |
show | missing | rendering, which the crate leaves to its caller | not in the wheel |
containedSite | missing | the stream it was read out of, which is a site | not in the wheel |
replacementDuration | missing | the Duration of what it replaces; replacement_quarter_length is how long that is | not in the wheel |
highestTime | ported | highest_time | not in the wheel |
containedHighestTime | ported | contained_highest_time | not in the wheel |
containedHighestOffset | ported | contained_highest_offset | not in the wheel |
replacementQuarterLength | ported | replacement_quarter_length | not in the wheel |
lengthType | ported | length_type | not in the wheel |
replacedElements | ported | replaced_elements | not in the wheel |
removeReplacedElementsFromStream | ported | remove_replaced_elements_from_stream | not in the wheel |
metadata/primitives.py
crate 5 of 8A 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.
| music21 | Crate | music21-rs | Wheel |
|---|---|---|---|
load | missing | reads 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 take | in the wheel |
loadDatetime | missing | reads a date out of one of Python's, which the crate has no type for: a caller hands the parts over | in the wheel |
datetime | missing | answers one of Python's datetimes, likewise | in the wheel |
errorToSymbol | ported | symbol | in the wheel |
loadOther | ported | take_from | in the wheel |
loadStr | ported | from_written | in the wheel |
hasTime | ported | has_time | in the wheel |
hasError | ported | has_certainty | in the wheel |
metadata/primitives.py
crate 1 of 2One 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.
| music21 | Crate | music21-rs | Wheel |
|---|---|---|---|
datetime | missing | answers one of Python's datetimes for the first date, which the crate has no type for | in the wheel |
relevance | ported | relevance | in the wheel |
metadata/primitives.py
crate 1 of 1A date something happened before or after: DatePrimitive::relative.
| music21 | Crate | music21-rs | Wheel |
|---|---|---|---|
relevance | ported | relevance | in the wheel |
metadata/primitives.py
crate 1 of 1A span between two dates: DatePrimitive::between.
| music21 | Crate | music21-rs | Wheel |
|---|---|---|---|
relevance | ported | relevance | in the wheel |
metadata/primitives.py
crate 1 of 1A choice among dates: DatePrimitive::selection.
| music21 | Crate | music21-rs | Wheel |
|---|---|---|---|
relevance | ported | relevance | in the wheel |
metadata/primitives.py
crate 2 of 2One 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.
| music21 | Crate | music21-rs | Wheel |
|---|---|---|---|
language | ported | language | in the wheel |
getNormalizedArticle | ported | normalized_article | in the wheel |
metadata/primitives.py
crate 5 of 6Somebody 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.
| music21 | Crate | music21-rs | Wheel |
|---|---|---|---|
age | missing | how long they lived, which is arithmetic over two dates a caller has | in the wheel |
name | ported | name | in the wheel |
names | ported | names | in the wheel |
role | ported | role | in the wheel |
abbreviationToRole | ported | role_of_abbreviation | in the wheel |
roleToAbbreviation | ported | abbreviation_of_role | in the wheel |
metadata/__init__.py
crate 34 of 35What 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.
| music21 | Crate | music21-rs | Wheel |
|---|---|---|---|
convertValue | missing | reads 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 under | not in the wheel |
add | ported | add | not in the wheel |
getCustom | ported | get | not in the wheel |
addCustom | ported | add | not in the wheel |
setCustom | ported | set | not in the wheel |
uniqueNameToNamespaceName | ported | namespace_name | not in the wheel |
namespaceNameToUniqueName | ported | unique_name_of | not in the wheel |
isContributorUniqueName | ported | is_contributor_unique_name | not in the wheel |
isStandardName | ported | unique_name_of | not in the wheel |
software | ported | get | not in the wheel |
contributors | ported | contributors | not in the wheel |
copyright | ported | string_value | not in the wheel |
all | ported | all | not in the wheel |
addContributor | ported | add_contributor | not in the wheel |
getContributorsByRole | ported | contributors_by_role | not in the wheel |
search | ported | search | not in the wheel |
alternativeTitle | ported | string_value | not in the wheel |
composer | ported | string_value | not in the wheel |
composers | ported | get | not in the wheel |
dateCreated | ported | string_value | not in the wheel |
fileFormat | ported | string_value | not in the wheel |
filePath | ported | string_value | not in the wheel |
corpusFilePath | ported | string_value | not in the wheel |
fileNumber | ported | string_value | not in the wheel |
localeOfComposition | ported | string_value | not in the wheel |
librettist | ported | string_value | not in the wheel |
librettists | ported | get | not in the wheel |
lyricist | ported | string_value | not in the wheel |
lyricists | ported | get | not in the wheel |
movementName | ported | string_value | not in the wheel |
movementNumber | ported | string_value | not in the wheel |
number | ported | string_value | not in the wheel |
opusNumber | ported | string_value | not in the wheel |
title | ported | title | not in the wheel |
bestTitle | ported | best_title | not in the wheel |
metadata/__init__.py
crate 0 of 4The numbers music21 caches beside a score's metadata so that its corpus can be searched without parsing every file again.
| music21 | Crate | music21-rs | Wheel |
|---|---|---|---|
merge | missing | takes in another score's cached numbers | not in the wheel |
getSourcePath | missing | where the file sits, relative to the corpus | not in the wheel |
update | missing | works 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 asked | not in the wheel |
all | missing | the cached numbers beside the metadata | not in the wheel |
search/base.py
crate 18 of 18Searching 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.
| music21 | Crate | music21-rs | Wheel |
|---|---|---|---|
streamSearchBase | ported | run_over | in the wheel |
rhythmicSearch | ported | rhythmic_search | in the wheel |
noteNameSearch | ported | note_name_search | in the wheel |
noteNameRhythmicSearch | ported | note_name_rhythmic_search | in the wheel |
approximateNoteSearch | ported | approximate_note_search | in the wheel |
approximateNoteSearchNoRhythm | ported | approximate_note_search_no_rhythm | in the wheel |
approximateNoteSearchOnlyRhythm | ported | approximate_note_search_only_rhythm | in the wheel |
approximateNoteSearchWeighted | ported | approximate_note_search_weighted | in the wheel |
translateStreamToString | ported | translate_stream_to_string | in the wheel |
translateDiatonicStreamToString | ported | translate_diatonic_stream_to_string | in the wheel |
translateIntervalsAndSpeed | ported | translate_intervals_and_speed | in the wheel |
translateStreamToStringNoRhythm | ported | translate_stream_to_string_no_rhythm | in the wheel |
translateStreamToStringOnlyRhythm | ported | translate_stream_to_string_only_rhythm | in the wheel |
translateNoteToByte | ported | translate_note_to_byte | in the wheel |
translateNoteWithDurationToBytes | ported | translate_note_with_duration_to_bytes | in the wheel |
translateNoteTieToByte | ported | translate_note_tie_to_byte | in the wheel |
translateDurationToBytes | ported | translate_duration_to_bytes | in the wheel |
mostCommonMeasureRhythms | ported | most_common_measure_rhythms | in the wheel |
search/base.py
crate 4 of 4A search for a list of terms, each a note name, a length or a wildcard.
| music21 | Crate | music21-rs | Wheel |
|---|---|---|---|
run | ported | run | in the wheel |
wildcardAlgorithm | ported | run_over | in the wheel |
rhythmAlgorithm | ported | rhythmic_search | in the wheel |
noteNameAlgorithm | ported | note_name_search | in the wheel |
search/lyrics.py
crate 4 of 4Searching the words sung in a score, which means indexing them into one text first.
| music21 | Crate | music21-rs | Wheel |
|---|---|---|---|
indexText | ported | index_text | in the wheel |
indexTuples | ported | indexed | in the wheel |
index | ported | indexed | in the wheel |
search | ported | search | in the wheel |
search/lyrics.py
crate 0 of 1| music21 | Crate | music21-rs | Wheel |
|---|---|---|---|
modify | missing | a named tuple's _replace, which is Python's own | in the wheel |
search/segment.py
crate 3 of 8Comparing scores by cutting each part into overlapping segments and matching the strings they make.
| music21 | Crate | music21-rs | Wheel |
|---|---|---|---|
indexScoreFilePaths | missing | indexes the scores at a list of paths, which means reading files | not in the wheel |
indexOnePath | missing | indexes the score at a path, likewise | not in the wheel |
saveScoreDict | missing | writes an index to a file | not in the wheel |
loadScoreDict | missing | reads an index back | not in the wheel |
getDifflibOrPyLev | missing | chooses between two Python libraries for the string comparison; search::difflib is the one difflib.SequenceMatcher ratio, ported | not in the wheel |
translateMonophonicPartToSegments | ported | translate_monophonic_part_to_segments | in the wheel |
indexScoreParts | ported | index_score_parts | in the wheel |
scoreSimilarity | ported | score_similarity | in the wheel |
analysis/reduction.py
crate 2 of 2A note of a reduction, written in a lyric under the note it reduces.
| music21 | Crate | music21-rs | Wheel |
|---|---|---|---|
isParsed | ported | is_parsed | not in the wheel |
getNoteAndTextExpression | ported | note_and_text_expression | not in the wheel |
analysis/reduction.py
crate 3 of 3| music21 | Crate | music21-rs | Wheel |
|---|---|---|---|
score | ported | score | in the wheel |
chordReduction | ported | chord_reduction | in the wheel |
reduce | ported | reduce | in the wheel |
analysis/reduction.py
crate 1 of 2How busy each part of a score is, span by span, which music21 draws as a horizontal bar graph.
| music21 | Crate | music21-rs | Wheel |
|---|---|---|---|
getGraphHorizontalBarWeightedData | missing | the spans arranged for music21's bar graph; weighted_spans is what they say | not in the wheel |
process | ported | weighted_spans | not in the wheel |
analysis/correlate.py
crate 1 of 1What goes with what in a stream: every pitch against the dynamic sounding with it.
| music21 | Crate | music21-rs | Wheel |
|---|---|---|---|
pitchToDynamic | ported | pitch_to_dynamic | in the wheel |
tree/spans.py
crate 4 of 6One element of a stream as the stretch of time it sounds for, which is what a timespan tree holds.
| music21 | Crate | music21-rs | Wheel |
|---|---|---|---|
new | missing | a copy with some of its values changed, which a value type here is made afresh | not in the wheel |
makeElement | missing | the element itself, which an ElementTimespan holds a reference to | not in the wheel |
quarterLength | ported | quarter_length | in the wheel |
measureNumber | ported | measure_number | in the wheel |
getParentageByClass | ported | parentage | in the wheel |
part | ported | part | in the wheel |
tree/spans.py
crate 2 of 6| music21 | Crate | music21-rs | Wheel |
|---|---|---|---|
new | missing | a copy with some of its values changed | not in the wheel |
canMerge | missing | whether two timespans may be joined, which only the tree's own merging asks | not in the wheel |
mergeWith | missing | joins two timespans | not in the wheel |
splitAt | missing | cuts a timespan in two | not in the wheel |
offset | ported | offset | in the wheel |
endTime | ported | end_time | in the wheel |
tree/timespanTree.py
crate 15 of 17Every 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.
| music21 | Crate | music21-rs | Wheel |
|---|---|---|---|
index | missing | where a timespan sits in the tree, which is its place in the list here | in the wheel |
element | missing | the element a timespan holds, which ElementTimespan::element answers | in the wheel |
removeTimespanList | ported | remove_timespan_list | not in the wheel |
removeTimespan | ported | remove_timespan | not in the wheel |
splitAt | ported | split_at | not in the wheel |
toPartwiseTimespanTrees | ported | to_partwise_timespan_trees | not in the wheel |
elementEndTime | ported | end_time | in the wheel |
offset | ported | lowest_position | in the wheel |
findNextPitchedTimespanInSameStreamByClass | ported | next_in_same_part | in the wheel |
findPreviousPitchedTimespanInSameStreamByClass | ported | previous_in_same_part | in the wheel |
getVerticalityAtOrBefore | ported | verticality_at_or_before | in the wheel |
iterateConsonanceBoundedVerticalities | ported | consonance_bounded_verticalities | in the wheel |
iterateVerticalities | ported | verticalities | in the wheel |
iterateVerticalitiesNwise | ported | verticalities_nwise | in the wheel |
unwrapVerticalities | ported | unwrap | in the wheel |
allParts | ported | all_parts | in the wheel |
maximumOverlap | ported | maximum_overlap | in the wheel |
tree/verticality.py
crate 13 of 14Everything sounding at one offset, which is what a chord of a chordified score is made of.
| music21 | Crate | music21-rs | Wheel |
|---|---|---|---|
beatStrength | missing | the 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 meter | not in the wheel |
bassTimespan | ported | bass_timespan | in the wheel |
toChord | ported | to_chord | in the wheel |
measureNumber | ported | measure_number | in the wheel |
nextStartOffset | ported | next_start_offset | in the wheel |
nextVerticality | ported | next | in the wheel |
pitchSet | ported | pitch_set | in the wheel |
pitchClassSet | ported | pitch_class_set | in the wheel |
previousVerticality | ported | previous | in the wheel |
startAndOverlapTimespans | ported | start_and_overlap_timespans | in the wheel |
timeToNextEvent | ported | time_to_next_event | in the wheel |
makeElement | ported | make_element | in the wheel |
getAllVoiceLeadingQuartets | ported | voice_leading_quartets | in the wheel |
getPairedMotion | ported | paired_motion | in the wheel |
tree/analysis.py
crate 3 of 3The timespans one voice sounds in a row, and whether the middle note of three is passed through or stepped away from and back.
| music21 | Crate | music21-rs | Wheel |
|---|---|---|---|
hasPassingTone | ported | has_passing_tone | in the wheel |
hasNeighborTone | ported | has_neighbor_tone | in the wheel |
hasNoMotion | ported | has_no_motion | in the wheel |
tree/fromStream.py
crate 2 of 4Reading a score into timespans.
| music21 | Crate | music21-rs | Wheel |
|---|---|---|---|
listOfTreesByClass | missing | a tree per part per class, which the caller builds of what as_timespans reads | not in the wheel |
makeFastShallowTreeFromSortedStream | missing | a tree of one stream's own elements with nothing nested, built without sorting; the crate sorts once and keeps a list | not in the wheel |
asTree | ported | as_timespans | not in the wheel |
asTimespans | ported | as_timespans | in the wheel |
tree/toStream.py
crate 1 of 2Writing timespans back out as a stream.
| music21 | Crate | music21-rs | Wheel |
|---|---|---|---|
partwise | missing | the timespans written back out as a part each, which is the score they were read from | not in the wheel |
chordified | ported | chordify | not in the wheel |
features/base.py
crate 5 of 5The 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.
| music21 | Crate | music21-rs | Wheel |
|---|---|---|---|
allFeaturesAsList | ported | all_features_as_list | in the wheel |
extractorsById | ported | extractors_by_id | in the wheel |
extractorById | ported | extractor_by_id | in the wheel |
vectorById | ported | vector_by_id | in the wheel |
getIndex | ported | index_of | in the wheel |
features/base.py
crate 0 of 2What one extractor found: the numbers, and what each of them is called.
| music21 | Crate | music21-rs | Wheel |
|---|---|---|---|
prepareVectors | missing | makes room for the numbers before they are worked out, which building one does | not in the wheel |
normalize | missing | divides the numbers by their sum, which Extractor::extract does where the extractor asks for it | not in the wheel |
features/base.py
crate 3 of 7One 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.
| music21 | Crate | music21-rs | Wheel |
|---|---|---|---|
setData | missing | hands the extractor the stream to read, which extract takes as an argument | in the wheel |
fillFeatureAttributes | missing | copies the extractor's own id and name onto the feature it is filling in | in the wheel |
prepareFeature | missing | makes the blank feature and fills its attributes in, which blank answers | in the wheel |
process | missing | the reading itself, which is the row's own function and runs in extract | in the wheel |
getAttributeLabels | ported | attribute_labels | in the wheel |
extract | ported | extract | in the wheel |
getBlankFeature | ported | blank | in the wheel |
features/base.py
crate 8 of 14The 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.
| music21 | Crate | music21-rs | Wheel |
|---|---|---|---|
keys | missing | the names music21 looks a form up by | not in the wheel |
formSetClassHistogram | missing | how often each set class comes, which the extractors that read it work out where they read it | not in the wheel |
formPitchClassSetHistogram | missing | how often each pitch-class set comes, likewise | not in the wheel |
formTypesHistogram | missing | how often each written value comes, likewise | not in the wheel |
formGetElementsByClassMeasure | missing | the measures of the stream, which Stream::measures answers | not in the wheel |
formBeatHistogram | missing | how often each beat strength comes, which the extractor reading it works out | not in the wheel |
formPartitionByInstrument | ported | partition_by_instrument | not in the wheel |
formChordify | ported | chordified_chords | not in the wheel |
formQuarterLengthHistogram | ported | quarter_length_histogram | not in the wheel |
formMidiPitchHistogram | ported | midi_pitch_histogram | not in the wheel |
formPitchClassHistogram | ported | pitch_class_histogram | not in the wheel |
formMidiIntervalHistogram | ported | midi_interval_histogram | not in the wheel |
formContourList | ported | contour_list | not in the wheel |
formSecondsMap | ported | seconds_map | not in the wheel |
features/base.py
crate 1 of 5One 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.
| music21 | Crate | music21-rs | Wheel |
|---|---|---|---|
setupPostStreamParse | missing | the second half of reading the stream in, which building one does in one | not in the wheel |
setClassLabel | missing | the class a subject belongs to for the data set it is in; DataSet::add_data takes it beside the subject | not in the wheel |
getClassValue | missing | that class, likewise | not in the wheel |
getId | missing | the name a subject goes by, which DataSet::add_data takes beside it | not in the wheel |
parseStream | ported | new | not in the wheel |
features/base.py
crate 10 of 12Several subjects run through the same extractors, written out as a table.
| music21 | Crate | music21-rs | Wheel |
|---|---|---|---|
addMultipleData | missing | adds several subjects at once, which is add_data in a loop | in the wheel |
write | missing | writes the table to a file, which the library does not do: to_text is the text to write | in the wheel |
getClassLabel | ported | class_label | in the wheel |
addFeatureExtractors | ported | add_extractors | in the wheel |
getAttributeLabels | ported | attribute_labels | in the wheel |
getDiscreteLabels | ported | discrete_labels | in the wheel |
getClassPositionLabels | ported | class_position_labels | in the wheel |
addData | ported | add_data | in the wheel |
process | ported | process | in the wheel |
getFeaturesAsList | ported | features_as_list | in the wheel |
getUniqueClassValues | ported | unique_class_values | in the wheel |
getString | ported | to_text | in the wheel |
braille/basic.py
crate 27 of 27One element of a score in braille: a note, a rest, a chord, a clef, a signature, a dynamic, a word.
| music21 | Crate | music21-rs | Wheel |
|---|---|---|---|
handlePitchWithAccidental | ported | note_to_braille | not in the wheel |
handleArticulations | ported | note_to_braille | not in the wheel |
handleExpressions | ported | note_to_braille | not in the wheel |
barlineToBraille | ported | barline_to_braille | in the wheel |
chordToBraille | ported | chord_to_braille | in the wheel |
pitchToOctave | ported | pitch_to_octave | in the wheel |
clefToBraille | ported | clef_to_braille | in the wheel |
dynamicToBraille | ported | dynamic_to_braille | in the wheel |
instrumentToBraille | ported | instrument_to_braille | in the wheel |
keySigToBraille | ported | key_sig_to_braille | in the wheel |
metronomeMarkToBraille | ported | metronome_mark_to_braille | in the wheel |
yieldBrailleArticulations | ported | note_to_braille | in the wheel |
noteToBraille | ported | note_to_braille | in the wheel |
restToBraille | ported | rest_to_braille | in the wheel |
tempoTextToBraille | ported | tempo_text_to_braille | in the wheel |
textExpressionToBraille | ported | text_expression_to_braille | in the wheel |
timeSigToBraille | ported | time_sig_to_braille | in the wheel |
showOctaveWithNote | ported | show_octave_with_note | in the wheel |
transcribeHeading | ported | transcribe_heading | in the wheel |
transcribeNoteFingering | ported | transcribe_note_fingering | in the wheel |
transcribeSignatures | ported | transcribe_signatures | in the wheel |
brailleUnicodeToBrailleAscii | ported | braille_unicode_to_braille_ascii | in the wheel |
brailleAsciiToBrailleUnicode | ported | braille_ascii_to_braille_unicode | in the wheel |
brailleUnicodeToSymbols | ported | braille_unicode_to_symbols | in the wheel |
yieldDots | ported | yield_dots | in the wheel |
wordToBraille | ported | word_to_braille | in the wheel |
numberToBraille | ported | number_to_braille | in the wheel |
braille/translate.py
crate 7 of 8A whole score in braille, part by part or on joined staves.
| music21 | Crate | music21-rs | Wheel |
|---|---|---|---|
opusToBraille | missing | every score of an opus one after another, which is score_to_braille of each | in the wheel |
objectToBraille | ported | element_to_braille | in the wheel |
streamToBraille | ported | stream_to_braille | in the wheel |
scoreToBraille | ported | score_to_braille | in the wheel |
metadataToString | ported | metadata_to_string | in the wheel |
measureToBraille | ported | measure_to_braille | in the wheel |
partToBraille | ported | part_to_braille | in the wheel |
keyboardPartsToBraille | ported | keyboard_parts_to_braille | in the wheel |
braille/text.py
crate 11 of 11The page the braille is written onto: its lines, and what may still fit on the one being written.
| music21 | Crate | music21-rs | Wheel |
|---|---|---|---|
showHand | ported | set_show_hand | in the wheel |
addHeading | ported | add_heading | in the wheel |
addLongExpression | ported | add_long_expression | in the wheel |
addToNewLine | ported | add_to_new_line | in the wheel |
appendOrInsertCurrent | ported | append_or_insert_current | in the wheel |
addInaccord | ported | add_inaccord | in the wheel |
addMeasureNumber | ported | add_measure_number | in the wheel |
optionalAddKeyboardSymbolsAndDots | ported | optional_add_keyboard_symbols_and_dots | in the wheel |
addSignatures | ported | add_signatures | in the wheel |
makeNewLine | ported | make_new_line | in the wheel |
recenterHeadings | ported | recenter_headings | in the wheel |
braille/text.py
crate 5 of 5| music21 | Crate | music21-rs | Wheel |
|---|---|---|---|
append | ported | append | in the wheel |
insert | ported | insert | in the wheel |
canAppend | ported | can_append | in the wheel |
canInsert | ported | can_insert | in the wheel |
lastHyphenToSpace | ported | last_hyphen_to_space | in the wheel |
braille/text.py
crate 2 of 2| music21 | Crate | music21-rs | Wheel |
|---|---|---|---|
makeNewLines | ported | make_new_lines | in the wheel |
addNoteGroupings | ported | add_note_groupings | in the wheel |
braille/lookup.py
crate 2 of 3The braille cells music21 writes each thing with, which are tables here rather than dictionaries built at import.
| music21 | Crate | music21-rs | Wheel |
|---|---|---|---|
makeBrailleDictionary | missing | builds music21's dictionary of cells at import; the tables here are written out | in the wheel |
dotsAdd | ported | dots_add | in the wheel |
makePitchNameToNotes | ported | pitch_name_to_note | in the wheel |
braille/segment.py
crate 6 of 10A part cut into the segments braille is written in, each a run of elements that belong together.
| music21 | Crate | music21-rs | Wheel |
|---|---|---|---|
setGroupingGlobals | missing | music21's module-level defaults for a grouping, set the first time one is made; SegmentOptions is what a caller says instead | not in the wheel |
splitMeasure | missing | cuts a measure in two so that the braille fits, which split_note_grouping does of the grouping | not in the wheel |
setAffinityCode | missing | which kind of segment an element belongs in, which extract_braille_elements says as it reads | in the wheel |
areGroupingsIdentical | missing | whether two groupings are the same, which the segment asks of its own | in the wheel |
findSegments | ported | find_segments | in the wheel |
prepareSlurredNotes | ported | prepare_slurred_notes | in the wheel |
getRawSegments | ported | get_raw_segments | in the wheel |
extractBrailleElements | ported | extract_braille_elements | in the wheel |
prepareBeamedNotes | ported | prepare_beamed_notes | in the wheel |
splitNoteGrouping | ported | split_note_grouping | in the wheel |
braille/segment.py
crate 4 of 17One 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.
| music21 | Crate | music21-rs | Wheel |
|---|---|---|---|
addDummyRests | missing | a step of the transcription: the rests that stand before a measure number | in the wheel |
extractMeasureNumber | missing | a step of the transcription | in the wheel |
extractHeading | missing | a step of the transcription: the key, the meter and the tempo over the first measure | in the wheel |
extractInaccordGrouping | missing | a step of the transcription: the voices written one after another | in the wheel |
extractLongExpressionGrouping | missing | a step of the transcription | in the wheel |
showLeadingOctaveFromNoteGrouping | missing | a step of the transcription: whether the first note of a grouping shows its octave | in the wheel |
needsSplitToFit | missing | a step of the transcription: whether a grouping must be split to fit the line | in the wheel |
splitNoteGroupingAndTranscribe | missing | a step of the transcription, which split_note_grouping does the splitting half of | in the wheel |
extractNoteGrouping | missing | a step of the transcription | in the wheel |
addRepeatSymbols | missing | a step of the transcription: the sign for a measure repeated | in the wheel |
extractSignatureGrouping | missing | a step of the transcription | in the wheel |
extractTempoTextGrouping | missing | a step of the transcription | in the wheel |
consolidate | missing | a step of the transcription: the groupings of one kind joined into one | in the wheel |
brailleText | ported | transcribe | in the wheel |
transcribe | ported | transcribe | in the wheel |
addGroupingAttributes | ported | add_grouping_attributes | in the wheel |
fixArticulations | ported | fix_articulations | in the wheel |
braille/segment.py
crate 3 of 5A keyboard part written on joined staves, the two hands' groupings paired.
| music21 | Crate | music21-rs | Wheel |
|---|---|---|---|
extractHeading | missing | a step of the transcription | in the wheel |
extractNoteGrouping | missing | a step of the transcription | in the wheel |
brailleText | ported | transcribe | in the wheel |
yieldCombinedGroupingKeys | ported | combined_keys | in the wheel |
transcribe | ported | transcribe | in the wheel |
alpha/analysis/aligner.py
crate 13 of 14Two 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.
| music21 | Crate | music21-rs | Wheel |
|---|---|---|---|
showChanges | missing | prints the changes, and colours the notes of the score to show them | in the wheel |
getDefaultHasher | ported | default_hasher | in the wheel |
align | ported | align | in the wheel |
makeHashedStreams | ported | align | in the wheel |
setupDistanceMatrix | ported | setup_distance_matrix | in the wheel |
populateDistanceMatrix | ported | populate_distance_matrix | in the wheel |
getPossibleMovesFromLocation | ported | moves_from_location | in the wheel |
getOpFromLocation | ported | op_from_location | in the wheel |
insertCost | ported | insert_cost | in the wheel |
deleteCost | ported | delete_cost | in the wheel |
substitutionCost | ported | substitution_cost | in the wheel |
calculateNumSimilarities | ported | num_similarities | in the wheel |
tupleEqualityWithoutReference | ported | hashes_equal_without_reference | in the wheel |
calculateChangesList | ported | change_places | in the wheel |
alpha/analysis/hasher.py
crate 2 of 7A stream's notes as hashes, each as much or as little of the note as the caller asked to compare.
| music21 | Crate | music21-rs | Wheel |
|---|---|---|---|
setupValidTypesAndStateVars | missing | reads the switches into the state music21 hashes by, which are the fields of a Hasher here | in the wheel |
hashMeasures | missing | the measures hashed one at a time, which is hash_stream of each | in the wheel |
addHashToFinalHash | missing | appends one hash to the list being built | in the wheel |
addNoteHashWithReferenceToFinalHash | missing | appends a note's hash with the note it came from, likewise | in the wheel |
addNoteHashToFinalHash | missing | appends a note's hash, likewise | in the wheel |
setupTupleList | ported | tuple_list | in the wheel |
hashStream | ported | hash_stream | in the wheel |
alpha/analysis/fixer.py
crate 1 of 1Mending one reading of a score against another: the notes within a length, and the fixes themselves.
| music21 | Crate | music21-rs | Wheel |
|---|---|---|---|
getNotesWithinDuration | ported | notes_within_duration | not in the wheel |
alpha/analysis/fixer.py
crate 2 of 3Where the played reading trills or turns and the read one does not, the ornament is written onto the read one.
| music21 | Crate | music21-rs | Wheel |
|---|---|---|---|
addOrnament | missing | writes the ornament onto the read note, which fix does where it finds one | not in the wheel |
findOrnament | ported | find_ornament | not in the wheel |
fix | ported | fix | not in the wheel |
alpha/analysis/fixer.py
crate 2 of 8Where the two readings spell the same sound differently, the played spelling wins.
| music21 | Crate | music21-rs | Wheel |
|---|---|---|---|
isEnharmonic | missing | whether two notes sound alike, which is Pitch::is_enharmonic | in the wheel |
hasAcc | missing | whether a note carries an accidental, which is Pitch::accidental_is_written | in the wheel |
hasNatAcc | missing | whether it carries a natural, likewise | in the wheel |
hasSharpFlatAcc | missing | whether it carries a sharp or a flat, likewise | in the wheel |
stepEq | missing | whether two notes stand on the same step | in the wheel |
stepNotEq | missing | whether they do not | in the wheel |
fix | ported | fix_enharmonics | in the wheel |
intervalTooBig | ported | interval_too_big | in the wheel |
alpha/analysis/ornamentRecognizer.py
crate 1 of 1How long the notes of an ornament last, written out.
| music21 | Crate | music21-rs | Wheel |
|---|---|---|---|
calculateTrillNoteDuration | ported | ornament_note_quarter_length | in the wheel |
alpha/analysis/ornamentRecognizer.py
crate 1 of 1Whether a run of notes is a trill written out, and which trill it is.
| music21 | Crate | music21-rs | Wheel |
|---|---|---|---|
recognize | ported | recognize | in the wheel |
alpha/analysis/ornamentRecognizer.py
crate 2 of 2| music21 | Crate | music21-rs | Wheel |
|---|---|---|---|
isAcceptableInterval | ported | is_acceptable_interval | in the wheel |
recognize | ported | recognize | in the wheel |
alpha/analysis/ornamentRecognizer.py
crate 2 of 2| music21 | Crate | music21-rs | Wheel |
|---|---|---|---|
calculateOrnamentNoteQl | ported | ornament_note_quarter_length | in the wheel |
calculateOrnamentTotalQl | ported | ornament_total_quarter_length | in the wheel |
alpha/analysis/search.py
crate 1 of 1Runs of notes that walk a scale, found in a part.
| music21 | Crate | music21-rs | Wheel |
|---|---|---|---|
findConsecutiveScale | ported | find_consecutive_scale | in the wheel |
omr/correctors.py
crate 13 of 14Mending 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.
| music21 | Crate | music21-rs | Wheel |
|---|---|---|---|
runPriorModel | missing | both models run and the score corrected, which run does | not in the wheel |
run | ported | run | not in the wheel |
getAllHashes | ported | all_hashes | not in the wheel |
getSinglePart | ported | single_part_mut | not in the wheel |
runHorizontalCorrectionModel | ported | run_horizontal_correction_model | not in the wheel |
getMeasureSlice | ported | slice_hashes | not in the wheel |
getAllIncorrectMeasures | ported | all_incorrect_measures | not in the wheel |
verticalProbabilityDist | ported | vertical_probability_dist | not in the wheel |
getVerticalProbabilityDistributionSinglePart | ported | vertical_probability_dist_of_part | not in the wheel |
getVerticalProbabilityDistributionSinglePartSingleMeasure | ported | vertical_probability_dist_of_measure | not in the wheel |
runVerticalSearch | ported | run_vertical_search | not in the wheel |
substituteOneMeasureContentsForAnother | ported | substitute_measure | not in the wheel |
runVerticalCorrectionModel | ported | run_vertical_correction_model | not in the wheel |
generateCorrectedScore | ported | generate_corrected_score | not in the wheel |
omr/correctors.py
crate 6 of 7| music21 | Crate | music21-rs | Wheel |
|---|---|---|---|
getMeasures | missing | the measures of the part, which the Stream it was read from holds | in the wheel |
getIncorrectMeasureIndices | ported | find_incorrect_measures | in the wheel |
getSequenceHashesFromMeasureStream | ported | hashed_notes | in the wheel |
horizontalProbabilityDist | ported | horizontal_probability_dist | in the wheel |
runHorizontalSearch | ported | run_horizontal_search | in the wheel |
runHorizontalCorrectionModel | ported | run_horizontal_correction_model | in the wheel |
getProbabilityDistribution | ported | probability_distribution | in the wheel |
omr/correctors.py
crate 11 of 15One measure as a string, a character a note, so that two measures may be compared as text.
| music21 | Crate | music21-rs | Wheel |
|---|---|---|---|
setSequenceMatcher | missing | keeps Python's own SequenceMatcher on the object; search::difflib is the comparison, ported | in the wheel |
getProbabilityOnEquality | missing | the odds of two measures reading alike, which is the PROBABILITY_ON_EQUALITY constant | in the wheel |
getProbabilityOnOmission | missing | the odds of a note left out, PROBABILITY_ON_OMISSION | in the wheel |
getProbabilityOnAddition | missing | the odds of a note put in, PROBABILITY_ON_ADDITION | in the wheel |
getHashString | ported | measure_hash | in the wheel |
hashNote | ported | hash_note | in the wheel |
hashGrace | ported | hash_grace | in the wheel |
hashRest | ported | hash_rest | in the wheel |
hashQuarterLength | ported | hash_quarter_length | in the wheel |
getMeasureDifference | ported | measure_difference | in the wheel |
getOpCodes | ported | opcodes | in the wheel |
getProbabilityBasedOnChanges | ported | probability_based_on_changes | in the wheel |
differenceProbabilityForOneOpCode | ported | probability_for_one_opcode | in the wheel |
getProbabilityOnSubstitute | ported | probability_on_substitute | in the wheel |
getProbabilityFromOneCharSub | ported | probability_from_one_char_sub | in the wheel |
omr/correctors.py
crate 2 of 2The same measure across every part, which is what a doubtful measure is compared against.
| music21 | Crate | music21-rs | Wheel |
|---|---|---|---|
getSliceHashes | ported | slice_hashes | in the wheel |
runSliceSearch | ported | slice_search | in the wheel |
omr/evaluators.py
crate 2 of 2How well the mending did: a score with mistakes put in on purpose, mended, and compared with the one it was made from.
| music21 | Crate | music21-rs | Wheel |
|---|---|---|---|
evaluateCorrectingModel | ported | evaluate_correcting_model | not in the wheel |
autoCorrelationBestMeasure | ported | auto_correlation_best_measure | not in the wheel |
omr/evaluators.py
crate 4 of 10| music21 | Crate | music21-rs | Wheel |
|---|---|---|---|
debug | missing | music21's switch for printing what it is doing | not in the wheel |
parseAll | missing | reads both scores from their files | not in the wheel |
hashAll | missing | hashes both scores, which building the pair does | not in the wheel |
substCost | missing | what a substitution costs, which the hashes' difference says | not in the wheel |
insertCost | missing | what an insertion costs, which is one everywhere | not in the wheel |
deleteCost | missing | what a deletion costs, likewise | not in the wheel |
getOmrScore | ported | omr | not in the wheel |
getGroundScore | ported | ground | not in the wheel |
minEditDist | ported | min_edit_distance | not in the wheel |
getDifferences | ported | differences | not in the wheel |
audioSearch/__init__.py
crate 14 of 16Hearing a monophonic line: the pitch of each stretch of sound, the lengths they make, and the notes that come of it.
| music21 | Crate | music21-rs | Wheel |
|---|---|---|---|
getFrequenciesFromMicrophone | missing | listens to a microphone, which the library does not do | not in the wheel |
getFrequenciesFromPartialAudioFile | missing | reads part of a file as it is being recorded | not in the wheel |
getFrequenciesFromAudioFile | ported | frequencies_from_wav | not in the wheel |
histogram | ported | histogram | in the wheel |
autocorrelationFunction | ported | autocorrelation_frequency | in the wheel |
prepareThresholds | ported | prepare_thresholds | in the wheel |
interpolation | ported | interpolation | in the wheel |
normalizeInputFrequency | ported | normalize_input_frequency | in the wheel |
pitchFrequenciesToObjects | ported | pitch_frequencies_to_objects | in the wheel |
detectPitchFrequencies | ported | detect_pitch_frequencies | in the wheel |
smoothFrequencies | ported | smooth_frequencies | in the wheel |
joinConsecutiveIdenticalPitches | ported | join_consecutive_identical_pitches | in the wheel |
quantizeDuration | ported | quantize_duration | in the wheel |
quarterLengthEstimation | ported | quarter_length_estimation | in the wheel |
notesAndDurationsToStream | ported | notes_and_durations_to_stream | in the wheel |
decisionProcess | ported | decision_process | in the wheel |
search/serial.py
crate 3 of 8The 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.
| music21 | Crate | music21-rs | Wheel |
|---|---|---|---|
TransposedSegmentMatcher | missing | one of Matching's six kinds rather than a class of its own: Matching::Transposed, which compares the intervals a run makes | in the wheel |
TransformedSegmentMatcher | missing | Matching::Transformed, which compares the rows a transposition, inversion, retrograde or retrograde inversion takes one to the other | in the wheel |
MultisetSegmentMatcher | missing | Matching::Multiset, which compares the pitch classes in any order | in the wheel |
TransposedMultisetMatcher | missing | Matching::TransposedMultiset | in the wheel |
TransposedInvertedMultisetMatcher | missing | Matching::TransposedInvertedMultiset | in the wheel |
ContiguousSegmentOfNotes | ported | ContiguousSegment | in the wheel |
ContiguousSegmentSearcher | ported | ContiguousSegmentSearcher | in the wheel |
SegmentMatcher | ported | SegmentMatcher | in the wheel |
search/serial.py
crate 6 of 7A 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.
| music21 | Crate | music21-rs | Wheel |
|---|---|---|---|
getActiveMatchedRows | missing | two 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 answer | not in the wheel |
startMeasureNumber | ported | start_measure | not in the wheel |
startOffset | ported | start_offset | not in the wheel |
zeroCenteredTransformationsFromMatched | ported | zero_centered_transformations_from_matched | not in the wheel |
originalCenteredTransformationsFromMatched | ported | original_centered_transformations_from_matched | not in the wheel |
readPitchClassesFromBottom | ported | pitch_classes_from_bottom | not in the wheel |
getDistinctPitchClasses | ported | distinct_pitch_classes | not in the wheel |
search/serial.py
crate 1 of 11Every run of a given length in a stream, read in one of music21's ways of reading repetitions, chords in or out.
| music21 | Crate | music21-rs | Wheel |
|---|---|---|---|
getSearchBoundMethod | missing | music21 chooses a method by name for each way of reading repetitions; the crate's one walk takes Repetitions as an argument | not in the wheel |
addActiveChords | missing | a step inside that walk: the crate reads a chord's pitch classes where it meets one | not in the wheel |
searchIncludeAllExclude | missing | one of the twelve methods that choice picks between, which the one walk answers for | not in the wheel |
searchIncludeAllInclude | missing | as searchIncludeAllExclude | not in the wheel |
searchSkipConsecutiveExclude | missing | as searchIncludeAllExclude | not in the wheel |
searchSkipConsecutiveInclude | missing | as searchIncludeAllExclude | not in the wheel |
searchIgnoreAllExclude | missing | as searchIncludeAllExclude | not in the wheel |
searchIgnoreAllInclude | missing | as searchIncludeAllExclude | not in the wheel |
searchRowsOnlyExclude | missing | as searchIncludeAllExclude | not in the wheel |
searchRowsOnlyInclude | missing | as searchIncludeAllExclude | not in the wheel |
byLength | ported | by_length | in the wheel |
search/serial.py
crate 3 of 9The 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.
| music21 | Crate | music21-rs | Wheel |
|---|---|---|---|
getContiguousSegmentsByLength | missing | the searcher's by_length, which find asks for itself | not in the wheel |
findOneIgnoreAll | missing | one of the two branches of music21's find, which it picks by how repetitions are read; the crate's find is the one walk | not in the wheel |
findOneOtherReps | missing | the other branch of find | not in the wheel |
checkSearchedAlready | missing | whether a segment the same as one already searched for is to be passed over, which find keeps as it goes | in the wheel |
normalize | missing | how a run is read before it is compared, which is what Matching says: the pitch classes, the intervals they make, or the row they are | in the wheel |
equalSubset | missing | the comparison Matching decides, which the crate does inside find | in the wheel |
reps | ported | repetitions | in the wheel |
includeChords | ported | include_chords | in the wheel |
find | ported | find | in the wheel |
search/serial.py
crate 6 of 6Module-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.
| music21 | Crate | music21-rs | Wheel |
|---|---|---|---|
labelSegments | ported | label | in the wheel |
labelTransposedSegments | ported | label | in the wheel |
labelTransformedSegments | ported | label | in the wheel |
labelMultisets | ported | label | in the wheel |
labelTransposedMultisets | ported | label | in the wheel |
labelTransposedAndInvertedMultisets | ported | label | in the wheel |
analysis/reduceChords.py
crate 8 of 22A 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.
| music21 | Crate | music21-rs | Wheel |
|---|---|---|---|
alignHockets | missing | a 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 walks | in the wheel |
collapseArpeggios | missing | a 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 reason | in the wheel |
fillBassGaps | missing | a step inside the reduction, as removeZeroDurationTimespans | in the wheel |
fillMeasureGaps | missing | a step inside the reduction, as removeZeroDurationTimespans | in the wheel |
fuseTimespansByPart | missing | a step inside the reduction, as removeZeroDurationTimespans | in the wheel |
qlbsmpConsonance | missing | one of ChordWeight's four, which ChordWeight::of weighs a chord by: this is the one a reduction weighs by | in the wheel |
quarterLengthBeatStrength | missing | one of ChordWeight's four, likewise | in the wheel |
quarterLengthBeatStrengthMeasurePosition | missing | one of ChordWeight's four, likewise | in the wheel |
quarterLengthOnly | missing | one of ChordWeight's four, likewise, and the one computeMeasureChordWeights weighs by when it is handed none | in the wheel |
removeNonChordTones | missing | a step run never takes: it joins the two spans of a passing or neighbour tone, editing that tree likewise | in the wheel |
removeShortTimespans | missing | a step inside the reduction, as removeZeroDurationTimespans | in the wheel |
removeVerticalDissonances | missing | a step inside the reduction, as removeZeroDurationTimespans | in the wheel |
removeZeroDurationTimespans | missing | a 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 walks | in the wheel |
splitByBass | missing | a step inside the reduction, as removeZeroDurationTimespans | in the wheel |
measureSlices | ported | measure_slices | not in the wheel |
sliceWeights | ported | slice_weights | not in the wheel |
keepHeaviestSlices | ported | keep_heaviest_slices | not in the wheel |
run | ported | reduce_chords | in the wheel |
sliceWeight | ported | slice_weight | in the wheel |
isConsonant | ported | is_consonant | in the wheel |
computeMeasureChordWeights | ported | measure_chord_weights | in the wheel |
reduceMeasureToNChords | ported | reduce_measure_to_n_chords | in the wheel |
braille/noteGrouping.py
crate 1 of 1A 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.
| music21 | Crate | music21-rs | Wheel |
|---|---|---|---|
transcribeNoteGrouping | ported | transcribe_note_grouping | in the wheel |
braille/noteGrouping.py
crate 0 of 13The 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.
| music21 | Crate | music21-rs | Wheel |
|---|---|---|---|
translateNote | missing | a branch of the walk | not in the wheel |
translateRest | missing | a branch of the walk | not in the wheel |
translateChord | missing | a branch of the walk | not in the wheel |
translateDynamic | missing | a branch of the walk | not in the wheel |
translateTextExpression | missing | a branch of the walk | not in the wheel |
translateBarline | missing | a branch of the walk | not in the wheel |
translateClef | missing | a branch of the walk | not in the wheel |
optionallyAddDotToPrevious | missing | part of the walk, which writes the dot where the element before it needs one | not in the wheel |
reset | missing | state between groupings, which a function that takes the grouping has none of | in the wheel |
showClefSigns | missing | read off the grouping, as music21's transcriber reads it: BrailleElementGrouping::show_clef_signs | in the wheel |
upperFirstInFingering | missing | read off the grouping, as showClefSigns: upper_first_in_note_fingering | in the wheel |
transcribeGroup | missing | the whole of transcribe_note_grouping | in the wheel |
transcribeOneElement | missing | one turn of that walk | in the wheel |
languageExcerpts/naturalLanguageObjects.py
crate 2 of 4A 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.
| music21 | Crate | music21-rs | Wheel |
|---|---|---|---|
toNote | missing | a note built on what from_language_name read, which is Note::new(pitch) here and is music21's own one-liner | in the wheel |
toChord | missing | a chord built on what it read, as toNote | in the wheel |
generateLanguageDictionary | ported | language_dictionary | in the wheel |
toPitch | ported | from_language_name | in the wheel |
converter/__init__.py
crate 0 of 12Not 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.
| music21 | Crate | music21-rs | Wheel |
|---|---|---|---|
resetSubConverters | missing | the subconverter machinery: the readers are the crate's own, chosen by format | not in the wheel |
registerSubConverter | missing | the subconverter machinery, as resetSubConverters | not in the wheel |
unregisterSubConverter | missing | the subconverter machinery, as resetSubConverters | not in the wheel |
freeze | missing | music21's pickle cache, which the wheel does not keep: every parse reads the file | not in the wheel |
freezeStr | missing | music21's pickle cache, as freeze | not in the wheel |
thawStr | missing | music21's pickle cache, as freeze | not in the wheel |
parseFile | missing | no reason given | in the wheel |
parseData | missing | no reason given | in the wheel |
parseURL | missing | no reason given | in the wheel |
parse | missing | no reason given | in the wheel |
toData | missing | no reason given | in the wheel |
thaw | missing | music21's pickle cache, as freeze | in the wheel |
corpus/__init__.py
crate 0 of 9Not 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.
| music21 | Crate | music21-rs | Wheel |
|---|---|---|---|
getLocalPaths | missing | the local corpus, a setting of music21's environment | not in the wheel |
addPath | missing | the local corpus, as getLocalPaths | not in the wheel |
cacheMetadata | missing | the corpus's metadata bundles, which the wheel does not keep | not in the wheel |
getComposer | missing | a search of the metadata bundles, as cacheMetadata | not in the wheel |
noCorpus | missing | music21's installation without its corpus, which the wheel answers by MUSIC21_RS_CORPUS | not in the wheel |
getCorePaths | missing | no reason given | in the wheel |
getPaths | missing | no reason given | in the wheel |
getWork | missing | no reason given | in the wheel |
parse | missing | no reason given | in the wheel |
Nothing matches that filter.
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.
10 capabilities
| Capability | music21-rs | music21 |
|---|---|---|
| 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 |
ALL constBarTogether enumBarTogether::as_str methodStaffGroup::name_hidden methodStaffGroup::set_abbreviation methodStaffGroup::set_bar_together methodStaffGroup::set_name methodStaffGroup::set_name_hidden methodStaffGroup::set_symbol methodStream::abbreviation_hidden methodStream::add_spanner methodStream::add_staff_group methodStream::end_offset methodStream::ending methodStream::events_mut methodStream::for_each_mut methodStream::from_events methodStream::is_empty methodStream::kind methodStream::layout_width methodStream::leaves methodStream::len methodStream::measure_numbering methodStream::metronome_mark_at methodStream::name_hidden methodStream::number_hidden methodStream::number_suffix methodStream::padding_left methodStream::padding_right methodStream::retain_leaves methodStream::set_abbreviation methodStream::set_abbreviation_hidden methodStream::set_ending methodStream::set_id methodStream::set_kind methodStream::set_layout_width methodStream::set_left_barline methodStream::set_measure_numbering methodStream::set_metadata methodStream::set_name methodStream::set_name_hidden methodStream::set_number methodStream::set_number_hidden methodStream::set_number_suffix methodStream::set_padding_left methodStream::set_padding_right methodStream::set_right_barline methodStream::staff_groups methodStream::streams_of_kind methodStream::with_kind methodStreamElement enumStreamElement::as_stream methodStreamElement::is_note_or_chord methodStreamEvent structStreamEvent::element_mut methodStreamEvent::end_offset methodStreamEvent::priority methodStreamEvent::with_priority methodStreamKind enumStreamKind::as_str methodALL constBeam structBeam::beam_type methodBeam::set_beam_type methodBeam::set_direction methodBeam::set_number methodBeamDirection enumBeamDirection::as_str methodBeamDirection::from_music21_name methodBeamType enumBeamType::as_str methodBeamType::from_music21_name methodBeams::beams_mut methodBeams::feathered methodBeams::fill_levels methodBeams::is_empty methodBeams::len methodBeams::levels_for methodBeams::naive methodBeams::set_beams methodBeams::set_feathered methodJustification enumJustification::as_str methodLEVELS constLyric::clear_text methodLyric::elision_before methodLyric::explicit_identifier methodLyric::explicit_syllabic methodLyric::explicit_text methodLyric::from_raw_text methodLyric::is_hidden methodLyric::set_components methodLyric::set_elision_before methodLyric::set_hidden methodLyric::set_identifier methodLyric::set_justify methodLyric::set_number methodLyric::set_placement methodLyric::set_raw_text methodLyric::set_syllabic methodLyric::unsung methodNAMES constNoteSize enumNoteSize::as_str methodNotehead enumNotehead::as_str methodPlacement enumPlacement::as_str methodStemDirection enumStemDirection::as_str methodSyllabic enumSyllabic::as_str methodTie::set_placement methodTie::set_style methodTie::set_tie_type methodTieStyle enumTieStyle::as_str methodTieType enumTieType::as_str methodLineEnd enumLineEnd::as_str methodLineEnds structMultiRest structOctaveShift structOctaveShift::set_transposing methodOctaveShift::transposing methodPedal structPedalForm enumPedalForm::as_str methodPedalForm::has_line methodPedalObject structPedalObject::kind methodPedalObject::set_placement methodPedalObjectKind enumPedalObjectKind::class_name methodPedalObjectKind::from_class_name methodPedalType enumPedalType::as_str methodSlideType enumSlideType::as_str methodSpanner::arpeggio methodSpanner::arpeggio_mark methodSpanner::complete methodSpanner::ends methodSpanner::glissando_details methodSpanner::id_local methodSpanner::is_empty methodSpanner::kind methodSpanner::len methodSpanner::multi_rest methodSpanner::pedal methodSpanner::pedal_mark methodSpanner::set_arpeggio methodSpanner::set_complete methodSpanner::set_ends methodSpanner::set_glissando_details methodSpanner::set_id_local methodSpanner::set_line_type methodSpanner::set_multi_rest methodSpanner::set_number_of_marks methodSpanner::set_offset methodSpanner::set_pedal methodSpanner::set_placement methodSpanner::set_shift methodSpanner::set_spread methodSpanner::set_stands_in_score methodSpanner::set_unplaced_element methodSpanner::shift methodSpanner::slur methodSpanner::spread methodSpanner::stands_in_score methodSpanner::unplaced_elements methodSpanner::wedge methodSpanner::with_unplaced methodSpannerKind enumSpannerKind::class_name methodSpannerKind::is_wedge methodSpannerKind::numbering_class methodALL constDuration::eighth methodDuration::expression_is_inferred methodDuration::from_type methodDuration::half methodDuration::is_grace methodDuration::quarter methodDuration::set_dot_groups methodDuration::set_dots methodDuration::set_expression_is_inferred methodDuration::set_grace methodDuration::set_linked methodDuration::set_quarter_length methodDuration::set_tuplets methodDuration::whole methodDuration::written_values methodDurationTuple structDurationTuple::silenced methodDurationType enumDurationType::from_music21_name methodDurationType::quarter_length_with_dots methodGrace structGrace::appoggiatura methodGrace::make_time methodGrace::set_make_time methodGrace::set_slash methodGrace::set_steal_time_following methodGrace::set_steal_time_previous methodGrace::slash methodGrace::steal_time_following methodGrace::steal_time_previous methodTuplet::actual methodTuplet::actual_show methodTuplet::augmented methodTuplet::bracket methodTuplet::normal methodTuplet::normal_dots methodTuplet::normal_duration_type methodTuplet::normal_show methodTuplet::ratio methodTuplet::set_actual_show methodTuplet::set_bracket methodTuplet::set_duration_actual methodTuplet::set_duration_normal methodTuplet::set_normal_show methodTuplet::set_placement methodTuplet::set_tuplet_type methodTuplet::tuplet_type methodTuplet::with_normal methodTupletBracket enumTupletNotation structTupletShow enumTupletShow::as_str methodTupletType enumTupletType::as_str methodALL constArpeggioType enumArpeggioType::as_str methodExpression enumExpression::tie_attach methodFermata structFermata::fermata_type methodFermata::set_fermata_type methodFermata::set_shape methodFermata::shape methodFermataType enumFermataType::as_str methodOrnament::appoggiatura_size methodOrnament::auto_scale methodOrnament::is_a methodOrnament::kind methodOrnament::measured methodOrnament::nachschlag methodOrnament::of_kind methodOrnament::set_accidental methodOrnament::set_appoggiatura_size methodOrnament::set_auto_scale methodOrnament::set_delay methodOrnament::set_lower_accidental methodOrnament::set_measured methodOrnament::set_nachschlag methodOrnament::set_number_of_marks methodOrnament::set_placement methodOrnament::set_quarter_length methodOrnament::set_tie_attach methodOrnament::set_upper_accidental methodOrnament::tie_attach methodOrnamentDelay enumOrnamentKind enumOrnamentKind::class_name methodOrnamentKind::from_class_name methodOrnamentKind::has_fixed_size methodOrnamentKind::parents methodRealization::into_notes methodRehearsalMark structRehearsalMark::enclosure methodRehearsalMark::set_content methodRehearsalMark::set_enclosure methodRehearsalMark::set_placement methodTextExpression structTextExpression::set_content methodTextExpression::set_placement methodTurnNote enumEACH constInstrument::class_name methodInstrument::families methodInstrument::headless methodInstrument::highest methodInstrument::in_percussion_map methodInstrument::instrument_id methodInstrument::is_a methodInstrument::kind methodInstrument::kinds methodInstrument::lowest methodInstrument::midi_channel methodInstrument::midi_program methodInstrument::muted methodInstrument::of_kind methodInstrument::part_id methodInstrument::pitched methodInstrument::set_abbreviation methodInstrument::set_headless methodInstrument::set_highest methodInstrument::set_in_percussion_map methodInstrument::set_instrument_id methodInstrument::set_lowest methodInstrument::set_midi_channel methodInstrument::set_midi_program methodInstrument::set_modifier methodInstrument::set_muted methodInstrument::set_name methodInstrument::set_part_abbreviation methodInstrument::set_part_id methodInstrument::set_part_name methodInstrument::set_percussion_pitch methodInstrument::set_pitched methodInstrument::set_sound methodInstrument::set_string_pitches methodInstrument::set_transposition methodInstrument::sound methodInstrument::sounding methodInstrument::transposition methodInstrument::written methodSearchLanguage enumSearchLanguage::as_str methodfor_percussion_key_or_unmapped fnnamed_percussion_sounds fnpercussion_keys fnALL constCertainty enumCertainty::named methodContributor::birth methodContributor::death methodContributor::set_birth methodContributor::set_death methodContributor::set_name methodContributor::set_names methodContributor::set_role methodContributor::unnamed methodDate::certainty methodDate::check methodDate::day methodDate::from_parts methodDate::from_written_unchecked methodDate::month methodDate::set_unchecked methodDate::year methodDateKind enumDateKind::default_relevance methodDatePart enumDatePrimitive::between methodDatePrimitive::dates methodDatePrimitive::kind methodDatePrimitive::of_dates methodDatePrimitive::selection methodDatePrimitive::set_relevance methodDatePrimitive::single methodROLE_ABBREVIATIONS constRelevance enumRelevance::kind methodRelevance::named methodText::data methodText::encoded_by methodText::encoding_scheme methodText::in_language methodText::in_role methodText::is_translated methodText::set_encoding_scheme methodText::set_language methodText::set_role methodText::set_translated methodText::translated methodstrip_certainty fnA0 constA4 constALL_TUNING_SYSTEMS constAN1 constAnyTuningSystem enumAnyTuningSystem::cents_at methodAnyTuningSystem::frequency_at methodAnyTuningSystem::is_adaptive methodC0 constC4 constCN1 constCOMMON_EQUAL_TEMPERAMENTS constCOMMON_TWELVE_TONE_TUNING_SYSTEMS constEQUAL_TEMPERAMENT constHISTORICAL_TEMPERAMENTS constINDIAN_SCALE_NAMES constJAVANESE constOCTAVE_SIZE constQUARTER_TONE constRatio enumRatio::monzo methodRatio::to_fraction methodRatio::with_octaves methodTHAI constTuningSystem enumTuningSystem::cents_at methodTuningSystem::degrees_per_period methodTuningSystem::description methodTuningSystem::display_name methodTuningSystem::edo methodTuningSystem::exact_ratio methodTuningSystem::frequency_at methodTuningSystem::is_keyboard methodTuningSystem::nearest_degree methodTuningSystem::period_cents methodTuningSystem::period_of methodTuningSystem::pitch_at methodTuningSystem::ratio methodTuningSystem::ratio_at methodTuningSystem::repeats_at_the_octave methodWHOLE_TONE constequal_temperament fnDEFAULT_TEMPO_VALUES constMetricModulation::arrow_direction methodMetricModulation::classical_style methodMetricModulation::maintain_beat methodMetricModulation::parentheses methodMetricModulation::set_arrow_direction methodMetricModulation::set_classical_style methodMetricModulation::set_maintain_beat methodMetricModulation::set_new_metronome methodMetricModulation::set_new_referent methodMetricModulation::set_old_metronome methodMetricModulation::set_old_referent methodMetricModulation::set_parentheses methodMetricModulation::set_placement methodMetricModulation::set_transition_symbol methodMetricModulation::transition_symbol methodMetronomeMark::from_text methodMetronomeMark::hidden methodMetronomeMark::number_implicit methodMetronomeMark::parentheses methodMetronomeMark::quarter_length_to_seconds methodMetronomeMark::set_hidden methodMetronomeMark::set_number methodMetronomeMark::set_number_implicit methodMetronomeMark::set_number_sounding methodMetronomeMark::set_parentheses methodMetronomeMark::set_placement methodMetronomeMark::set_referent methodMetronomeMark::sounding_quarter_bpm methodMetronomeMark::text_implicit methodMetronomeMark::with_number_and_text methodMetronomeMark::with_number_sounding methodMetronomeMark::with_referent methodModulationSide enumTempoText structTempoText::is_common_tempo_text methodTempoText::set_placement methoddefault_number_for_text fndefault_text_for_number fninterpolated_offset fnis_common_tempo_text fnALL constArticulation::alternate methodArticulation::bend_alter methodArticulation::display_text methodArticulation::finger methodArticulation::harmonic_type methodArticulation::is_a methodArticulation::kind methodArticulation::length_shift methodArticulation::of_kind methodArticulation::pitch_type methodArticulation::point_direction methodArticulation::pre_bend methodArticulation::release methodArticulation::set_alternate methodArticulation::set_bend_alter methodArticulation::set_display_text methodArticulation::set_finger methodArticulation::set_harmonic_type methodArticulation::set_length_shift methodArticulation::set_number methodArticulation::set_pitch_type methodArticulation::set_placement methodArticulation::set_point_direction methodArticulation::set_pre_bend methodArticulation::set_release methodArticulation::set_substitution methodArticulation::set_symbol methodArticulation::set_tie_attach methodArticulation::set_volume_shift methodArticulation::set_with_bar methodArticulation::substitution methodArticulation::tie_attach methodArticulation::with_bar methodArticulationKind enumArticulationKind::class_name methodArticulationKind::from_class_name methodArticulationKind::has_field methodArticulationKind::parents methodFinger enumChord::diatonic_ascending_order methodChord::empty methodChord::found_bass methodChord::found_inversion methodChord::found_root methodChord::guitar_fingering methodChord::guitar_fingering_with_tuning methodChord::inversion_name_of methodChord::inversion_text_of methodChord::is_empty methodChord::is_sorted_diatonic_ascending methodChord::iter_pitches methodChord::len methodChord::midi_tick_start methodChord::note_for_pitch methodChord::note_for_pitch_mut methodChord::notes_mut methodChord::numeral methodChord::overridden_bass methodChord::overridden_inversion methodChord::overridden_root methodChord::polyrhythm_components methodChord::polyrhythm_ratio_string methodChord::quantization_errors methodChord::remove_named methodChord::remove_redundant_pitch_classes_reporting methodChord::remove_redundant_pitch_names_reporting methodChord::remove_redundant_pitches_reporting methodChord::set_bass methodChord::set_duration methodChord::set_id methodChord::set_inversion_override methodChord::set_midi_tick_start methodChord::set_numeral methodChord::set_quantization_errors methodChord::set_root methodChord::simplify_enharmonics_in_place methodChord::with_duration methodChord::with_numeral methodIntoNotes traitBeamedNote structBeatDivision enumBeatDivision::count methodMAX_NUMERATOR constTimeSignature::accent_partition_quarter_length methodTimeSignature::accent_sequence methodTimeSignature::accent_weight_at_level methodTimeSignature::accent_weight_with methodTimeSignature::accent_weights methodTimeSignature::bar_quarter_length methodTimeSignature::beam_sequence methodTimeSignature::beat_division methodTimeSignature::beat_division_quarter_lengths methodTimeSignature::beat_duration_at methodTimeSignature::beat_quarter_length methodTimeSignature::beat_sequence methodTimeSignature::common methodTimeSignature::cut methodTimeSignature::display_sequence methodTimeSignature::divide_beats methodTimeSignature::favors_compound methodTimeSignature::from_ratio_string methodTimeSignature::is_compound methodTimeSignature::is_hidden methodTimeSignature::is_restated methodTimeSignature::set_accent_sequence methodTimeSignature::set_bar_duration methodTimeSignature::set_beam_sequence methodTimeSignature::set_beat_count methodTimeSignature::set_beat_sequence methodTimeSignature::set_display_sequence methodTimeSignature::set_hidden methodTimeSignature::set_restated methodTimeSignature::set_summed_numerator methodTimeSignature::set_symbol methodTimeSignature::set_symbolize_denominator methodTimeSignature::symbolize_denominator methodTimeSignature::written_bar_duration methodpartition_name fnsnapped_fraction fnDENOM_LIMIT constIntOrFloat enumMUSIC_ORDINAL_NAMES constNearestMultiple structORDINAL_NAMES constOffsetQL enumOffsetQL::to_f64 methodadd_float_precision fnapproximate_gcd fncontiguous_list fncontiguous_runs fndecimal_to_tuplet fndot_multiplier fnfloat_ratio fnfloat_repr fnis_binary_denominator fnis_close fnlimit_denominator fnmixed_numeral fnmixed_numeral_fraction fnnearest_multiple fnnum_to_int_or_float fnop_frac fnordinal_abbreviation fnordinals_to_numbers fnround_to_half_integer fnstr_trim_float fnunit_boundary_proportion fnunit_normalize_proportion fnweighted_index fnPitch::builder methodPitch::frequency_hz_in methodPitch::frequency_hz_tuned methodPitch::from_frequency methodPitch::from_frequency_in methodPitch::from_midi methodPitch::from_name_and_octave methodPitch::from_number methodPitch::from_options methodPitch::from_pitch_class methodPitch::from_pitch_space methodPitch::from_step methodPitch::fundamental methodPitch::pitch_space methodPitch::set_accidental methodPitch::set_accidental_alter methodPitch::set_microtone_cents methodPitch::set_octave methodPitch::set_octave_is_implicit methodPitch::set_spelling_is_inferred methodPitch::set_written_accidental methodPitch::spelling_is_inferred methodPitch::written_accidental methodPitch::written_accidental_mut methodPitchName enumPitchOptions structPitchOptions::build methodPitchOptions::fundamental methodPitchOptions::pitch_space methodChordAlteration structChordAlteration::degree methodChordQuality enumChordSymbol::add_chord_step_modification methodChordSymbol::additions methodChordSymbol::alterations methodChordSymbol::chord_step_modifications methodChordSymbol::extensions methodChordSymbol::from_kind methodChordSymbol::is_no_chord methodChordSymbol::kind methodChordSymbol::kind_text methodChordSymbol::lyrics_mut methodChordSymbol::no_chord methodChordSymbol::omissions methodChordSymbol::parse_music21 methodChordSymbol::set_bass methodChordSymbol::set_chord_step_modifications methodChordSymbol::set_duration methodChordSymbol::set_kind_text methodChordSymbol::set_placement methodChordSymbol::set_root methodChordSymbol::transposed_pitches methodChordSymbol::with_duration methodChordSymbol::with_kind methodchord_symbol_durations fnFUNCTIONALITY_SCORES constFigureTuple structImpliedQuality enumImpliedQuality::correct_semitones methodMinor67Default enumNumeralAlone structPitchFigureTuple structRomanNumeral::added_steps methodRomanNumeral::bracketed_alterations methodRomanNumeral::case_matters methodRomanNumeral::degree methodRomanNumeral::effective_key_of methodRomanNumeral::figure_numbers methodRomanNumeral::figures_notation methodRomanNumeral::figures_written methodRomanNumeral::front_alteration_string methodRomanNumeral::implied_quality methodRomanNumeral::omitted_steps methodRomanNumeral::over_scale methodRomanNumeral::roman_numeral_alone methodRomanNumeral::secondary methodRomanNumeral::seventh_minor methodRomanNumeral::sixth_minor methodRomanNumeral::with_minor_defaults methodRomanNumeral::with_options methodRomanNumeral::written_accidental methodAffinity enumBrailleElement structBrailleElementGrouping structBrailleGrandSegment::english methodBrailleGrandSegment::transcribe_into methodBrailleSegment::english methodHand enumKeyPair typeNoteGroupingTranscriber::transcribe_element methodNoteGroupingTranscriber::transcribed methodSegmentKey structSegmentOptions structSegmentTranscriber structSegmentTranscriber::current methodSegmentTranscriber::into_text methodSegmentTranscriber::keys_mut methodSegmentTranscriber::last_note methodSegmentTranscriber::needs_split_for methodSegmentTranscriber::set_current methodSegmentTranscriber::set_last_note methodSegmentTranscriber::set_previous methodSegmentTranscriber::show_leading_octave_from methodSegmentTranscriber::split_and_transcribe methodSegmentTranscriber::text_mut methodaffinity_code fnIntoNote traitNote::articulations methodNote::articulations_mut methodNote::beams_mut methodNote::expressions methodNote::expressions_mut methodNote::from_number methodNote::from_pitch methodNote::hidden methodNote::lyrics_mut methodNote::midi_tick_start methodNote::quantization_errors methodNote::set_beams methodNote::set_duration methodNote::set_hidden methodNote::set_id methodNote::set_lyric methodNote::set_midi_tick_start methodNote::set_notehead_parenthesis methodNote::set_pitch methodNote::set_quantization_errors methodNote::set_size methodNote::set_stored_instrument methodNote::with_duration methodElementTimespan::is_pitched methodElementTimespan::parent_end_time methodElementTimespan::parent_offset methodFlatten enumHorizontality::timespans methodTimespanTree::all_offsets methodTimespanTree::all_time_points methodTimespanTree::highest_position methodTimespanTree::is_empty methodTimespanTree::len methodTimespanTree::overlap_time_points methodTimespanTree::overlapping methodTimespanTree::position_after methodTimespanTree::position_before methodTimespanTree::source methodTimespanTree::starting_at methodTimespanTree::stopping_at methodTimespanTree::timespans methodVerticality::overlap_timespans methodVerticality::start_timespans methodVerticality::stop_timespans methodVerticality::voice_leading_timespans methodMonzo structMonzo::exponent_of methodMonzo::exponents methodMonzo::from_fraction methodMonzo::from_ratio methodMonzo::inverse methodMonzo::limit methodMonzo::multiply methodMonzo::pow methodMonzo::pythagorean methodMonzo::ratio methodMonzo::unison methodPRIMES constVal structVal::divisions methodVal::entries methodVal::error_cents methodVal::limit methodVal::map methodVal::patent methodVal::reaches methodVal::tempers_out methodTemperament structTemperament::equave methodTemperament::equave_cents methodTemperament::error_cents methodTemperament::from_mapping methodTemperament::from_mapping_rows methodTemperament::from_published methodTemperament::generator_cents methodTemperament::generator_map methodTemperament::map methodTemperament::moments methodTemperament::mos methodTemperament::pattern methodTemperament::period_cents methodTemperament::period_map methodTemperament::periods_per_equave methodTemperament::primes methodTemperament::rank methodTemperament::repeats_at_the_octave methodTemperament::subgroup_name methodTemperament::tempers_out methodcrate::tuningsystem::NamedTemperament::temperament methodMetadata::all_sorted methodMetadata::first_text methodMetadata::is_empty methodMetadataContent enumMetadataMatch structMetadataMatch::field methodMetadataQuery enumMetadataValue structMetadataValue::as_contributor methodMetadataValue::as_date methodMetadataValue::as_text methodMetadataValue::of_contributor methodMetadataValue::of_date methodMetadataValue::of_text methodMetadataValue::with_role methodOLD_MUSIC21_NAMES constSTANDARD_PROPERTIES constValueKind enumunique_name_from_namespace fnunique_name_of_plural fnvalue_kind_of fnPolyrhythm structPolyrhythm::analysis methodPolyrhythm::beat_timings methodPolyrhythm::coincidence_ticks methodPolyrhythm::component_intervals methodPolyrhythm::current_tick methodPolyrhythm::cycle_len methodPolyrhythm::from_time_signature methodPolyrhythm::hit_events methodPolyrhythm::measure_duration methodPolyrhythm::ratio_chord methodPolyrhythm::ratio_frequencies methodPolyrhythm::ratio_pitches methodPolyrhythm::ratio_tones methodPolyrhythm::set_tempo methodPolyrhythm::tempo methodPolyrhythm::tick_duration methodPolyrhythm::with_tempo methodPolyrhythmAnalysis structPolyrhythmEvent structPolyrhythmRatioTone structScalaArchive structScalaArchive::bundled methodScalaArchive::bundled_len methodScalaArchive::bundled_with_failures methodScalaArchive::insert_scale methodScalaArchive::is_empty methodScalaArchive::len methodScalaDegree enumScalaDegree::as_ratio methodScalaDegree::ratio methodScalaDegree::written methodScalaScale::cents_above_root methodScalaScale::degrees methodScalaScale::description methodScalaScale::frequency_at methodScalaScale::from_written_cents methodScalaScale::is_empty methodScalaScale::len methodScalaScale::parse_bytes methodScalaScale::ratio_at methodScalaScale::written_degrees methodLocalCorpus structPATH_KEYS constPlatform enumPlatform::as_str methodPlatform::current methodValue enumaccepted fndebug_level fndefault_root_temp_dir fndefaults fnformat_to_key fnis_accessible fnis_path_key fnis_safe_temp_dir fnread_settings fnsettings_path fnsettings_xml fnxml_reader_type fnALL constDegreeComparison enumHUMDRUM_SOLFEG_SYLLABLES constSOLFEG_SYLLABLES constScaleType enumScaleType::ascending_degrees methodScaleType::beyond_terminus methodScaleType::derive_ranked_by methodScaleType::descending_form methodScaleType::descending_steps methodScaleType::dominant_degree methodScaleType::from_music21_name methodScaleType::is_plagal methodScaleType::music21_descriptive_name methodScaleType::realization_steps methodScaleType::tonic_degree methodSimplification enumSolfegVariant enumEqualDivision structEqualDivision::approximation_of methodEqualDivision::cents_at methodEqualDivision::degrees methodEqualDivision::divisions methodEqualDivision::edo methodEqualDivision::error_at_cents methodEqualDivision::mos methodEqualDivision::nearest_degree methodEqualDivision::of_ratio methodEqualDivision::patent_val methodEqualDivision::period_cents methodEqualDivision::period_ratio methodEqualDivision::ratio_at methodEqualDivision::repeats_at_the_octave methodEqualDivision::step_cents methodEqualDivision::tritave methodTRITAVE_CENTS constALL constKeyEstimate structKeyProfile enumKeyProfile::identifiers methodKeyProfile::minor_weights methodKeyProfile::music21_class_name methodestimate_key_from_chords fnestimate_key_from_chords_with fnestimate_key_from_pitches fnestimate_key_from_pitches_with fnestimate_key_of_stream fnmelodic_line_positions fnmelodic_lines fnpitch_class_distribution fnstream_distribution fnstream_pitch_span fntonal_certainty_from_scores fnPercussionChord::is_empty methodPercussionChord::is_unpitched methodPercussionChord::len methodPercussionChord::with_duration methodPercussionChord::written methodPercussionChord::written_mut methodPercussionNote enumUnpitched structUnpitched::display_name methodUnpitched::display_octave methodUnpitched::display_pitch methodUnpitched::display_step methodUnpitched::displayed_at methodUnpitched::from_display_name methodUnpitched::with_duration methodUnpitched::written methodUnpitched::written_mut methodFullMeasure enumRest::articulations methodRest::articulations_mut methodRest::expressions methodRest::expressions_mut methodRest::full_measure methodRest::hidden methodRest::lyrics_mut methodRest::set_beams methodRest::set_duration methodRest::set_full_measure methodRest::set_hidden methodRest::set_id methodRest::set_lyric methodRest::set_size methodRest::set_step_shift methodRest::step_shift methodALL constClef::is_a methodClef::kind methodClef::lowest_line methodClef::of_kind methodClef::places_pitches methodClef::set_line methodClef::set_lowest_line methodClef::set_octave_change methodClef::set_sign methodClef::sign methodClef::treble methodClefKind enumClefKind::class_name methodClefKind::from_class_name methodClefKind::parents methodMos structMos::brightest_word methodMos::inverted methodMos::large methodMos::small methodMosScale structMosScale::degrees methodMosScale::from_equal_division methodMosScale::generator methodMosScale::is_equal methodMosScale::is_moment_of_symmetry methodMosScale::pattern methodMosScale::steps methodMosScale::word methodOCTAVE_CENTS constmoment_of_symmetry_sizes fnalphabet fnascii_char fnbefore_note_expression fnbinary_dots fnbowing fncell fncells fnclef_prefix fnclef_suffix fnfermata fnfinger_mark fnlength_prefix fnnaturals fnnumber_lower fnnumber_upper fnParenthesesMatch structcamel_case_to_hyphen fncamel_case_to_hyphen_checked fnformat_str fnget_num_from_str fnhyphen_to_camel_case fnis_python_space fnmd5_hex fnnormalize_filename fnparentheses_match fnremove_punctuation fnspace_camel_case fnstr_repr fnstrip_accents fnwhitespace_equal fnDataInstance::analyzed_key methodDataInstance::parts_count methodDataInstance::parts_sounding methodDataInstance::prepared methodExtractor structExtractor::description methodExtractor::dimensions methodExtractor::discrete methodFeature::discrete methodFeature::values methodFeature::vector methodSeconds structValue enumValue::as_float methodValue::is_integer methodEXTENDER constFigure::has_extender methodFigure::set_number methodModifier::written methodNotation structNotation::column methodNotation::extenders methodNotation::figure_strings methodNotation::figures methodNotation::figures_as_written methodNotation::has_extenders methodNotation::modifier_strings methodNotation::modifiers methodNotation::original_modifiers methodNotation::original_numbers methodALL constHistoricalRow structHistoricalRow::row methodIndexedTransformation typeLinkClassification structToneRow::find_transformations methodToneRow::from_pitches methodToneRow::is_empty methodToneRow::len methodToneRow::transformation methodTransformation enumTransformationConvention enumTwelveToneMatrix structTwelveToneMatrix::row methodTwelveToneMatrix::rows methodError enumError::format_error methodError::position methodError::unplaced methodFormatError structFormatError::with_position methodFormatErrorKind enumPlacedError structPosition structPosition::at_tick methodPosition::in_part methodPosition::track methodPosition::with_column methodResult typeInterval::between_notes methodInterval::diatonic_interval_cent_shift methodInterval::from_chromatic methodInterval::from_diatonic methodInterval::from_diatonic_and_chromatic methodInterval::from_semitones methodInterval::generic_number methodInterval::is_implicit_diatonic methodInterval::pythagorean_monzo methodInterval::transpose_pitch_in_place methodInterval::transpose_pitch_with_options methodInterval::whole_semitones methodIntervalDirection enumIntervalDirection::as_int methodBase40Error structBase40Error::message methodDirection enumEQUIVALENTS constINTERVALS constactual_interval fndelta_to_interval fnequivalent fnfrom_pitch fnfrom_pitch_name fnoctave_and_number fnquick_enharmonic_string fnquick_enharmonics fnrepresentation fnMeasureRelationship structPROBABILITY_ON_ADDITION constPROBABILITY_ON_EQUALITY constPROBABILITY_ON_OMISSION constPriorsIntegrationScore structScoreCorrector::into_score methodScoreCorrector::single_parts methodSinglePart::from_part methodSinglePart::incorrect_measures methodSinglePart::index_array methodSinglePart::part_number methodincorrect_measures fnpart_hashes fnprobability_based_on_changes_between fnALL constChainOrder enumHexatonicSystem enumMediant enumMediant::code methodMediant::from_code methodMediantSide enumRespell enumTransform enumTransform::from_symbol methodTransform::parse_chain methodlrp_chain fnsimpler_enharmonics fnCtLabels structCtRule structCtRule::expand_in methodCtRule::measure_groups methodCtSong structCtSong::from_lines methodCtSong::lines methodCtSong::rule methodCtSong::to_part_with methodGroupKind enumMeasureGroup structfrom_clercq_temperley fnfrom_clercq_temperley_with fnDynamicContext enumVolume::from_velocity methodVolume::from_velocity_scalar methodVolume::has_velocity_information methodVolume::realized_dynamic methodVolume::realized_with methodVolume::realized_without_velocity methodVolume::set_velocity methodVolume::set_velocity_is_relative methodVolume::set_velocity_scalar methodVolume::velocity_is_relative methoddynamics_in_force fnrounded_str fnMotionType enumMotionType::as_str methodParallelRequirement enumQuartetOptions structVoiceLeadingQuartet::from_names methodVoiceLeadingQuartet::horizontal_intervals methodVoiceLeadingQuartet::set_key methodVoiceLeadingQuartet::set_pitches methodVoiceLeadingQuartet::vertical_intervals methodVoiceLeadingQuartet::with_key methodverticality_positions_at fnvoice_leading_quartet_positions fnFiguredBassLine::add_chord methodFiguredBassLine::in_key methodFiguredBassLine::in_key_and_time methodFiguredBassLine::is_empty methodFiguredBassLine::len methodFiguredBassLine::set_key_signature methodFiguredBassLine::set_time_signature methodRealization::fallbacks methodRealization::keyboard_style_output methodRealization::of methodRealization::set_keyboard_style_output methodKey::derive_by_degree_of methodKey::from_tonic methodKey::from_tonic_mode methodKey::harmonized_sevenths methodKey::harmonized_triads methodKey::mode methodKey::seventh_chord_from_degree methodKey::tonic_pitch methodKey::triad_from_degree methodKey::with_sharps methodMODES constKeySignature::accidentals_apply_only_to_octave methodKeySignature::description methodKeySignature::from_altered_pitches methodKeySignature::is_non_traditional methodKeySignature::set_accidentals_apply_only_to_octave methodKeySignature::set_altered_pitches methodKeySignature::set_non_traditional methodKeySignature::set_sharps methodKeySignature::try_as_key methodmode_sharps_alter fnpitch_name_to_sharps fnMeterTerminal::flattened methodMeterTerminal::from_partition_string methodMeterTerminal::from_parts_given methodMeterTerminal::from_ratio_string methodMeterTerminal::is_empty methodMeterTerminal::len methodMeterTerminal::partitioned_by_parts methodMeterTerminal::sequence methodMeterTerminal::subdivided_nested_hierarchy_by methodMeterTerminal::with_summed_numerator methodOffsetAlign enumALL constRepeatExpression::kind methodRepeatExpression::set_placement methodRepeatExpression::set_use_symbol methodRepeatExpression::use_symbol methodRepeatExpression::with_text methodRepeatExpressionKind enumRepeatExpressionKind::class_name methodRepeatExpressionKind::from_class_name methodRepeatExpressionKind::has_symbol methodRepeatExpressionKind::text_alternatives methodDirection enumSpelling structTabChord structTabChord::element_as_spelled methodTabChord::spelled methodVersion enumVersion::columns methodVersion::from_number methodVersion::read_columns methodfigured_bass_of fnto_tsv_with_extra fnChordWeight enumChordWeight::named methodChordWeight::of methodKeptChord structReductionOptions structSliceWeigher structSliceWeigher::weigh methodWeighedChord structinterval_class_set fnreduced_measure_places fnSUB_CONVERTERS constSubConverter structVALID_AUTO_DOWNLOAD constVALID_SHOW_FORMATS constVALID_WRITE_FORMATS constfind_format fnfind_format_ext_url fnfind_input_extension fnregularize_format fnsub_converter_for_format fnSieve::contains methodSieve::from_segment methodSieve::intersection methodSieve::interval_widths methodSieve::segment_binary methodSieve::segment_unit methodSieve::segment_widths methodSieve::shifted methodSieve::symmetric_difference methodSieve::union methodPartActivity structPartGroup structReductiveNote::measure_index methodReductiveNote::measure_offset methodReductiveNote::parameters methodReductiveParameters structScoreReduction::set_chord_reduction methodScoreReduction::set_score methodWeightedSpan structALL constBarline::set_bar_type methodBarlineType enumBarlineType::as_str methodEnding::number_text methodEnding::starts methodEnding::stops methodRepeatDirection enumRepeatDirection::as_str methodAPPEND_SPANNERS constELEMENT_SEARCH constGATHER_SPANNERS constMETER_DIVISION constMember typeMemberValue enumOFFSET_SPECIAL constORNAMENT_DELAY consthex_numbers fnChange structChangeOp enumChangePlace structStreamAligner::align_hashed methodStreamAligner::changes_count methodStreamAligner::with_hasher methodfill_distance_matrix fnsimilarity_score fnAUDIO_CHUNK_LENGTH constJoinedNote structRECORD_SAMPLE_RATE constREST_FREQUENCY constTranscribedNote structjoined_pitches fnmonophonic_stream_from_wav fntranscribed_notes fnConsecutive structPossibility typePossibilityPair typeSegment::from_pitch_names methodSegment::max_pitch methodSegment::num_parts methodSegment::overlaid methodSegment::pitches_above_bass methodDEFAULT_TICKS_PER_QUARTER constMidiNote structMidiNote::with_channel methodmidi_notes_from_stream fnread_midi_bytes fnread_midi_bytes_with_tempo fnstream_from_midi_notes fnwrite_midi_bytes fnLengthType enumLengthType::as_str methodVariant::contents methodVariant::contents_mut methodVariant::from_stream methodVariant::groups_mut methodVariant::named methodVariant::set_replacement_quarter_length methodCHORDAL constEnharmonicRules structEnharmonicRules::alteration_penalty methodEnharmonicRules::aug_dim_penalty methodEnharmonicRules::mixture_penalty methodMELODIC constbest_choice fnDynamic::english_name methodDynamic::from_scalar methodDynamic::long_name methodDynamic::set_placement methodDynamic::set_value methodDynamic::set_volume_scalar methodSHORT_NAMES constLANGUAGE_CODES constTrigram::add_words methodTrigram::distance methodTrigram::from_text methodTrigram::from_words methodknown_trigram fnlanguage_name fnHarm structHarm::alternative methodHarm::attribute methodHarm::implied methodHarm::intervals methodHarm::roman_figure methodHarm::secondary methodStyleValue enumStyleValue::read methodTextStyle::set_align_horizontal methodTextStyle::set_align_vertical methodTextStyle::set_font_style methodTextStyle::set_font_weight methodTextStyle::set_justify methodabc_chord fnabc_duration fnabc_note fnabc_rest fnpitch_name_from_abc_note fnpitch_names_from_abc_chord fnEnharmonicFix enumOrnamentFixer::fixed methodOrnamentFixer::trills methodOrnamentFixer::turns methodRecognizer enumenharmonic_fix fnGuitarFingering structGuitarStringFingering structGuitarTuning structGuitarTuning::standard methodGuitarTuning::strings methodGuitarTuningString structCSS_COLORS constDIVISIONS_PER_QUARTER constExportOptions structMUSICXML_VERSION constcss_color_hex fnto_musicxml fnALL constFunctionDetail enumHarmonicFunction enumHarmonicFunction::from_symbol methodHarmonicFunction::main_function methodNoteContext structTranscription structbraille_articulations fnchord_symbol_to_braille fntempo_to_braille fnAugmentedSixth enumAugmentedSixth::from_number methodAugmentedSixth::of methodChordInfo structChordInfo::of methodALL constFiguredBassMode enumFiguredBassScale::mode methodFiguredBassScale::with_key_signature methodFiguredBassScale::with_scale methodLayout enumLayout::class_name methodStaffType enumStaffType::as_str methodTenths enumBASE12_EQUIVALENTS constBASE12_INTERVALS constBASE26_EQUIVALENTS constBASE26_INTERVALS constnamed fnALL constBluesForm enumWeightedHexatonicBlues structWeightedHexatonicBlues::form_for_seed methodWeightedHexatonicBlues::sample methodStepScale structStepScale::cyclical_of methodStepScale::octave_repeating_of methodStepScale::sieve_by methodStepScale::steps methodAdaptiveTuningSystem enumAdaptiveTuningSystem::cents_at methodAdaptiveTuningSystem::cents_vs_fixed_at methodAdaptiveTuningSystem::frequency_at methodRECURSIVE_JI constJust structReference structReference::a440 methodReference::hertz methodTuning traitHashReference structHashValue enumHasher::hash_value methodNoteHash structPitchAttribute enumRunDirection enumScaleRun structScaleRunOptions structWindowStep enumWindowType enumWindowedAnalysis::minimum_windows methodWindowedAnalysis::window_count methodBrailleText::add_measure_number_value methodBrailleText::current_line methodBrailleText::render methodBrailleTextLine::cells methodDEBUG_ALL constDEBUG_DEVEL constDEBUG_OFF constDEBUG_USER constDEFAULT_MAX_PITCH constItalianSixth structItalianSixth::from_chord methodItalianSixth::of methodMAX_MEASURES constQUANTIZATION_DIVISORS constmake_measures_by fnop_frac fnBreak enumBreak::class_name methodfrom_volpiano fnto_volpiano fncleaned_flat_notation fnmissing_import_message fnplatform_name fnTimer structTimer::elapsed methodTimer::stop methodcpus fncpus_for fnupdate_positions fnMAX_UNCOMPRESSED_BYTES constread_limited fnclean_path fnlast_parent_dir fnJSYMBOLIC constextractor fnNATIVE constextractor fnLilyOptions structto_lilypond fnEvaluation structOmrGroundTruthPair::omr_mut methodfrom_roman_text fnto_roman_text fnpitch_to_dynamic_counts fnKeyAnalyzer::measure_count methodbeat_depths fnBrailleOptions structfrom_capella fnread_address fnclass_to_class_str fndeprecation_message fnRules structfrom_humdrum fnfrom_mei fnfrom_musedata fnfrom_noteworthy fnARTICLES constfrom_tiny_notation fnCounts 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.