Public
Edited
Apr 27, 2023
Insert cell
Insert cell
Insert cell
Insert cell
chord.getChord("m7", "A", "G").notes
Insert cell
chord.detect(["G", "A", "C", "E"])
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
chords = {
let chords = [];
for(let i = 0; i < notes.length; i++) {
// Take only the first, most "standard" chord name
chords[i] = chord.detect([notes[getNote(I+i)],notes[getNote(III+i)],notes[getNote(V+i)]])[0];
}
return chords
}
Insert cell
Insert cell
chord = import('@tonaljs/chord')
Insert cell
tonal = import('@tonaljs/tonal')
Insert cell
key = import('@tonaljs/key')
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
getNote = (degree) => degree % notes.length
Insert cell
Insert cell
chord.getChord("m", "A", "G").notes
Insert cell
chord.get("Am7/G")
Insert cell

Purpose-built for displays of data

Observable is your go-to platform for exploring data and creating expressive data visualizations. Use reactive JavaScript notebooks for prototyping and a collaborative canvas for visual data exploration and dashboard creation.
Learn more