Самодельная MIDI система для баяна или гармони

Больше
6 года 10 мес. назад #43285 от Александр
Александр ответил в теме Обновление программы.
Я серьёзно переписал программу, совместил то что было сделано для nano и mega и дописал много нового. Во вложении новая версия программы. Предлагаю протестировать, она немного недоделана.

Что нового:
- Изменено представление выводов контроллера, теперь без особых проблем можно исправить код под любую плату arduino, построенные на контроллере AVR (мега, нано и т.д)
- Инициализация, Чтение клавиатуры, Чтение давления, Обработка давления, Обработка нажатий разнесены в отдельные функции. Теперь можно подменить функцию чтения и работать с клавиатурой на сдвиговых регистрах.
- Кнопки получили много новых параметров:
Отслеживается нажатие, отжатие, долгое зажатие.
Автоповтор для долгого зажатия на каждой кнопке (например громкость увеличивать зажав кнопку)
Появился реверс для каждой кнопки индивидуально
Есть антидребезг для всех кнопок один
На каждую кнопку можно задать до 4х нот одновременно, которые будут звучать в одном канале.
Каждую кнопку можно назначить на мелодию, бас, аккорд
Кнопка может быть звуковой, функциональной (регистры, стили и др.) или звуковой, а при нажатии РЕЖИМ функциональной (как в старой прошивке)
- Кнопки, их функции и ноты задаются в массиве buttons_config. Он более наглядный чем предыдущая версия с кучей таблиц.
- В файле instrument.h задаются выводы контроллера (можно не менять для nano)
- В файле instrument.ino нужно задать buttons_config (Обязательно задать под свой инструмент!)
- Появилось определение DEBUG_BUTTONS, если активно, то в консоли можно видеть всё что происходит при нажатии и отпускании кнопок, Какая кнопка нажата, какие ноты назначены, какая функция, какие команды будут отправляться в MIDI выход.
- Отлажен датчик давления, теперь он опрашивается только при опросе первой линии, т.е. примерно в 10 раз реже. Благодаря этому перестало тормозить при очень частой тряске меха. Тормоза были именно из-за шума датчика и частой отправки команд, скорее всего порт был сильно загружен.
- У каналов Мелодия, Бас, Аккорд добавлены массивы для отслеживания состояния нот. ТЕПЕРЬ НОТЫ НЕ ГЛОХНУТ, пока не будут отпущены все кнопки с этими нотами.
- При включении устройства нет ложных нажатий кнопок (они происходили при включении устройства со старой прошивкой).
- Добавлены три стиля игры, которые можно комбинировать
SOLO - обычное звучание кнопок мелодии в одном канале
DUAL - звучание инструментов с разными тембрами в двух каналах (это было в старой прошивке)
WET - звучание кнопок мелодии в одном канале, звучание того же инструмента с розливом в другом канале (аналог UNISON у Бутусова)
Можно одновременно включить DUAL и WET, на них назначены дополнительные функциональные кнопки.

А теперь о том что не успел доделать:
- сохранение работает как в старой прошивке, не сохраняются новые функции
- загрузка не всегда работает исправно
- при включении нет загрузки последнего сохраненного регистра
- WET не всегда звучит тем же инструментом что и мелодия, нужно задать инструмент мелодии повторно
- Не сделаны массивы препятствующие глушению нот для каналов WET и DUAL
- пока нет ударных
Вложения:

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Больше
6 года 10 мес. назад - 6 года 10 мес. назад #43287 от Дмитрий
Александр, как относитесь к тому что сделать несколько режимов работы датчика давления,
1. как есть, мех не тянем громкость0
2. мех не тянем громкость 70-100 , потянули 127
может я не прав, но если играть на "гитаре" мех фактически не нужен , но в некоторых моментах "ударить по струнам"
не хватает громкости.
и калибровку датчика давления сделать при включении баяна , чтобы дальше выбирать регистры с дд и без
не заморачиваясь. на калибровку.
Последнее редактирование: 6 года 10 мес. назад пользователем Дмитрий.

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Больше
6 года 10 мес. назад #43289 от Иван Подольский
Иван Подольский ответил в теме Nikolaymeext
Я планирую сделать регулируемый коэффициент вляния давления на громкость, чтобы плавно менять.

Кстати, глюк моего датчика произошел от загадочного дефекта пайки - даже в микроскоп выглядело все нормально, но после капитальной пропайки пришло в норму.

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Больше
6 года 10 мес. назад - 6 года 10 мес. назад #43290 от Александр
Александр ответил в теме Калибровки и сохранение
Дмитрий, режим 2 можно сделать чуть по другому:
не тянем - громкость заданная в канале. тянем - громкость 127. Так будет возможность настроить насколько сильно можно "ударить".
Калибровку нужно сделать по комбинации кнопок, запоминать её и потом читать после каждого включения. Она практически не меняется, разве только при сильном изменении температуры.

Иван, хорошая мысль. Можно добавить функциональную кнопку, которая выбирает коэффициент влияния датчика давления, а потом можно будет менять его так же как громкость канала.
В идеале хорошо бы видеть результат на каком-нибудь индикаторе, но можно и по звуку. Вслепую.
Результат сохранить в EEPROM рядом с калибровкой датчика.

Вот уже появилось как минимум два параметра, которые нужно сохранять. Нужно добавить конфигурацию инструмента и сохранять её.
Последнее редактирование: 6 года 10 мес. назад пользователем Александр.

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Больше
6 года 10 мес. назад #43294 от Дмитрий
если есть у кого хорошая звуковая карта протестируйте пожалуйста,
аккордеоны особенно бас интересен, прогу и банк прилепил
ВНИМАНИЕ: Спойлер!
Вложения:

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Больше
6 года 10 мес. назад - 6 года 10 мес. назад #43298 от Александр
Дмитрий, с прогой всё ок, а банк неполный. Конфигурация есть, а самих сэмплов нет. Ругается на отсутствие wav файлов.

Есть одна мысль. А что если самим записать сэмплы гармоней и баянов? Особенно интересны концертный баян типа Юпитера и мастеровые гармони. Сама по себе запись не сложна. Труднее достать хорошо настроенную гармонь для записи.
Зато потом можно будет поиграть на Тульской, Шуйской, Вятской, различных заказных гармошках... нажимая кнопки на баяне и лёгким движением руки переключая банки ))

Ещё нашёл отличный звуковой модуль для MIDI системы: www.sounddev1.com
Судя по видео с сайта, звук у него супер. Попробую купить.
Последнее редактирование: 6 года 10 мес. назад пользователем Александр.

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Время создания страницы: 0.323 секунд
Работает на Kunena форум