var oktava= [" малой", " первой", " второй", " третьей"];
var note= [["e",0],["f",1],["g",2],["a",2],["b",2],["c",1],["d",2]];
var oktindex=2; //индекс октавы
function poluton(id,okt){
ton=0;
for(var i=0;i<note.length;i++){
if(note[i][0]==id)break;
ton += note[i+1][1];
}
}
poluton("e",oktindex);
alert("это "+ton);
решил частично задачу вот так.
Идея в том,чтобы начинать отсчет по полутонам от ми малой октавы.
Чтобы добраться до ми второй октавы нужно прогнать цикл еще пару раз.
Если подаем на функцию ми малой,то все ок,
если ми первой,то надо как-то прибавить 12,
а если ми второй,то это уже 24 полутона.
Можно переменную ton умножать на индекс октавы,но тут тоже что-то не ладится.
Как мне тут быть?
|