Ну, в нотах чего только не напишут. Всегда лучше спросить и проверить
![Wink ;) ;)](data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7)
.
В обед прописал аккордовую логику. Аккорды играют
![Cool :cool: :cool:](data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7)
, но столкнулся с проблемой: если нажать несколько аккордовых кнопок подряд, то громкость повторяющихся нот удваивается
![Confounded face :confounded: 😖](https://cdn.jsdelivr.net/joypixels/assets/7.0/png/unicode/64/1f616.png)
. Потом отпускаешь одну кнопку из двух и она гасит все общие ноты. С левой будет та же проблема из-за повторяющихся нот и кнопок.
Вполне логичный результат, если подумать о том, как и какие миди команды шлет код, и что звук смоделлирован на кнопки (в настоящем аккордеоне он идет не от кнопок, а от резонаторов
![Roll eyes :rolleyes: :rolleyes:](data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7)
) но я такой поворот событий не предвидел.
Решение вполне очевидное - переписать логику образования звука, сначала записать состояние всех кнопок в память и образовывать звук уже от виртуальных "резонаторов" а не от отдельных кнопок, причем делать это отдельно для правой и левой. Ну, никто не говорил, что будет легко.
- Собрать прототип миди клавы.
- Вылечить зависание контроллера.
- Разобраться, как привязать миди-аккорд к одной кнопке для готового баса.
- Переписать логику звукообразования для левой и правой клавиатур.
- Написать логику гтв переключателя
- Реализовать многооктавность и регистры в готовой левой.
- Расширить софт клавы на аккордеонную раскладку и мощино фрибас (148 х 87).
- Смоделировать и распечатать матрицы на левую и правую клавиатуры + стойки для кнопок.
- Собрать клавиатуры и протестировать.
- Подключить воздушный сенсор с черновой настройкой.
- Загнать в корпус и настроить воздушный сенсор.
- Подключить атмосферные сенсоры и сравнить с воздушным.
- Разработать минимальные доп функции (переключатель регистров, метроном).