Выбор инструмента:
{{ message }} {{ loadingFontProgress }}
|
|
Режим "Запоминаем ноты" предлагает вам посидеть над ограниченным диапазоном нот, угадывая их. 1. Сайт играет вам ноту из заданного диапазона. По умолчанию это от второй октавы ноты До, до второй октавы ноты До. То есть, одна нота. 2. Вы отгадываете, какая нота играла, нажимая либо на вашей миди клавиатуре, либо на нарисованной на экране, либо на грифе гитары, либо на клавиатуре компьютера. Одиночное нажатие по ноте не засчитывается, что позволяет вам находить ноту по слуху, исключая необходимость помнить, как звучит какая клавиша. Когда вы считаете, что нашли нужную ноту, проиграйте её три раза, если вы угадали, вам засчитается +1. 3. Далее вам проиграется следующая случайная нота из диапазона, в нашем случае опять "До" второй октавы, поскольку других нот в вышеописанном диапазоне нет. вы опять её угадываете. 4. Если вы ошибётесь, счётчик угаданных сбросится на ноль, так что надо начинать набирать угаданные заново. 5. Когда вы угадаете подряд 10 нот (по умолчанию), то есть, 10 раз по три раза нажмёте на верной ноте, ни разу не ошибившись, система автоматически переведёт вас на следующий уровень. Проще говоря - прибавит сверху ещё одну ноту. В нашем случае это До-диез. (некоторым по ошибке может добавиться Ре-бемоль, я пока работаю над исправлением этой ошибки). 6. Теперь вы уже угадываете из двух нот. Если угадали опять 10 раз подряд, вам добавляется ещё одна нота. И так далее. 7. Теоретически, так можно постепенно запомнить все ноты, добавляя их себе по одной и привыкая. 8. Если вас не устраивает начинать с одной ноты "До", вы можете указать желаемый вами диапазон нот в настройках. Единственное что, не во всех инструментах есть все октавы. Например в сэмплах Пианино нет восьмой октавы. Поэтому будьте осторожны. 9. Если вам скучно с одной нотой и вы хотите потренировать свою память, для вас есть настройка "Число звуков в звукоряде". Если выбрать там цифру более 1, то проиграется более 1 звука, причём именно столько, сколько указано в выбранном вами пункте. Последовательность нот имеет значение, а вы как думали. Если что, это я постарался. 10. При выборе звукоряда из более чем 1й ноты, появляются два новых элемента настроек: "Разрешать нотам повторяться" и "Задержка между нотами". Первая позволяет нотам в звукоряде повторяться и не обязательно подряд. Вторая позволяет вам регулировать паузу между звуками в звукоряде от 0.01 до 2 секунд. 11. Если вас не устраивает, что система считает ноту угаданной только после трёх повторений, вы можете это изменить в поле "Число повторений ноты считающиеся неслучаным:". 12. Если вас не устраивает, что система требует 10 подряд угаданных нот для автоматического перехода на следующий уровень, вы можете это изменить в поле: "Число 3 верных повторений до следующего уровня:". 13. Ну а поле "Пока удачных подряд:" показывает, сколько нот подряд вы угадали на данный момент. Режим "Запоминаем ноты+интервалы" предлагает вам посидеть над ограниченным диапазоном нот, угадывая, какой интервал в них прозвучал. 1. Сайт играет вам случайный интервал из заданного диапазона нот. Интервал не любой, а в указанном вами диапазоне оных, например при диапазоне 3-4 это малая и большая терции. Очевидно, что интервалы задаются в полутонах - от и до. 2. Вы отгадываете, какой интервал прозвучал, нажимая либо на вашей миди клавиатуре, либо на нарисованной на экране, либо на грифе гитары, либо на клавиатуре компьютера. Одиночное проигрывание интервала не засчитывается, поэтому можно спокойно искать нужное. Когда вы считаете, что нашли нужный интервал, проиграйте его три раза, если вы угадали, вам засчитается. Если вы тыкаете мышкой, то можете тыкать в ноты интервала по очереди, подряд. например для квинты: "1a, 2e, 1a, 2e, 1a, 2e", или "2e, 1a, 1a, 2e, 2e, 1a". Главное, чтобы в каждом проигранном интервале были все его ноты. В общем, как если бы вы играли на миди клавиатуре нажимая клавиши "одновременно", только неодновременно и не на миди клавиатуре. 3. Если вы хотите угадывать чистые интервалы, без нот, то есть "квинту" или там "сексту", то теперь есть крыжик: "Угадывать без привязки к нотам, чистый интервал:", при его установке, вам достаточно набрать услашанный интервал с любыми нотами, не важно совпадают ли они с проигранным вам или нет. То есть, угадываем квинты, кварты и прочее без привязки к начальной ноте. 3. Далее вам проиграется следующий случайный интервал из диапазона. вы опять его угадываете. 4. Если вы ошибётесь, счётчик угаданных сбросится на ноль, так что надо начинать набирать угаданные заново. 5. Когда вы угадаете подряд 10 раз (по умолчанию), то есть, 10 раз по три раза наберёте верные интервалы, ни разу не ошибившись, система автоматически переведёт вас на следующий уровень. Проще говоря - прибавит полутон к интервалу. 6. Теоретически, так можно постепенно запомнить все интервалы. 7. Если вас не устраивает начинать с одной октавы "До", вы можете указать желаемый вами диапазон нот в настройках. Единственное что, не во всех инструментах есть все октавы. Например в сэмплах Пианино нет восьмой октавы. Поэтому будьте осторожны. 8. Если вас не устраивает, что система считает интервал угаданным только после трёх повторений, вы можете это изменить в поле "Число повторений считающиеся неслучаным:". 10. Если вас не устраивает, что система требует 10 подряд угаданных нот для автоматического перехода на следующий уровень, вы можете это изменить в поле: "Число 3 верных повторений до следующего уровня:". 11. Ну а поле "Пока удачных подряд:" показывает, сколько нот подряд вы угадали на данный момент. |
Подсказки (мышаните над грифом): |
Показывать гамму лада (все ноты):
Нот на струне:
Ладовая позиция заморожена, "`" для разморозки
Чтобы заморозить текущую ладовую позицию, нажмите клавишу "`".
Обращение аккорда: |
Показывать ступени вместо нот:
Интервальная формула:
|
Рекомендую использовать вменяемые браузеры на основе Хромиума: Яндекс браузер, Chrome, Opera. В Firefox тоже частично работает, но он дико тормозит, а ещё он не поддерживает работу с миди на данный момент. Про чудо сафари вообще молчу. Здесь мне надо бы детектировать ваш браузер, но мне лениво.
О чём это вот всё:
Сайт был сделан мной в процессе самообучения игре на гитаре. Целью было сделать тренажёр по сольфеджио, но в процессе разработки "что-то пошло не так", и вместо этого получился справочник для освоения гамм, ладов, аккордов и прочего. Бывает.
Поделюсь процессом. Началось всё с желания играть на миди клаве ноты, которые бы мне проигрывал сайт. Для этого потребовалось подключить миди клаву и сделать проигрывание частот. Погуглив нашёлся какой-то алгоритм генерации пианинового звука с незапоминаемым названием, что-то там на К. Промучавшись с ним пару дней я понял, что это ужас и пошёл нудно нарезать ноты в секвенсоре. Как же это было скучно. Нарезал. Далее поискав нормальную библиотеку проигрывания сэмплов в вебе, прикрутил, сделал загрузку и всё такое - стало играть по нажатию клавиш на миди клаве.
Приделал показ нот и частот, которые играют в текстовом виде. Когда нота перестаёт играть, стирается и текст.
Приделал возможность играть с клавиатуры компа. Сделал так что одна строка клавиш равна одной октаве. Как потом выяснилось, надо было делать "шашечками", диезы надо на ряд выше располагать. Да и хрен с ним, потом как-нибудь сделаю настройку клавиш пользователем.
Ага, но ведь надо ещё и показывать эту миди клаву для наглядности, иначе запомнить клавиши на начальном этапе куда как сложнее. Что ж, пошёл искать библиотеки отрисовки миди клав. Потратил пару дней, но всё что нашлось было каким-то, опять же, ужасом, на мой вкус. Вздохнув, полез разбираться с отрисовкой в html5 через canvas и далее н-ное количество дней наслаждался попытками нарисовать нормальное пианино. А потом рисование на нём нот, подсветку играющей ноты, подсветку ноты над которой мышка. Оказалось, что в канвасе нет слоёв, поэтому каждый раз, когда что-то нарисвали, это нельзя стереть, а надо перерисовать заново. Блин. Ну ладно, наделал кучу оптимизаций, чтобы не перерисовывать лишнего и всё такое. Выхохнул.
Тут пришла в голову "замечательная" мысль (других-то у меня, понятное дело, не бывает). Мысль заключалась в том, что раз я показываю ноты на пианино, то почему бы не нарисовать гитару, ведь так будет куда проще учить ноты на гитаре. И понеслась..
Далее много дней я бодался с отрисовкой гитары, косяками артефактов от теней, всякими позиционированиями, умещением текста в кружочки, поиском реальных размеров грифа, формулы мензуры и прочих многих-многих крайне увлекательных вещей, так необходимых для игры на гитаре. Да, тут я начал понимать, что я занимаюсь каким-то, простите мой французский, говном, но нельзя же бросать на половине дела.
Наконец, нарисовав гитару, пришлось переделывать логику, поскольку на гитаре одна и та же нота представлена во множестве, чего за пианино не водится. Ну ладно, вздохнул, переделал всё нафиг.
Когда наконец на экране нарисовалась играющая гитара, пришла в голову мысль, что вот может кому нужна басуха или гитара в дропе. Почесав голову, сделал "тюнер струн", чтобы любую струну можно было настраивать, как душе угодно. Естественно в итоге стали получаться невозможные комбинации и пришлось опять местами кое-что переделывать.
Далее я подумал, что мои нарезанные пианинные ноты слабо подходят к гитаре, наверное, стоит сделать и другие сэмплы. Но было несколько но. Первое но, это то, что эти сэмплы долго грузятся. Второе, что как бы глупо играть сэмплами. Третье, что мне дико лениво опять нарезать сэмплы. В общем, полез я искать библиотеки играющие всякие звуковые шрифты. Одна такая была найдена и прикручена. Пол дня я пытался её заставить подгружать шрифты, как указано в примере, после чего плюнул и написал загрузчик сам, оставив от библиотеки только "проигрыватель" данных. В библиотеке было 5226 звуковых шрифтов - сиречь инструментов, причём все они экспортировали своё уникальное название, которое нужно было знать, чтобы им пользоваться. То есть мне что, предстояло руками вбить 5226 названий? Не, я не согласен. Пришлось писать парсер, который бы выдрал из всех этих шрифтов названия и ещё кое-какие вещи, сделав файлик с ними. Вот этот файлик я уже и счастливо скопипастил в сайт. После чего всё стало дико тормозить. Небольшое исследование показало, что селект лист с таким количеством элементов поверх канваса тупо убивает браузер, кривая отрисовка наложения элементов. Что же, переделал селект лист на "невыпадающий". Мелочь, а доставила.
Наконец я потыкал эти шрифты, оказалось, что всё кроме гитар звучит вполне интересно. А гитары ужасно. Так что гитары придётся всё-таки нарезать. Ну, я же знал, что так и будет, что уж теперь.
Теперь стало всё тормозить при обновлении "играющих" нот в текстовом формате. Эхехе. Пришлось их переделывать и вместо вывода в хтмл, тупо рисовать в канвасе. Можно наверное было попробовать и в хтмл режиме решить вопрос, но не хотелось даже пробовать.
Далее, само собой, возникла мысль, что раз я подсвечиваю ноту на гитаре, неплохо бы подсветить все места, где можно выбранную ноту сыграть. Есс-но пришлось опять переделывать, но сделал.
Далее я подумал о том, что неплохо бы сделать подсказку по мажорному и минорному ладам. В процессе я совершенно запутался в своих оптимизациях отрисовки где-что когда стирать, потратив несколько дней на попытки отладки. В итоге плюнув, стёр нахрен оптимизации и сделал всё в лоб, стало легче.
Далее пришла мысль, что почему бы не подсветить гаммы. Полезно же. Что же, полез разбираться со строением гамм, потратил несколько дней, сделал. Для них пришлось добавлять новые режимы работы логики. Их же надо по Н штук на струну рисовать, да ещё и по интервалам.
Далее пришла мысль, что раз уж я сделал гаммы, то почему бы не сделать долбаные "греческие" лады. Что ж, несколько дней на разбирательство, что это вообще такое, воплощение, тесты. Сделано. Когда я буду на гитаре играть?
Раз уж я сделал "греческие" "гаммы", почему бы не сделать собственно греческие лады с произвольного места. Сделано.
Ну да, раз такое дело, надо бы выводить интервальные формулы. Эх. Ладно, сделал. А, ведь формулы лучше выводить в разном формате, шагами, тонами, терциями всякими.. блин, ладно, потратил денёк, сделал. А, блин, надо же ещё, наверное, ноты показывать входящие в выбранное. А они бывают для ладов, гамм, всяких разных режимов. Ладно, сделал.
Ну, очевидно же, что далее невозможно было пройти мимо аккордов. Я вот понятия не имею пока что такое аккорды. Ну, ладно. Вздохнул, полез читать, разбираться. Ну да, местами придётся всё переделывать в интервальной отрисовке, чтобы сделать смещения от ступеней. Что ж, несколько дней на разбирательства, но сделал.
А, да, надо же наверное для аккордов теперь показывать в кружочке не ноты, а ступени. Ладно, блин. Переделал. А, точно, ведь в аккордах ступени бывают пониженными и повышенными, а у меня в кружочках это не видно. Придётся к номеру ступени пририсовывать бемоли и диезы. Грр. Ладно, доделал.
А вот к аккордам, говорят, ещё бывают надстройки. Кто бы ещё объяснил, что это такое. Эх. После долгого ковыряния в интернете, вроде разобрался, но до конца не уверен. Тем не менее надстройки приделаны. Было такое искушение назвать их нашлёпками, как я сдержался, до сих пор не пойму. Надстройки сделал так, чтобы их можно было на любой аккорд надевать, для чего опять пришлось переделывать внутренности, не рассчитанные на такое использование. Переделал, куда деваться.
Далее пришла в голову замечательная мысль, которая уже давно обивала пороги сознания - надо же сделать разные гитары, вот что, если у человека восьмиструнка? Вот жеж блин. Понакупают, а ты потом мучайся. Ладно, хрен с ним. Посидел, добавил менюшку с выбором гитары. Пришлось гуглить сеймор данкановские чертежи звукоснимателей, чтобы узнать расстояние между струнами на разных гитарах - 8ми, 7ми, 4х, 5ти струнках.. А вы как думали, я от балды рисую размеры? Я так не могу.
В итоге разные гитары были добавлены, их перерисовка сделана на лету. Естественно, кое-что пришлось переделать.
Затем пришла другая мысль, так же давно уже бродившая вокруг - надо подисать струны на рисунке гитары. Ну, ладно, сделал. Поскольку есть тюнер, то естественно, что при изменении настройки струны, текст должен обновляться. А там ещё одна штука была недоделана, при выборе струны в тюнере, надо было автоматически выбирать ноту в которую она сейчас настроена. Ладно, доделал. Ну и разумеется, при выборе другой гитары надо сбрасывать выбранную струну. Ну да, сделал.
Итого, на данный момент потрачен месяц моего летнего времени отдыха :). А вместо занятий на гитаре, я занимался какой-то ерундой, так что мой и так скудный гитарный скил сильно просел :). Надеюсь, что хоть кому-нибудь эта приблуда пригодится для самообразования. Если вы воспользовались сайтом, оставьте комментарий, так вы создатите у меня ложное впечатление, что я потратил месяц своей жизни на что-то полезное и мне будет приятно. Удачи.
Наконец-то начал приделывать сольфеджио. Заставлял уже себя на пинках. Первым сделал режим "угадай ноту". Пришлось переделывать, чтобы играемые ноты не подсвечивались и её название не выводилось. Вот кто мог такое ожидать. Добавил в настройки сольфеджио. выбор октав, чтобы можно было угадывать ноту в любом диапазоне. После долгих раздумий сделал срабатывание угадывания по трём нажатиям, а не по первому. Так теперь можно спокойно искать тот самый звук по памяти, не волнуясь, что не помнишь, как звучит какая клавиша. И это реально круто. И да, приделал кнопку "повторить ноту".
Допилил ещё новый режим сольфеджио "Запоминаем ноты". Он немного похож внешне на угадай ноту, но цель его совершенно иная. Если угадывание нот для крутых перцев, то запоминание для новичков. Сделал так, что в нём можно выбрать любой диапазон нот, независимый от октав. Далее сайт будет играть ноты из этого диапазона и надо их угадывать, как и в режиме "угадай ноту". Однако, начать тут можно всего с одной единственной ноты, и когда мы её запомним, через 10 подряд верхных угадываний подряд, без ошибок, сайт добавит следующую ноту к диапазон. Сам. И так далее. То есть можно добавлять в голову ноты по одной, постоянно все повторяя. Сделал заодно настройку количества нужных вам угадываний до следующего уровня и заодно сколько подряд нажатий считается за "угадал ноту". Ну и число текущих удачных попыток вывел, чего уж там.
Раз пошла такая пьянка, причесал расположение настроек сольфеджио, а то в строчку оно выглядело как-то не очень доходчиво. Ну и да, раз всё перерасположил, пришла в голову мысль, что никто ж не поймёт, как пользоваться, так что написал инструкцию. Задолбался. И главное, всё равно ведь никто не будет читать. Ну да ладно.
Очередной день лобзика. Функция запоминания нот знакомым понравилась. Странно даже. Сел делать "угадай интервал". Сделал вроде, хотя и пришлось кое-чего переделывать, а то как-то на одновременную игру нот и потом последовательное их угадывание я не рассчитывал. В общем, работает. Заодно теперь неудачи считаются в интервалах хитро, за неудачу считается попытка состоящая из стольки нот, сколько их в интервале. Типа, сайт скажет, что "не угадал", только после каждых 2х нажатий при угадывании двойного интервала. В принципе тут можно читить, но кому это надо и какой в этом смысл? В общем, работает вроде. И вернул подсветку клавиши в режиме сольфеджио. Вообще сделал 100500 мелких улучшений или чуть меньше.
Добавил мелодический мажор, мелодический минор, гармонический мажор, гармонический минор. Сделал по умолчанию показ всех нот входящих в выбранный лад. По сути, это делает ненужным раздел "гаммы", поскольку гаммы это и есть лады от определённой ноты, а раз можно мышкой ездить по грифу выбирая точку отсчёта лада, то как бы зачем вообще нужны гаммы.. ну да хрен с ними, пусть остаются. Зато, малость упорядочил меню подсказок.
Потратил кучу времени на поиски тормозов, а то интервалы с миди клавиатуры игрались, как арпеджио. Всё из-за огромного селект листа с инструментами, который дико тормозит страницу на любой перерисовке. Не буду утомлять делалями, но теперь играется, наверное, на порядок быстрее, интервалы вполне тянут :).
Посидел, заоптимизировал отрисовку подсветок на гитаре, думал будет быстрее, но практически незаметно :).
Добавил режим "запоминаем ноты+интервал". Это чудовище позволяет выбрать диапазон нот в котором будут строиться интервалы, выставить диапазон желаемых интервалов, выставить число одновременно играемых интервалов (типа, аккорд) и угадывать это в своё, если получится, удовольствие. Он ещё и сам будет наращивать интервалы, при правильных ответах. Нафиг после этого нужен режим "угадай интервал", для меня загадка. Может уберу нафиг. И да, сколько я про......ся пока писал дуракоустойчивую систему выбора настроек, это песня. Но теперь если задать интервал*звукоряд больше выбранного диапазона нот, оно само сначала расширит диапазон до упора, а потом само же укоцает звукоряд, а если и это не поможет, укоцает диапазон интервалов. Чудеса.
Дописал секции "помощи", исправил ошибку с обозначением интервалов в аккордах (больше одного бемоля к ступеньке не показывалось в описании), исправил несколько косяков вёрстки, исправил ошибку не дающую играть интервалы ни на чём, кроме пианино.
Полностью переделал систему "угадал/не угадал" для интервалов. Хитрая штука вышла. Теперь "не угадал" засчитается только если вы повторите один и тот же интервал подряд столько раз, сколько требуется для его удачного отгадывания. Так что по разным клавишам его можно искать на слух до упора, удачные попытки не сбросятся до тех пор, пока вы уверенно подряд не повторите Н раз неверный интервал. Клёво.
Сделал авто перезапуск упражнений по изменению любой настройки, чтоб не надо было тыкать закончить/начать до их применения.
Добавил к режиму интервалов возможность угадывать чистые интервалы, без привязки к нотам. Разумеется, пришлось менять вывод ответов, вместо нот теперь выдаёт в квинтах и прочих квартах. Если интервал более октавы, то выдаёт его как количество октав+остаточный интервал. И исправил ошибку, теперь можно выставить количество повторений в 1 и тоже будет работать, а то после недавних изменений поломалось :).
Сделал возможным изменять урок для ухов прямо в процессе, не тыкая закончить/начать.
Давно хотел исправить, наконец вспомнил, теперь клавиши клавиатуры играют всегда, а не только когда фокус на канвасе.
По просьбе одного уважаемого аксакала добавил в ладовый режим возможность заморозить схему и поиграть на любых прочих нотах. Приделал на кнопку ` (это там, где "ё"). Пусть пока так будет. Правда, режим аккордовой игры при этом играет по прежнему ступени интервала, но тут непонятно, как правильнее, одну выбранную или выбранную+ступени, короче, пусть так остаётся, пока по крайней мере.
Теперь кнопки играют везде, есс-но это мешает вводить данные в текстовые поля, исправил.
Сделал фишку, которую запланировал ещё чуть ли не в самом начале "сольфеджио" - угадывание звукоряда. Почесав репу, не стал городить огород с новым режимом, а просто добавил настройку в режим "запоминаем ноты", там теперь можно выбрать, сколько нот играть. Есс-но реализовал функционал, в том числе автоматическое увеличение диапазона нот, при выборе большего звукоряда, когда последний не помещается в первый. Почесав репу ещё, приделал эпическую функцию "Разрешить нотам повторяться". Как непонятно из названия, при выставлении крыжика, ноты имеют полное право повторяться. Что характерно, появляется эта опция только если выбрано проигрывание звукоряда из более, чем целого одного звука. Не останавливаясь на достигнутом, добавил ещё один элемент настроек аналогичным образом - выбор времени задержки между проигрываемыми нотами. Диапазон значений от 0.01 до 2 секунд. Неверные значения пресекаются, во избежание. Ну и конечно же пришлось дописывать проверку для нового режима :).
Добавил "заморозку" в аккорды. Важно: местами поправил орфографию, где попались на глаза косяки.
Подумал и убрал нафиг режим "угадай ноту", толку с него, если это тоже самое только без дополнительных крутилок.
Добавил вывод набранных в попытке угадать нот, чтобы было нагляднее, что уже набрано.
Добавил задержку перед набором следующей ноты, после неверной попытки.
Поправлено несколько багов, слегка облагорожен внешний вид настроек. Добавлена возможность настраивать какие клавиши клавиатуры компа играют какие ноты.
Начал причёсывать код, местами написанный хаотичный. Впрочем, мне это быстро надоело, всё равно код нафиг не нужен, доделывать никто ничего не будет, а сейчас и так работает. Зато потом сел за написание оптимизаций, которые в своё время пришлось повыкидывать. Сделал несколько штук, скорость возросла, наверное, на порядок, если не на пару. Кайф.
Продолжил оптимизации, отрисовка ускорилась в 5-7 раз, как минимум. Затем ещё была куча допиливаний, которые не замерял, но всяко кое-чего ускорили.
Приделал обращения аккордов. Сделал возможным обращать все ступени оригинального аккорда (без надстройки), путём сдвига ступени на октаву вверх или вниз, по желанию. После чего система подсвечивания ступеней аккорда пришла в негодность, ибо некоторые комбинации стали на гитаре тупо нереализуемыми никем, кроме осьминогов. Почесав репу, сделал для аккордов отдельный режим подсветки - подсвечивает все варианты нажатия всех ступеней. Так можно самому выбрать что и где зажимать, это удобно и просто. Пришлось правда ещё отдельно подсвечивать лад на который наведена мышка и по разному отображать в нём данные - ступень если там есть или ноту если нет ступени, но это детали.
Из-за изменений перестало нормально играться аккордом, пришлось переделывать эту штуку.
Увеличил ширину клавиш на пианино, чтобы туда можно было вписать название ступени, а то было непонятно, что там подсвечивается с аккордами. Ну и вписал названия ступеней туда.
Исправил очень давнюю ошибку из-за оптимизации, при заморозке интервалов при наведении на первую ступень не было подсветки.
Покрасил нулевой лад в радикально чёрный цвет.
Прошёл почти год, захотелось мне добавить вывод ступеней. Ох и намучился я вспоминая и разбирая, как это всё работает. Тем не менее, теперь лады можно выводить в двух режимах - как набор нот и как набор ступеней от опорной гаммы. То есть можно на грифе поглядеть где какая ступень на разных ладах.
В режиме заморозки нот (блуждающей мышки), теперь под курсором так же показывается ступень, если выбран показ ступеней и нота под мышкой присутствует в ладу. Если не присутствует, покажется нота.
Раз пошла такая пьянка, сделал аналогичную систему и для аккордов.
Почесал репу и добавил возможность в ладах указывать, сколько нот на струне играть. Так для пентатоник удобно играть по 2 ноты, а для гамм по 3 ноты. Сделал запоминание установленного значения, чтоб при изменении лада оно запоминало выбранное. При перезагрузке страницы оно накроется, но и фиг с ним.
Ну и для гамм сделал тоже показ ступеней.