progression
Scribbletune generates common chord progressions for the given key
This is an experimental feature. As of now it supports providing chord progressions for major and minor scales only based on the theory that the progression must start from the Tonic, optionally move to the PreDominant or SubDominant and then the Dominant. Randomly it will move from Dominant to PreDominant and then back to Dominant.
const scribble = require('scribbletune');
const majorChordProgression = scribble.progression('M');
const minorChordProgression = scribble.progression('m', 8);
// the following will output something like [ 'I', 'ii', 'ii', 'V' ]
console.log(majorChordProgression);
// the following will output something like [ 'i', 'VI', 'ii', 'V', 'ii', 'iv', 'iv', 'V', 'V' ]
console.log(minorChordProgression);
getChordsByProgression
getChordsByProgression
works toward translating chord degrees to actual chords for the given scale and root note.
const c = scribble.clip({
notes: scribble.getChordsByProgression('C4 major', 'I IV V ii'),
pattern: 'x_'.repeat(4) + 'x_______'
});
scribble.midi(c, 'chords.mid');
You can even get chord degrees for select scales/modes:
// the following outputs [ 'i', 'ii°', 'III', 'iv', 'v', 'VI', 'VII' ]
console.log(scribble.getChordDegrees('minor'));
You can even get chord degrees for the following scales/modes:
- ionian/major
- dorian
- phrygian
- lydian
- mixolydian
- aeolian/minor
- locrian
- melodic minor
- harmonic minor