music_notes 0.11.0 music_notes: ^0.11.0 copied to clipboard
Comprehensive set of utilities for working with music theory concepts.
0.11.0 #
- 📄 docs(README): update license badge in #207
- 📖 docs(README): fix typo in C♯ example in #208
- ♻️ refactor(positioned_note)!: make
octave
argument required in #209 - 📖 docs(note): update missing
inOctave
examples in #210 - ♻️ refactor: use
incrementBy
method in #211 - ♻️ refactor(interval): remove redundant
Scalable<T>
types in #212 - 📖 docs(scale): fix wrong
functionChord
examples in #213 - ✨ feat(note): add
respellByBaseNoteDistance
method in #214 - ✨ feat(enharmonic): allow providing
distance
tospellings
in #215 - ♻️ refactor(accidental): extract parsable symbols from
parse
in #216 - chore(deps): bump coverallsapp/github-action from 2.2.0 to 2.2.1 by @dependabot in https://github.com/albertms10/music_notes/pull/217
- ✨ feat(enharmonic): remove semitones from
toString
output in #218 - ✨ feat(enharmonic): use pipe
|
intoString
output in #219 - 💥 refactor(note)!: rewrite semitones starting from 0 instead of 1 in #220
- ⚡ perf(positioned_note): extract
parse
expressions to static finals in #221 - 💥 feat(interval)!: move
isDissonant
getter fromIntervalSizeExtension
in #222 - ♻️ refactor(interval)!: move
inverted
logic fromIntervalSizeExtension
in #223 - ♻️ refactor(interval): move
simplified
fromIntervalSizeExtension
in #224 - ♻️ refactor(interval): move
isCompound
fromIntervalSizeExtension
in #225 - 📖 docs(interval_size_extension): improve
semitones
andisPerfect
comments in #226 - 📌 chore(pubspec): downgrade
collection
to 1.17.1 to keep Flutter compatibility in #228 - ➖ chore(pubspec): remove
dart_code_metrics
dependency in #229 - 💥 refactor(interval)!: rewrite
IntervalSizeExtension
methods as private in #227
Full Changelog: v0.10.1...v0.11.0
0.10.1 #
- ✨ feat(interval): take
distance
sign into account incircleFrom
in #199 - ✨ feat(enharmonic_note): add pitch-class multiplication operator in #200
- ♻️ refactor(base_note): rename
fromSemitones
static method in #201 - 🔥 refactor(enharmonic_note)!: remove
shortestFifthsDistance
methods 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
isUpperCase
andisLowerCase
getters in #179 - ✨ feat: add
parse
factory 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
empty
constant in #185 - ♻️ refactor(key_signature): simplify tonality methods in #186
- 🐛 fix(note): return correct distance for extreme Note spellings in #187
- ⚡ perf(interval): rewrite
distanceBetween
method avoiding unnecessary iterations in #188 - ♻️ refactor(base_note): rewrite
parse
method usingbyName
in #189 - ✨ feat(note): add respelling methods in #190
- ✨ feat(note): add
respelledSimple
getter in #191 - ✨ feat(int_extension): add
incrementBy
method in #192 - ✨ feat(interval): add
circleFrom
and related methods onNote
in #193 - ✨ feat(interval): add
respellBySize
method in #195 - ✨ feat(key_signature)!: rewrite
toString
method in #196 - ♻️ refactor(analysis): enable ignored lints in #197
- ✨ feat(interval): rewrite distance methods expecting
Scalable
arguments in #198
Full Changelog: v0.9.0...v0.10.0
0.9.0 #
- fix(scale): take descending items into account for
hashCode
in #151 - test(note): add test cases for
sharp
,flat
,major
,minor
getters in #152 - test(enharmonic): move each
toString
test cases to implementation in #153 - feat(harmony): add
Chord
andChordPattern
classes in #154 - fix(positioned_note): use correct
hashCode
values in #155 - fix(interval_size_extension): return correct
semitones
for large intervals in #156 - fix(note): correctly handle compound intervals in
transposeBy
in #157 - feat(chord): implement
Transposable
in #158 - feat(chord_pattern): add
intervalSteps
factory constructor in #159 - test(interval): add compound intervals test cases for
semitones
in #160 - feat(interval): add
simplified
getter in #161 - refactor: rename
from
→on
in #162 - feat(note): add Chord triad getters in #163
- feat(scale): add
ScaleDegree
class and methods onScale
in #164 - feat(chord_pattern): add
fromQuality
factory constructor in #165 - feat(scale_degree): add
raised
,lowered
,major
, andminor
getters in #167 - feat(scale_pattern): take
ScaleDegree.quality
into account indegreePattern
in #166 - feat(scale_pattern): add
fromChordPattern
factory constructor in #168 - feat(scale): add
degree
and renamedegreeChord
methods in #169 - refactor(scale): rename
items
→degrees
in #170 - refactor(scale_degree): rename
degree
→ordinal
in #171 - refactor(scale_pattern): extract helper functions to simplify
degreePattern
method in #172 - feat(chord_pattern): add
augmented
,major
,minor
, anddiminished
getters in #173 - fix(chord): correctly identify compound intervals in
pattern
getter in #174 - feat(harmony): make
Chord
implement extractedChordable
mixin methods in #175 - chore(pubspec): bump version 0.9.0 in #178
- feat(harmonic_function): add class and
Scale
method 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
semitones
in #131 - feat(interval): show quality semitones on
null
abbreviation intoString
in #133 - feat(base_note)!: remove support for
intervalSize
isDescending
argument in #134 - feat(scalable): add abstract interface with
interval
method in #135 - feat(interval): add
+
operator in #136 - fix(scale_pattern): check for
descendingIntervalSteps
in==
in #137 - feat(scale_pattern): include descending steps in
toString
in #138 - fix(scale_pattern): return
mirrored
Scale with descending steps in #141 - feat(scale)!: add new class with
pattern
andreversed
getters in #139 - fix(scale_pattern): return correct descending
PositionedNote
scale infrom
in #142 - refactor(scalable): move to root
lib
directory in #143 - feat(enharmonic_interval): add
isDescending
,descending
methods in #144 - test(enharmonic_interval): add test cases for
isDescending
,descending
methods in #145 - chore(pubspec): bump versions as of
very_good_analysis
5.0.0+1 in #146 - feat(positioned_note): add reference
note
forequalTemperamentFrequency
in #147 - refactor(note): rename
fifthsDistanceWith
method 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
isNegative
condition in #116 - feat(frequency): override
toString
,==
,hashCode
, andcompareTo
methods in #117 - feat(frequency): assert positive
hertz
value in #118 - refactor(positioned_note)!: use
Frequency
as a reference in #119 - refactor: remove
MusicItem
interface in #115 - refactor: PositionedNote composition with Note instead of inheritance in #113
- test(positioned_note): add more test cases for
semitonesFromRootHeight
in #120 - refactor(transposable): add generic constraint in #99
- refactor(base_notes): rename
Notes
→BaseNote
in #121 - refactor(enharmonic_note): remove redirecting method on
enharmonicIntervalDistance
in #122 - refactor!: consistently rename
isDescending
in #123 - feat(note): add Tonality
major
andminor
getters in #124 - refactor(base_note): rename
transposeBySize
method in #125 - docs(note): migrate missing
PositionedNote
documentation in #126 - feat(note): add
sharp
,flat
getters in #127
Full Changelog: v0.6.0...v0.7.0
0.6.0 #
- refactor(interval): extract and reuse
_sizeAbsShift
getter in #97 - refactor(mode): rename
compare
static method in #98 - feat(positioned_note)!: allow passing
a4Hertzs
toisHumanAudibleAt
in #100 - feat(note): add
circleOfFifthsDistance
getter in #101 - feat(note): add
compareByFifthsDistance
static comparator in #102 - feat(interval): add
descending
method in #103 - feat(scale): add
descendingIntervalSteps
in #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
EnharmonicNote
tofromNote
in #91 - fix(enharmonic_interval): handle descending intervals in
items
in #92 - refactor(quality)!: rename
double
todoubly
in #93 - refactor(enharmonic): rename
items
→spellings
in #94 - fix(interval_size_extension): address
simplified
compound interval sizes in #95 - feat(interval): show simplified interval in
toString
in #96
Full Changelog: v0.5.0...v0.5.1
0.5.0 #
- feat(enharmonic_interval): suppress semitones limit in #64
- perf(interval): simplify
isPerfect
logic in #65 - refactor(accidental): rewrite
symbol
getter using explanatory variables in #66 - feat(int_interval_extension): allow compound intervals in
fromSemitones
in #67 - feat(enharmonic_interval)!: rewrite distance
semitones
starting from 0 in #68 - refactor(enharmonic_interval): change
Transposable
with add/subtract operators in #69 - feat(note): implement
Transposable
in #70 - refactor(interval): add static const constructors in #71
- feat(scale): add class and
fromNote
method in #72 - feat(interval)!: change
descending
with negativesize
in #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
Accidental
in #77 - feat(scale): add
mirrored
,name
methods and override==
in #79 - feat(mode)!: rewrite
Mode
enums in #78 - feat(tonality): add
scaleNotes
getter in #80 - feat(positioned_note): override
transposeBy
method in #81 - docs: add Wikipedia links to
Scale
andMode
in #82 - feat(mode)!: use
brightness
as the Dorian Brightness Quotient in #83 - refactor(positioned_note): improve
helmholtzName
getter legibility in #84 - refactor: replace
quiver
package with nativeObject.hash
in #85 - chore(vscode): add
.lock
file association with YAML in #86 - feat(interval): add
isDescending
getter in #87 - test(interval): add more test cases for descending
Interval
in #76 - refactor: replace
EnharmonicNote
withNote
fortransposeBy
in #88 - fix(key_signature): use XOR in 0 accidentals assertions in #89
- refactor(note): rewrite
fromRawAccidentals
intoKeySignature.majorNote
in #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
items
getter in #23 - feat(accidental): bring
increment
method back in #24 - test: add test cases for
toString
methods in #25 - test(key_signature): add test cases for
tonalities
getter in #26 - test(key_signature): add test cases for
fromDistance
method in #27 - feat: implement and test Comparable in #28
- feat(accidental): show positive sign in
toString
in #29 - feat(key_signature): remove × sign in
toString
in #30 - test(music): add test case for
circleOfFifths
in #31 - test(enharmonic): add test cases for
toString
in #32 - test(interval): add test cases for
toString
in #33 - test(enharmonic_interval): add test cases for
transposeBy
in #34 - refactor(music_item): implement
Comparable
and mark as immutable in #35 - test: compare
.hashCode
Set as a List in #36 - feat(tonality): improve
compareTo
sorting by note and mode in #37 - test(interval): add test cases for interval-related members in #39
- feat(intervals): add
isCompound
getter in #40 - test(intervals): add test cases for
fromSemitones
in #41 - feat!: rewrite
Qualities
enum with properQuality
class in #42 - feat(intervals): add
isDissonant
getter in #43 - refactor(enharmonic_interval): add static const constructors in #44
- feat(interval)!: replace
Intervals
enum withint
value in #45 - docs: document
Quality
class and rewrite Example consistently in #46 - feat(accidental): add
name
getter in #47 - feat(enharmonic_note): add
toClosestNote
method in #48 - fix(note): simplify
fromRawAccidentals
accidental increment in #49 - refactor(quality): move
qualityFromDelta
toQuality.fromInterval
factory constructor in #51 - refactor(interval): move
EnharmonicInterval.fromDesiredSemitones
in #52 - test(interval): add test cases for
inverted
in #53 - refactor(notes): address
intervalSize
descending logic in #54 - test(note): add test cases for
difference
in #55 - refactor(tonality): add static const constructors in #56
- feat(note): add
octave
member in #57 - feat(note): add scientific and Helmholtz notation getters in #58
- feat(note): add
equalTemperamentFrequency
in #59 - feat(note): add
isHumanAudible
method in #60 - refactor(positioned_note): move
Note
methods to subclass in #61 - test(tonality): add test cases for
relative
,keySignature
methods 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
Accidental
class in #8 - docs: reference new
Accidental
class instead of enum in #9 - refactor: make
Accidental.natural
default in #10 - refactor(enharmonic): rewrite based on
semitones
in #11 - refactor(notes): rename notes using the English convention in #12
- refactor(accidental): rename
value
→semitones
in #13 - refactor(note): add static const constructors in #14
- refactor(src): reorganize directories by content in #15
- refactor: rewrite
enum
members 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.dart
file 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
hashCode
methods 528010d
Note
- (fix) Add
fromRawAccidentals
method 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
meta
v1.6.0 in #3 - chore(deps): bump versions as of Dart SDK 2.16 in #5
- refactor(enums): replace
toText
with nativename
getter in #6
Full Changelog: v0.1.0...v0.2.0