Skip to content

Releases: greird/chordictionaryjs

Improved chord detection and naming

11 Sep 18:13
d837f46
Compare
Choose a tag to compare
Pre-release

This release includes a major refactoring of the way chords are identified and named.

It previously relied on a hardcoded formulas list. It now dynamically adds extensions (e.g. "minor", "flat 5th", "sus4") to a chord name based on a set of rules.
Hence, it can now name many more chords.

The tests still have to be straightened in order to prevent the apparition of wrong chord names.

New methods to parse tab, tuning and chord name

28 Aug 12:48
25d5c7c
Compare
Choose a tag to compare

This release adds the following features:

  • New parseTuning method to break a string into notes (e.g. EADGBE becomes ["E", "A", "D", "G", "B", "E"]
  • New parseTab method to break a string into frets (e.g. X32010 becomes ["x", 3, 2, 0, 1, 0]
  • New parseChord method to break a string into a chord root and quality (e.g. Csus4 becomes ["C", "sus4"]
  • New notes constant containing the list of all 12 notes.
  • New tuning constant containing a list of common tunings.

Check the new Documentation to learn more about those new features.

New chord object structure with additional details (Breaking changes)

23 Aug 13:34
Compare
Choose a tag to compare

List of functional changes:

  • 7#11 chords are now found
  • Major 9 and minor 9 and maj7#11 chords are found as long as no note is skipped (ex. they must contain a 5th)
  • getChordInfo now returns a notes array even if chords are not found
  • getChordInfo now return a chords array contain an object for each chord identified
  • Each chord object contains the name, pitch, formula, list of intervals, list of semitones (integer formula), list of notes, quality and suffix.
  • getChordLayout now takes 1 mandatory tab string and 1 optional options object as parameters.
  • isValidTuning and isValidTab are now available outside the Instrument class scope and should be called via chordictionary.isValidTab() and chordictionary.isValidTuning().

Now available as an IIFE, an ES6 module and a CommonJS module

13 Aug 16:37
Compare
Choose a tag to compare

The whole build process has been updated and all dev dependencies have been updated to their latest version.
Methods are unchanged, but the library is now transpiled into different versions:

  • IIFE (to be used with a <script> tag)
  • CommonJS (for installation through NPM)
  • ES6 (basically the raw library in ES6)

I plan to get back to work on this project, there's still a long road ahead !