Показать сообщение отдельно
  #6 (permalink)  
Старый 26.09.2013, 21:54
Профессор
Отправить личное сообщение для sotik Посмотреть профиль Найти все сообщения от sotik
 
Регистрация: 14.09.2012
Сообщений: 158

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 умножать на индекс октавы,но тут тоже что-то не ладится.
Как мне тут быть?
Ответить с цитированием