- Add tonal-roman-numeral
- Add
degrees
param toKey.chord
,Key.triads
, and `Key.leadsheetSymbols
-
BREAKING CHANGE: note.midi function now returns a number between 0 and 127 (otherwise null). It also returns null for non numeric or string values. Before:
note.midi(true) // => 1
after:note.midi(true) // => null
. Thanks @apalm -
Rename
tonal-detector
intotonal-detect
-
Better chord parsing algorithm (now preserves 9, 11, 13 as chord names)
- Update dev dependencies
- Get notes from augmented chords. Fixes #52
- Rename
Note.build
toNote.from
and add an extra parameter - Include
tonal-detect
module (with limited API and functionallity)
- Breaking change: Rename module names to upercase:
import Tonal from "tonal";
Tonal.Note.midi("A4"); // => 69
- Breaking change: Reduce the number of modules (mostly low level or internal modules) and simplify the API
- New [tonal-notes] package
- [tonal-dictionary]
- add new
scale
,chord
andpitchset
dictionaries (functions) dictionary
function is deprectated in favour ofbuild
- add new
- [tonal-pcset]
- deprecated functions removed: chromaModes, superset and subset functions
- Change order of params in isSuperset and isSubset
- Simplify rollup bundle
- Change midi dependency order
- Simplify tonal-note package
- Create tonal-enharmonic package in extensions
- Deprecate note.enhramonics in favour of enharmonic.find
- Deprecate note.simplify in favour of enharmonic.simplify
- Move transposition functions to tonal-distance
- Remove standard code style and use prettier
- Bug fixes
## 0.69.8
dictionary
module usespcset.nodes
instead ofpcset.chromaModes
- Note:
note.note()
,note.pcFifhts()
,note.props()
,note.fromProps()
## 0.69.x
- Fix dictionary dependencies
- Update to note-parser 2.0.1 for better ES6 module support
- Fix midi note-parser dependency
- Better ES6 support and dist file bundling
tonal
- Tonal now exports
pcset
module
tonal-key
- Simplified API: removed
asKey
,fromName
. All returned keys are strings instead of arrays. names
renamed tomodes
- New functions:
isKeyName
tonal-pitchset
- All functions moved to
tonal-pcset
tonal-pcset
- The old
pitchset
module was renamed topcset
that is more accurate
tonal-notation
- TODO: new
accType
function (return the accidentals type: flats, sharps, none)
tonal-note
- add
name
as an alias fornote
tonal-dictionary
- Simplified API and code:
dictionary
anddetector
tonal-scale
- add
parse
function - the
notes
function requires a tonic and returns pitch classes - add
intervals
,isKnowScale
functions
tonal-chords
- add
intervals
,isKnowChord
functions
tonal-pcset-dft
- New module (see README)
tonal-array
- new
permutations
function
tonal-transposer
- new
intervallic
function
tonal-scale
- rename
get
tonotes
- rename
build
toget
tonal-chord
- rename
build
toget
- rename
get
tonotes
and now it accepts a list of notes - parse now returns an object with type and tonic instead of an array
- new
inversion
andposition
functions
tonal-pitchset
- rename
rotations
tochromaModes
- remove
withTonic
function
tonal-dictionary
- fix a bug with dictionary detection
tonal-chord
detect
now returns the chord string
tonal-scale
- new
detect
function
tonal-dictionary
dectector
function extracted fromtonal-chord
tonal-freq
- rename
toEqualTemp
toeqTempFreq
, and now accepts a maximum number of decimals - rename
fromEqualTemp
toeqTempToMidi
and now accepts a maximum number of decimals - cents now returns an integer value (instead of a float)
tonal-note
- bug fix: note.midi is correctly exported
tonal-pitchset
- new
notes
function - rename
fromBinary
tofromChroma
## 0.66.0
tonal-note
- Add
fromProps
function - Add
pcFifths
function - Rename
toNote
tonote
tonal-interval
- Add
fromProps
function
tonal-midi
- Rename
toNote
tonote
tonal-freq
- Rename
toNote
tonote
and now accepts 'useSharps' parameter
tonal-progression
- The parseRomanChord now returns an object with { type: , root: }. Before 'type' was 'name' and root was a pitch.
tonal-note
- Expose note properties: props, oct, alt, step
tonal-array
- sort: change order of parameters to make it more JS friendly
tonal-pitchset
- rename
toBinary
tochroma
tonal-chord
- new function
detect
: given a list of notes, return the possible chords
tonal-pitchset
- add functions: isBinary, rotations, fromBinary
tonal-array
listFn
function is now private (to be removed)- Move harmonizer, harmonize and harmonics to tonal-harmonizer
tonal-harmonizer
- New module with: harmonizer, harmonize, harmonics
tonal-progression
- rename build to concrete
- add abstract function to convert from chords to roman numerals
tonal-interval
- add props, num, value and alt functions
tonal-notation
- toAcc returns an empty array when is called without a number
tonal-note
- Add note.freq
tonal-pitchset
- Add includes
- Add filter
tonal-array
- Remove cMap
tonal-filter
- Deprecated
tonal-pitchset
- Add toBinary, equal, subset and superset functions
tonal-note
- add note.midi and note.fromMidi
tonal-midi
- Rename fromNote to toMidi
- Remove isValidNote
tonal-freq
- Rename fromFreq a toNote
- Rename midiFromFreq a toMidi (and now it can return float numbers)
Now packages are namespaced inside tonal. Instead of tonal.invert
now we have to write tonal.ivl.invert
tonal
- Big breaking change: the packages are now namespaced! So instead of
tonal.pc
you need to writetonal.note.pc
- Add scale, chord, notation, progression, sonority.
tonal-note
- Rename simpleEnh to simplify
- Remove enh alias
- rename noteName to toNote
tonal-interval
- Rename ivlName to toInterval
tonal-midi
- rename
toMidi
tofromNote
- rename
fromMidi
totoNote
- remove
fromMidiS
, instead use an optional parameter intoNote
- rename
isMidiNum
toisValidNote
tonal-range
- rename
range
tonumeric
- rename
cycleOfFifths
tofifths
- rename
scaleRange
topitchSet
- add sharps option to
chromatic
tonal-distance
- rename
distance
tointerval
- return
distInSemitones
tosemitones
tonal-filter
- TODO: needs some thinking about API
tonal-dictionary
- rename
fromName
toget
- rename
names
tokeys
tonal-transpose
- remove
tr
function alias (usetranspose
)