music_notes 0.13.0
music_notes: ^0.13.0 copied to clipboard
Comprehensive set of utilities for working with music theory concepts.
0.13.0 #
- fix(note)!: 💥 remove
semitoneschromatic modulo #265 - feat(positioned_note): ✨ add respelling methods #266
- feat(frequency)!: ✨ improve
closestPositionedNoteenharmonic spelling #267 - feat(frequency): ✨ add
harmonicsrelated methods #268 - feat(frequency): ✨ add
displayStringextension method onClosestPositionedNote#269 - docs(README): 📖 update recently added methods #270
- feat(positioned_note): ✨ rename frequency method and expose
tuningSystem#271 - feat(interval)!: ✨ include
notesindistanceBetweenrecord #272 - chore(deps): ⬆️ bump actions/cache from 3.3.1 to 3.3.2 #274
- chore(deps): ⬆️ bump coverallsapp/github-action from 2.2.1 to 2.2.3 #275
- chore(deps): ⬆️ bump actions/checkout from 3.6.0 to 4.0.0 #276
- docs(README): 📖 fix CI badge #277
- chore(deps): ⬆️ bump dart-lang/setup-dart from 1.5.0 to 1.5.1 #278
- chore(deps): ⬆️ bump actions/checkout from 4.0.0 to 4.1.0 #279
- refactor(chordable): ♻️ expect a
SetforreplaceSizes#280 - perf(scalable): ⚡️ rewrite extension methods to return
Iterable#281 - refactor(scalable): ♻️ override
differenceand implement inPitchClass#283 - refactor(interval_class): ♻️ rewrite
Interval.fromSemitonesQualityasresolveClosestSpelling#284 - docs(note): 📖 improve overall methods documentation #288
- refactor(interval): ♻️ call
fromDeltainfromSemitonesconstructor #289 - refactor(quality): ♻️ move
fromIntervalintoInterval.fromQualityDelta#290 - feat(note): ✨ add
isEnharmonicWithmethod #291 - refactor(test): ♻️ create a
SplayTreeSetof a Set instead of a List #292 - refactor(int_extension): ♻️ extract
nonZeroSignmethod #293 - docs(positioned_note): 📖 address documentation examples #295
- perf(key_signature): ⚡️ remove unneeded variable declaration in
tonality#294 - chore(deps): ⬆️ bump dart-lang/setup-dart from 1.5.1 to 1.6.0 #296
- docs: 📖 remove type parameter references in doc comments #297
- docs(note): 📖 use regular comments for variables #298
- chore(deps): bump actions/checkout from 4.1.0 to 4.1.1 #299
- feat(tuning): ✨ introduce new
Ratio,Centand move.centsto former class #300 - refactor(tuning_system)!: ♻️ move
referenceNotetoTuningSystem#301 - feat(tuning)!: 💥 add
PythagoreanTuningtuning system #273
Full Changelog: v0.12.0...v0.13.0
0.12.0 #
- ⚡️ perf(chord_pattern): call
sortinstead of creating aSplayTreeSetin #232 - ♻️ refactor(chord): reuse
augmented,major,minor,diminishedmethods fromChordPatternin #233 - ♻️ refactor(scalable): extract private
_ScalableIterableextension in #234 - 📖 docs(music_notes): add library-level documentation comment in #235
- ♻️ refactor: sort members following
diminished..augmentedorder in #236 - 📖 docs: add full public member API documentation in #237
- ✨ feat(interval)!: simplify
toStringandQuality.abbreviationin #238 - 🥅 feat(quality): strengthen
parseexception cases in #239 - 🥅 feat(positioned_note): strengthen
parseexception cases in #240 - ♻️ refactor(iterable): rename
comparatorvariable in #241 - ♻️ refactor(positioned_note): extract
octavevariable inparseto improve readability in #242 - ✨ refactor(pitch_class)!: rename
EnharmonicNote→PitchClassin #244 - ✨ feat(pitch_class): add
integerNotationgetter in #245 - ✨ feat(pitch_class): move modulo operation to the constructor in #246
- ✨ feat(interval_class)!: rename
EnharmonicInterval→IntervalClassin #247 - ♻️ refactor(int_extension): simplify modulo methods in #249
- ♻️ refactor(enharmonic): remove unnecessary interface in #250
- 💥 feat(tuning_system): generalize
centsmethod expectingratioinstead ofsemitonesin #251 - 🚀 feat(frequency): add
closestPositionedNotemethod in #252 - ♻️ refactor(positioned_note): rename
equalTemperamentFrequencyreference parameters consistently in #253 - ✨ feat: add
toPitchClassandtoIntervalClassmethods in #254 - ♻️ refactor(base_note): rewrite
transposeBySizeusingincrementByin #255 - ♻️ refactor(chord_pattern): rename
fromIntervalStepsfactory constructor in #257 - ♻️ refactor(scalable): rename
_intervalStepsgetters from_ScalableIterablein #258 - ⚡️ perf(interval_class): remove unnecessary
abscall onoperator *in #259 - ✨ feat(accidental): add
operator +-in #260 - ⚡️ perf: rewrite
mapcalls in favor offorloops in #261 - ⬆️ chore(deps): bump actions/checkout from 3.5.3 to 3.6.0 in #263
- 📖 docs(README): write comprehensive API walkthrough in #243
Full Changelog: v0.11.1...v0.12.0
0.11.1 #
- 📌 chore(pubspec): downgrade
testto 1.24.1 to keep Flutter compatibility in #231
Full Changelog: v0.11.0...v0.11.1
0.11.0 #
- 📄 docs(README): update license badge in #207
- 📖 docs(README): fix typo in C♯ example in #208
- ♻️ refactor(positioned_note)!: make
octaveargument required in #209 - 📖 docs(note): update missing
inOctaveexamples in #210 - ♻️ refactor: use
incrementBymethod in #211 - ♻️ refactor(interval): remove redundant
Scalable<T>types in #212 - 📖 docs(scale): fix wrong
functionChordexamples in #213 - ✨ feat(note): add
respellByBaseNoteDistancemethod in #214 - ✨ feat(enharmonic): allow providing
distancetospellingsin #215 - ♻️ refactor(accidental): extract parsable symbols from
parsein #216 - chore(deps): bump coverallsapp/github-action from 2.2.0 to 2.2.1 in #217
- ✨ feat(enharmonic): remove semitones from
toStringoutput in #218 - ✨ feat(enharmonic): use pipe
|intoStringoutput in #219 - 💥 refactor(note)!: rewrite semitones starting from 0 instead of 1 in #220
- ⚡ perf(positioned_note): extract
parseexpressions to static finals in #221 - 💥 feat(interval)!: move
isDissonantgetter fromIntervalSizeExtensionin #222 - ♻️ refactor(interval)!: move
invertedlogic fromIntervalSizeExtensionin #223 - ♻️ refactor(interval): move
simplifiedfromIntervalSizeExtensionin #224 - ♻️ refactor(interval): move
isCompoundfromIntervalSizeExtensionin #225 - 📖 docs(interval_size_extension): improve
semitonesandisPerfectcomments in #226 - 📌 chore(pubspec): downgrade
collectionto 1.17.1 to keep Flutter compatibility in #228 - ➖ chore(pubspec): remove
dart_code_metricsdependency in #229 - 💥 refactor(interval)!: rewrite
IntervalSizeExtensionmethods as private in #227
Full Changelog: v0.10.1...v0.11.0
0.10.1 #
- ✨ feat(interval): take
distancesign into account incircleFromin #199 - ✨ feat(enharmonic_note): add pitch-class multiplication operator in #200
- ♻️ refactor(base_note): rename
fromSemitonesstatic method in #201 - 🔥 refactor(enharmonic_note)!: remove
shortestFifthsDistancemethods in #202 - ✨ feat(tuning_system): add class and test cases in #203
- 📖 docs(README): write main library documentation in #204
- ⬆️ chore(pubspec): pin dependencies versions in #205
- 📖 docs(README): remove publisher badge in #206
Full Changelog: v0.10.0...v0.10.1
0.10.0 #
Note: the published versioned erroneously contained some changes from 0.10.1.
- ♻️ refactor(interval): rename shorter static constants in #177
- ✨ feat(string_extension): add
isUpperCaseandisLowerCasegetters in #179 - ✨ feat: add
parsefactory constructors to Note and Interval classes in #180 - 🔧 chore(dependabot): add configuration file in #181
- ⬆️ chore(deps): bump actions/checkout from 3.5.0 to 3.5.3 in #182
- ⬆️ chore(deps): bump coverallsapp/github-action from 2.0.0 to 2.2.0 in #183
- 💥 feat(key_signature)!: rewrite based on a list of Notes in #184
- ♻️ refactor(key_signature): declare static
emptyconstant in #185 - ♻️ refactor(key_signature): simplify tonality methods in #186
- 🐛 fix(note): return correct distance for extreme Note spellings in #187
- ⚡ perf(interval): rewrite
distanceBetweenmethod avoiding unnecessary iterations in #188 - ♻️ refactor(base_note): rewrite
parsemethod usingbyNamein #189 - ✨ feat(note): add respelling methods in #190
- ✨ feat(note): add
respelledSimplegetter in #191 - ✨ feat(int_extension): add
incrementBymethod in #192 - ✨ feat(interval): add
circleFromand related methods onNotein #193 - ✨ feat(interval): add
respellBySizemethod in #195 - ✨ feat(key_signature)!: rewrite
toStringmethod in #196 - ♻️ refactor(analysis): enable ignored lints in #197
- ✨ feat(interval): rewrite distance methods expecting
Scalablearguments in #198
Full Changelog: v0.9.0...v0.10.0
0.9.0 #
- fix(scale): take descending items into account for
hashCodein #151 - test(note): add test cases for
sharp,flat,major,minorgetters in #152 - test(enharmonic): move each
toStringtest cases to implementation in #153 - feat(harmony): add
ChordandChordPatternclasses in #154 - fix(positioned_note): use correct
hashCodevalues in #155 - fix(interval_size_extension): return correct
semitonesfor large intervals in #156 - fix(note): correctly handle compound intervals in
transposeByin #157 - feat(chord): implement
Transposablein #158 - feat(chord_pattern): add
intervalStepsfactory constructor in #159 - test(interval): add compound intervals test cases for
semitonesin #160 - feat(interval): add
simplifiedgetter in #161 - refactor: rename
from→onin #162 - feat(note): add Chord triad getters in #163
- feat(scale): add
ScaleDegreeclass and methods onScalein #164 - feat(chord_pattern): add
fromQualityfactory constructor in #165 - feat(scale_degree): add
raised,lowered,major, andminorgetters in #167 - feat(scale_pattern): take
ScaleDegree.qualityinto account indegreePatternin #166 - feat(scale_pattern): add
fromChordPatternfactory constructor in #168 - feat(scale): add
degreeand renamedegreeChordmethods in #169 - refactor(scale): rename
items→degreesin #170 - refactor(scale_degree): rename
degree→ordinalin #171 - refactor(scale_pattern): extract helper functions to simplify
degreePatternmethod in #172 - feat(chord_pattern): add
augmented,major,minor, anddiminishedgetters in #173 - fix(chord): correctly identify compound intervals in
patterngetter in #174 - feat(harmony): make
Chordimplement extractedChordablemixin methods in #175 - chore(pubspec): bump version 0.9.0 in #178
- feat(harmonic_function): add class and
Scalemethod in #176
Full Changelog: v0.8.0...v0.9.0
0.8.0 #
- refactor(scale_pattern): rename class in #128
- refactor(scale_pattern): rename test file in #129
- feat(frequency): add
+,-,*,/operators in #130 - test(interval_size_extension): add test cases for large
semitonesin #131 - feat(interval): show quality semitones on
nullabbreviation intoStringin #133 - feat(base_note)!: remove support for
intervalSizeisDescendingargument in #134 - feat(scalable): add abstract interface with
intervalmethod in #135 - feat(interval): add
+operator in #136 - fix(scale_pattern): check for
descendingIntervalStepsin==in #137 - feat(scale_pattern): include descending steps in
toStringin #138 - fix(scale_pattern): return
mirroredScale with descending steps in #141 - feat(scale)!: add new class with
patternandreversedgetters in #139 - fix(scale_pattern): return correct descending
PositionedNotescale infromin #142 - refactor(scalable): move to root
libdirectory in #143 - feat(enharmonic_interval): add
isDescending,descendingmethods in #144 - test(enharmonic_interval): add test cases for
isDescending,descendingmethods in #145 - chore(pubspec): bump versions as of
very_good_analysis5.0.0+1 in #146 - feat(positioned_note): add reference
noteforequalTemperamentFrequencyin #147 - refactor(note): rename
fifthsDistanceWithmethod in #148 - test(note): reference failing tests related to #149 in #150
Full Changelog: v0.7.0...v0.8.0
0.7.0 #
- refactor: Extract Frequency in #112
- refactor: normalize
isNegativecondition in #116 - feat(frequency): override
toString,==,hashCode, andcompareTomethods in #117 - feat(frequency): assert positive
hertzvalue in #118 - refactor(positioned_note)!: use
Frequencyas a reference in #119 - refactor: remove
MusicIteminterface in #115 - refactor: PositionedNote composition with Note instead of inheritance in #113
- test(positioned_note): add more test cases for
semitonesFromRootHeightin #120 - refactor(transposable): add generic constraint in #99
- refactor(base_notes): rename
Notes→BaseNotein #121 - refactor(enharmonic_note): remove redirecting method on
enharmonicIntervalDistancein #122 - refactor!: consistently rename
isDescendingin #123 - feat(note): add Tonality
majorandminorgetters in #124 - refactor(base_note): rename
transposeBySizemethod in #125 - docs(note): migrate missing
PositionedNotedocumentation in #126 - feat(note): add
sharp,flatgetters in #127
Full Changelog: v0.6.0...v0.7.0
0.6.0 #
- refactor(interval): extract and reuse
_sizeAbsShiftgetter in #97 - refactor(mode): rename
comparestatic method in #98 - feat(positioned_note)!: allow passing
a4HertzstoisHumanAudibleAtin #100 - feat(note): add
circleOfFifthsDistancegetter in #101 - feat(note): add
compareByFifthsDistancestatic comparator in #102 - feat(interval): add
descendingmethod in #103 - feat(scale): add
descendingIntervalStepsin #104 - chore: bump versions as of Dart SDK 3.0 in #105
Full Changelog: v0.5.1...v0.6.0
0.5.1 #
- feat(scale): allow passing
EnharmonicNotetofromNotein #91 - fix(enharmonic_interval): handle descending intervals in
itemsin #92 - refactor(quality)!: rename
doubletodoublyin #93 - refactor(enharmonic): rename
items→spellingsin #94 - fix(interval_size_extension): address
simplifiedcompound interval sizes in #95 - feat(interval): show simplified interval in
toStringin #96
Full Changelog: v0.5.0...v0.5.1
0.5.0 #
- feat(enharmonic_interval): suppress semitones limit in #64
- perf(interval): simplify
isPerfectlogic in #65 - refactor(accidental): rewrite
symbolgetter using explanatory variables in #66 - feat(int_interval_extension): allow compound intervals in
fromSemitonesin #67 - feat(enharmonic_interval)!: rewrite distance
semitonesstarting from 0 in #68 - refactor(enharmonic_interval): change
Transposablewith add/subtract operators in #69 - feat(note): implement
Transposablein #70 - refactor(interval): add static const constructors in #71
- feat(scale): add class and
fromNotemethod in #72 - feat(interval)!: change
descendingwith negativesizein #73 - refactor(interval_size_extension): rename extension in #74
- feat(interval): add negation and multiplication operators in #75
- feat(key_signature): throw an assertion error when passing a wrong
Accidentalin #77 - feat(scale): add
mirrored,namemethods and override==in #79 - feat(mode)!: rewrite
Modeenums in #78 - feat(tonality): add
scaleNotesgetter in #80 - feat(positioned_note): override
transposeBymethod in #81 - docs: add Wikipedia links to
ScaleandModein #82 - feat(mode)!: use
brightnessas the Dorian Brightness Quotient in #83 - refactor(positioned_note): improve
helmholtzNamegetter legibility in #84 - refactor: replace
quiverpackage with nativeObject.hashin #85 - chore(vscode): add
.lockfile association with YAML in #86 - feat(interval): add
isDescendinggetter in #87 - test(interval): add more test cases for descending
Intervalin #76 - refactor: replace
EnharmonicNotewithNotefortransposeByin #88 - fix(key_signature): use XOR in 0 accidentals assertions in #89
- refactor(note): rewrite
fromRawAccidentalsintoKeySignature.majorNotein #90
Full Changelog: v0.4.0...v0.5.0
0.4.0 #
- test: consistently group test cases by content in #22
- fix(enharmonic_note): address edge cases for
itemsgetter in #23 - feat(accidental): bring
incrementmethod back in #24 - test: add test cases for
toStringmethods in #25 - test(key_signature): add test cases for
tonalitiesgetter in #26 - test(key_signature): add test cases for
fromDistancemethod in #27 - feat: implement and test Comparable in #28
- feat(accidental): show positive sign in
toStringin #29 - feat(key_signature): remove × sign in
toStringin #30 - test(music): add test case for
circleOfFifthsin #31 - test(enharmonic): add test cases for
toStringin #32 - test(interval): add test cases for
toStringin #33 - test(enharmonic_interval): add test cases for
transposeByin #34 - refactor(music_item): implement
Comparableand mark as immutable in #35 - test: compare
.hashCodeSet as a List in #36 - feat(tonality): improve
compareTosorting by note and mode in #37 - test(interval): add test cases for interval-related members in #39
- feat(intervals): add
isCompoundgetter in #40 - test(intervals): add test cases for
fromSemitonesin #41 - feat!: rewrite
Qualitiesenum with properQualityclass in #42 - feat(intervals): add
isDissonantgetter in #43 - refactor(enharmonic_interval): add static const constructors in #44
- feat(interval)!: replace
Intervalsenum withintvalue in #45 - docs: document
Qualityclass and rewrite Example consistently in #46 - feat(accidental): add
namegetter in #47 - feat(enharmonic_note): add
toClosestNotemethod in #48 - fix(note): simplify
fromRawAccidentalsaccidental increment in #49 - refactor(quality): move
qualityFromDeltatoQuality.fromIntervalfactory constructor in #51 - refactor(interval): move
EnharmonicInterval.fromDesiredSemitonesin #52 - test(interval): add test cases for
invertedin #53 - refactor(notes): address
intervalSizedescending logic in #54 - test(note): add test cases for
differencein #55 - refactor(tonality): add static const constructors in #56
- feat(note): add
octavemember in #57 - feat(note): add scientific and Helmholtz notation getters in #58
- feat(note): add
equalTemperamentFrequencyin #59 - feat(note): add
isHumanAudiblemethod in #60 - refactor(positioned_note): move
Notemethods to subclass in #61 - test(tonality): add test cases for
relative,keySignaturemethods in #62 - refactor(music_item): remove unnecessary private constructors in #63
Full Changelog: v0.3.0...v0.4.0
0.3.0 #
- chore: bump versions as of Dart SDK 2.19 in #7
- refactor(accidental): rewrite new
Accidentalclass in #8 - docs: reference new
Accidentalclass instead of enum in #9 - refactor: make
Accidental.naturaldefault in #10 - refactor(enharmonic): rewrite based on
semitonesin #11 - refactor(notes): rename notes using the English convention in #12
- refactor(accidental): rename
value→semitonesin #13 - refactor(note): add static const constructors in #14
- refactor(src): reorganize directories by content in #15
- refactor: rewrite
enummembers in #16 - refactor(relative_tonalities): remove class in #17
- refactor(int_mod_extension): rewrite mod functions into extension methods in #18
- refactor(note): move fifths distance functions to class methods in #19
- perf(tests): run tests from index
main.dartfile in #20 - chore(pubspec): bump version 0.3.0 in #21
Full Changelog: v0.2.0...v0.3.0
0.2.0 #
Music #
- (feat) Add
hashCodemethods 528010d
Note
- (fix) Add
fromRawAccidentalsmethod 5c2f663
Accidentals
- (feat) Added methods for incrementing and decrementing Accidentals value 54c107e 092a5fc
- (feat) Added Accidentals symbols 9ebbd18
Codebase #
- (feat) Coveralls integration 12fc7fa
- (style) Adopt
very_good_analysis’ strict lint rules 9508807 9139c38 2577579 - (refactor) Migrate to
null-safety#1 15d1eab - (refactor) Rename and translate enum values b481ef5
- chore(deps): override
metav1.6.0 in #3 - chore(deps): bump versions as of Dart SDK 2.16 in #5
- refactor(enums): replace
toTextwith nativenamegetter in #6
Full Changelog: v0.1.0...v0.2.0