xxxxxxxxxx
77
let genMajButton, genMinButton, txt;
let major = ["C","Dm","Em","F","G","Adim","Bm"];
let minor = ["Am","Bdim","C","Dm","Em","F","G",];
let tonProjMaj = {
1 : [2,3,4,5,7],
2 : [7,5],
3 : [4,2],
4 : [2,7,5],
5 : [1],
7 : [5,1]
}
let tonProjMin = {
1 : [3,4,5,6,7],
3 : [6,4],
4 : [7,5],
5 : [1],
6 : [4],
7 : [5,1,3]
}
function setup() {
let p = createP();
genMajButton = createButton("new major progression")
genMinButton = createButton("new minor progression")
genMajButton.mousePressed(newMajor);
genMinButton.mousePressed(newMinor);
txt = createP("");
p.child(createCanvas(0,0));
p.child(genMajButton)
p.child(createSpan(" "))
p.child(genMinButton)
p.child(txt)
}
function draw() {
}
function newMajor(){
let notes = [1];
while(true){
let possibleNotes = tonProjMaj[notes.slice(-1)]
let nextNote = possibleNotes[floor(random(possibleNotes.length))]
if (nextNote==1){
break
}
notes.push(nextNote);
}
let progression = major[notes[0]-1]
for (let i=1;i<notes.length;i++){
progression += " "
progression += major[notes[i]-1]
}
txt.html(progression)
}
function newMinor(){
let notes = [1];
while(true){
let possibleNotes = tonProjMin[notes.slice(-1)]
let nextNote = possibleNotes[floor(random(possibleNotes.length))]
if (nextNote==1){
break
}
notes.push(nextNote);
}
let progression = minor[notes[0]-1]
for (let i=1;i<notes.length;i++){
progression += " "
progression += minor[notes[i]-1]
}
txt.html(progression)
}