Bonivur
Advanced Member | Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору Odysseos Меня тут долго не было... Проблемы-с. Продолжая дискуссию о нахождении всех возможных вариантов определенного аккорда на грифе гитары. Ограничения простые - выбирается аккорд, допустим Dm (ре-минор), находятся ноты, входящие в данный аккорд - F(фа), A(ля), С (до). Это все легко. Вот дальше начинаются сложности. Надо найти все возможные сочетания этих трех нот на грифе гитары (то есть задействовано от 3-ех до 6-ти струн). Бас роли не играет. Ноты могут идти в любом произвольном порядке. Аккорд останется все равно тем же. Допустимы промежуточные незвучащие струны, так же как и наоборот, открытые струны. Главное, чтобы не звучали ноты НЕ входящие в аккорд. Невозможно, также, нахождение двух нот на ОДНОЙ струне в готовом аккорде. На гитаре всегда будет звучать только одна нота на каждой отдельно взятой струне. То есть, 1 струна <= 1 нота, но не обязательно использовать все струны. Допустимы удвоения нот в любых вариантах - FFAADD, DAAF, DFAFA и.т.д. Предел для растяжки пальцев можно взять в 4 лада (это не принципиально). Получаем участок грифа гитары 6 (струн) на 4 (лада) для каждой позиции (позиция - положение указательного пальца при взятии аккорда). Вот для этого участка надо найти все возможные варианты построения аккорда (в данном примере - Dm, ре-минор). Надо еще помнить, что нужны и те варианты, когда нота подходящая есть, но возможен вариант и с ее пропуском, так как можно ее получить на другой струне. Преимущества в басах (допустим для тоники - Ре) нет. Задача не абстрактная. Если найду механизм как это осуществить, то все остальное уже довольно просто. Залез даже в теорию графов с их обходом, но что-то очень сложно. Тут другая идея - ведь все возможные аккорды можно описать схемой вида - 00 01 00 02 03 XX (аккорд С). У меня уже есть программа, в которой пользователь проставляя ноты аккорда (точки на грифе) узнает, что это за тип аккорда, к тому же автоматом пишется эта буквенно цифровая схема в одну строку. Так вот идея в том чтобы перебрать все варианты в каждом элементе строки (от 00 до 04) пока программа не выдаст, что это аккорд Dm. Но как организовать такой цикл? И сущает что будет слишком много "холостого" хода. Ведь найти ноты на грифе которые заведомо соответствуют нотам аккорда не сложно, хочется "плясать" от этого. Вообщем, не знаю как подступиться. Если кого интересует проблема - пишите на мыло тоже. Буду рад если сможете как-то помочь.
---------- Что будет стоить тысяча слов когда важна будет крепость руки? (В.Цой) |
| Всего записей: 655 | Зарегистр. 22-06-2003 | Отправлено: 23:27 10-04-2010 | Исправлено: Bonivur, 23:44 10-04-2010 |
|