МИДИ-клавиатура Conva-64

Материалы сайта по электронике
Аватара пользователя
Dmitry Dubrovenko
Администратор
Сообщения: 2017
Зарегистрирован: 12 окт 2014, 20:20
Местоположение: Санкт-Ленинград
Контактная информация:

МИДИ-клавиатура Conva-64

Сообщение Dmitry Dubrovenko » 09 янв 2018, 22:39

Статья посвящена замене электроники в 61-клавишных клавиатурах (сорри за тавтологию).
Так же можно рассматривать данный материал, как динамическая миди-клавиатура своими руками.
Пока реализованы варианты для матрицы 8x8x8 с последовательно замыкающимися контактами.
Просто у тестеров нет клавиатур с другими матрицами.
Поэтому очень актуальна тема по изучению этого вопроса.

Период следования стробов - 342us
Длительность самих стробов несколько меньше.
Но, как мы помним, есть глобальная настройка позволяющая уменьшать/увеличивать это значение.
Подпись

andriano
Пользователь
Сообщения: 49
Зарегистрирован: 09 авг 2020, 22:50
Местоположение: Сергиев Посад

Re: МИДИ-клавиатура Conva-64

Сообщение andriano » 10 авг 2020, 11:37

У меня 3 группы вопросов:

1. По поводу заимствования идей.
Несколько я понимаю, одни и те же линии сканирования используются и для музыкальных клавиш, и для управляющих кнопок/индикации. Правильно ли я понял, что при выставлении строба на F0-F7 (RB0-RB7) синхронно выставляются RE0-RE1 для индикации и в дополнение опроса через D0-D7 (RA0-RA7) также опрашивается RE3 для кнопок (т.е. матрица уже не 8*, а (8+1)*)? И, если я понял правильно, то RE0-RE1 в неактивном режиме переводятся в высокоимпедансное состояние или в состояние, обеспечивающее запертый диод?

2. По поводу кривой чувствительности.
http://images.vfl.ru/ii/1429724793/1dc3 ... 8384_s.gif
Это зависимость чего от чего?
Что такое 1/Speed? Размерность? Как получается?
Почему если есть линейная функция от 1/Speed, нет линейной от Speed?
Почему вообще (из каких соображений) взяты именно эти функции?

3. Что такое вообще layer и зачем он нужен?

Аватара пользователя
Dmitry Dubrovenko
Администратор
Сообщения: 2017
Зарегистрирован: 12 окт 2014, 20:20
Местоположение: Санкт-Ленинград
Контактная информация:

Re: МИДИ-клавиатура Conva-64

Сообщение Dmitry Dubrovenko » 10 авг 2020, 19:52

andriano писал(а):Правильно ли я понял
Правильно. :yes:
Называется "динамическая индикация" (применяется повсеместно, и не я это придумал).

andriano писал(а):По поводу кривой чувствительности
Ссылку лучше так.
Это - зависимость параметра Velocity, в МИДИ-сообщении, от скорости нажатия клавиши.

andriano писал(а):Что такое 1/Speed?
Это величина обратно-пропорциональная скорости нажатия клавиши (т.е. чем скорость нажатия больше, тем эта величина меньше, и наоборот).
Собственно то же, что и Speed, только наклон будет в другую сторону.
Величина безразмерная (т.к. выражена в отсчётах таймера), максимальное значение (в данном случае) - 127, поэтому правильнее было бы писАть 127/Speed.

andriano писал(а):Что такое вообще layer и зачем он нужен?
А разве в статье не доходчиво объяснил?
Это как-бы виртуальная клавиатура со всеми настройками.
Т.е. при двух слоях, Вы, например, можете одному слою задать диапазон левой части клавиатуры (реальной) и задать МИДИ-канал для басового инструмента, а для второго слоя назначить диапазон правой части клавиатуры и МИДИ-канал с солирующим инструментом. Тогда двумя руками можно будет играть две партии.
В больших клавиатурах, количество слоёв доходит до четырёх.
Подпись

andriano
Пользователь
Сообщения: 49
Зарегистрирован: 09 авг 2020, 22:50
Местоположение: Сергиев Посад

Re: МИДИ-клавиатура Conva-64

Сообщение andriano » 10 авг 2020, 22:37

Спасибо. кое-что стало понятнее, но вопросы еще остались.

1. Почему все-таки отдано предпочтение светодиодам перед кнопками? Например, с "сокращенном" варианте используется всего одна кнопка при 12 светодиодах. Мне кажется, управление было бы удобнее, если бы было наоборот.

2.1. Получается, что то, что обозначено 1/Speed всего навсего количество отсчетов таймера между замыканием верхнего и нижнего контактов?
Тогда почему их именно 127?
Я от при помощи уже упомянутой Roland K-25m измерял интервалы и сравнивал с о старенькой MIDI клавиатурой Roland PC200 и акустическим пианино Заря, на которых пытался добиться аналогичных по скорости (по ощущениям) нажатий клавиш. У меня получилась примерно следующая картина:
- максимальная длительность составляет порядка 200 мс. Если она больше, Заря перестает издавать звук (молоточек не доходит до струны), а на PC200 velocity скачком (примерно с 20) уменьшается до 1. Т.е. в обоих случаях на примерно 200 мс наблюдается скачек громкости: на акустике - до 0, а на MIDI - до 1.
- минимальная длительность (фортиссимо) 2-3 мс.
- форте - в районе 5-6 мс.
Исходя их двух последних обстоятельств, для обеспечения хоть какой-то равномерности вверху диапазона нужна частота опроса порядка 5-6 кГц, чтобы точность измерения интервала времени составляла 8-10%. При такой частоте пианиссимо будет 1000-1200 отсчетов, что довольно далеко от 127.
Так почему в Вашем проекте используется величина 127?
И какова частота работы таймера?

2.2. Откуда все-таки взялись 4 используемых варианта кривой громкости? Из каких физических (биоакустических) соображений выбраны именно такие?

3. Строго говоря, "зачем нужен" и "как использовать" - это разные вопросы. Ну хотя бы еще пару тройку причин (кроме разделения клавиатуры на две части), где бы слои оказались полезными?

Что-то мы как-то мой проект обсуждаем, а вовсе не сабж.
Перенёс посты.

Аватара пользователя
Dmitry Dubrovenko
Администратор
Сообщения: 2017
Зарегистрирован: 12 окт 2014, 20:20
Местоположение: Санкт-Ленинград
Контактная информация:

Re: МИДИ-клавиатура Conva-64

Сообщение Dmitry Dubrovenko » 11 авг 2020, 18:49

andriano писал(а):Почему все-таки отдано предпочтение светодиодам перед кнопками?
Никаких предпочтений нет.
Количество кнопок/светодиодов обусловлено алгоритмом функционирования.
Семь настроек, семь указующих светодиодов (остальные - задел на будущее).
Для переключения между пунктами достаточно одной кнопки.
Ввод при помощи клавиш.
Итого, аналогично показателю цена/качество имеем высокий показатель простота/функциональность.
Разумеется можно и клавиатуру для ввода отдельную сделать, и экран сенсорный, и тачпад и много-много чего, но это уже будет другой проект уже с гораздо худшей повторяемостью (в т.ч. и новичками). :-)

andriano писал(а):всего навсего количество отсчетов таймера
Да абстрагируйтесь Вы от каких-то привязок. Считайте, что просто по одной оси - сила удара молоточка (точнее обратная величина), а по другой - преобразованное для передачи по МИДИ.

andriano писал(а):почему их именно 127
Потому что, параметр Velocity имеет максимальное значение 127 с шагом 1.
Делать больше - бессмысленная трата ресурсов, меньше - потеря разрешающей способности.
Здравый смысл. :yes:

andriano писал(а):при помощи уже упомянутой Roland K-25m измерял интервалы и сравнивал с о старенькой MIDI клавиатурой
Лично я очень рад, что на форуме появился человек пытающийся вникнуть глубоко в суть (без подколов), но описание некоторых Ваших экспериментов тяготеет в сторону "измерения сферического коня в вакууме" (без обид, надеюсь).
В фортепиано, сколь бы долго вы на клавишу не нажимали, в конечном итоге молоточек ударит по струне, и будет звукоизвлечение. Причём оно вовсе не обязано быть тихим. В самый последний момент Вы можете резко нажать на клавишу, и звук получится громким.
В миди-клавиатуре, по уму, как-раз этот удар и надо измерять.
Однако, гораздо проще (и дешевле в результате) измерить разницу по времени между началом и окончанием нажатия.
Механика у различных клавиатур различная, поэтому при одном и том же "темпе" нажатия эта разница будет различной.
Если обратите внимание, в расширенном варианте, для компенсации этого различия введена специальная настройка "Global Velocity" как-раз корректирующая скорость сканирования.
А вообще, рекомендую почитать форум. Тут чего только не предлагали для измерения. И оптические датчики, и акселерометры, и даже струны измерять (правда что-то так никто до конца и не доделал).
Сторонние же миди-клавиатуры в подобных экспериментах, надо использовать крайне осторожно, ибо, как уже говорил, только разработчик знает (а иногда и он до конца не понимает), что он там накодил.
Тут, на мой взгляд, актуальнее проводить испытание своей изготовленной клавиатуры.
Никто из бета-тестеров на подобные проблемы не жаловался.
Показать
Предположим, что данные Ваших экспериментов верны (хотя, пока не ясно, как Вы измеряли временнЫе интервалы).
Тогда Вы настраиваете таймер на 2-3ms.
Следовательно 127 измерений он произведёт за 254-381ms, что как-раз соответствует полученным Вами результатам.


andriano писал(а):Откуда все-таки взялись 4 используемых варианта кривой громкости?
Исключительно из здравого смысла и опыта. Никаких специальных биоакустических экспериментов я не проводил.

andriano писал(а):еще пару тройку причин
Причина всего одна: иметь в одной физической клавиатуре две "виртуальные".
Задача разработчика - их сделать (или не делать, если он считает, что это бесполезно), что с ними делать, пусть решает пользователь. :-)
Подпись

andriano
Пользователь
Сообщения: 49
Зарегистрирован: 09 авг 2020, 22:50
Местоположение: Сергиев Посад

Re: МИДИ-клавиатура Conva-64

Сообщение andriano » 13 авг 2020, 10:53

Dmitry Dubrovenko писал(а):Да абстрагируйтесь Вы от каких-то привязок. Считайте, что просто по одной оси - сила удара молоточка (точнее обратная величина), а по другой - преобразованное для передачи по МИДИ.

Если мы на этом этапе абстрагируемся от физики явления, то потеряем физический смысл, а вместе с ним - и критерий, определяющий логику и здравый смысл всех дальнейших рассуждений.
Потому что, параметр Velocity имеет максимальное значение 127 с шагом 1.
Делать больше - бессмысленная трата ресурсов, меньше - потеря разрешающей способности.
Здравый смысл. :yes:

Отнюдь.
Точнее, Этот довод справедлив в одном единственном случае - линейной зависимости. Во всех остальных случаях он будет приводить к потере разрешающей способности.
http://images.vfl.ru/ii/1429724793/1dc3bad9/8518384.gif
Вы ведь это строили в Экселле? Посмотрите на исходные таблицы - там явно присутствуют большие скачки по оси Y. Это и есть потеря разрешающей способности. В случае без потери разрешающей способности приращения Y в таблице должны принимать только два значения: "0" и "1". А для этого диапазон по X должен быть существенно больше диапазона по Y.
...но описание некоторых Ваших экспериментов тяготеет в сторону "измерения сферического коня в вакууме" (без обид, надеюсь).
"Без обид" - это как раз наиболее комфортный для меня стиль общения.
А по поводу "сферического коня" - он как раз и получится при преждевременном отказе от физического смысла.
В фортепиано, сколь бы долго вы на клавишу не нажимали, в конечном итоге молоточек ударит по струне, и будет звукоизвлечение.
Значит, у меня неправильное фортепьяно, ибо работает оно именно так, как я описал: при силе удара ниже некоторой границы звук исчезает. Может, механика рояля устроена как-то по-другому, но механика пианино устроена именно так.
Однако, гораздо проще (и дешевле в результате) измерить разницу по времени между началом и окончанием нажатия.
Строго говоря, не обязательно именно началом и окончанием - может быть в любом месте между этими точками. Хоть вблизи самого конца. Но интервал времени при этом получится короче, а его измерение - более ресурсоемким.
введена специальная настройка "Global Velocity" как-раз корректирующая скорость сканирования.
Я обратил на нее внимание, не понял, что это такое, но пока решил отложить разбирательство.
А вообще, рекомендую почитать форум. Тут чего только не предлагали для измерения. И оптические датчики, и акселерометры, и даже струны измерять (правда что-то так никто до конца и не доделал).
Да, кое-что прочитал. Сам делал где-то с четверть века назад на герконах. Только герконы у меня прикреплялись к клавишам, а магнит был один длинный неподвижный (от чего-то типа магнитной защелки, но гораздо длиннее - сантиметров 20-30).
Сторонние же миди-клавиатуры в подобных экспериментах, надо использовать крайне осторожно, ибо, как уже говорил, только разработчик знает (а иногда и он до конца не понимает), что он там накодил.
Тут, на мой взгляд, актуальнее проводить испытание своей изготовленной клавиатуры.
Вот и у меня такая же фигня: очень часто сталкиваюсь с тем, что у готового устройства или программы есть некоторые неизвестные, но важные для меня параметры. Поэтому, если есть такая возможность, предпочитаю пользоваться собственными разработками.
Предположим, что данные Ваших экспериментов верны (хотя, пока не ясно, как Вы измеряли временнЫе интервалы).
Мне - ясно. Измерялось время от срабатывания первого контакта до срабатывания второго. Измерялось Ардуиной, подключенной непосредственно к контактам клавиатуры. На первом этапе измерения проводились с точностью 1 мс, что оказалось достаточным для дальнейших оценок.
Тогда Вы настраиваете таймер на 2-3ms.
Следовательно 127 измерений он произведёт за 254-381ms, что как-раз соответствует полученным Вами результатам.
Это - грубейшая ошибка (мы ведь договаривались - без обид)!
Начну с аллегории: если бы это было так, то в субконтроктаве должна была быть одна клавиша, в контроктаве - две, в большой - 4, а в четвертой - 128. Вы когда-нибудь видели подобную клавиатуру?
Для человека наиболее естественным является логарифмический масштаб. Причем, для слуха это точно доказано и по частоте, и по амплитуде. Если сделать так, как Вы предлагаете, то в одной части шкалы "ступеньки будут менее 1%, а в другой - достигать 100%.
Давайте вернемся к конкретному примеру:
если 2 мс - это fff, а 200 мс - это ppp, то граница mp/mf должна находиться где-то в районе 20 мс (я думаю, не надо объяснять, почему берется именно среднее геометрическое). Т.е. с точки зрения MIDI у нас на нижний поддиапазон 1-63 приходится интервал времен 200-20 мс, а на верхний - 64-127 - интервал времен 20-2 мс. Т.е. мы видим, что внизу MIDI-отсчетов гораздо меньше, чем отсчетов по времени, а вверху - наоборот.
Давайте попытаемся навести еще немного конкретики. В спецификации MIDI никакой привязки к дБ не содержится, но интуитивно понятно, что так или иначе конструктору такую привязку нужно будет вводить.
Считается, что разрешающая способность человеческого слуха по уровню находится в районе 1 дБ. Поэтому, в частности, простенькие электронные регуляторы громкости имеют шаг регулировки 1 дБ. а более продвинутые - 0.5 дБ (чтоб с запасом). Обычно диапазон регулировки составляет 80-83 дБ, но это "от нуля", тогда как динамический диапазон любого музыкального инструмента значительно уже. Я думаю, можно оценить его сверху величиной порядка 64 дБ (т.е. по мощности более 2 млн раз). Тогда 1 ступень MIDI должна соответствовать 0.5 дБ, что составляет примерно 12-13%.
Возвращаясь к нашим 2 мс: указанные выше 12-13% - это как раз от этой величины, что составляет примерно 0.25 мс.
Таким образом, чтобы не потерять в разрешающей способности, нам необходимо опрашивать клавиатуру не реже 1 раза в 0.25 мс или с частотой не ниже 4000 Гц. Тогда на 2 мс у нас будет число отсчетов 8, а на 200 мс - число отсчетов 800. Именно столько и надо делать во избежание потери разрешающей способности. Т.е. таблица преобразования из длительности в MIDI должна иметь примерно следующий вид:
-,-,-,-,-,-,-,-,127,126,125,124 ... 2,2,2,2,2,2,2,2,1,1,1,1,1,1,1,1,1,1,1,1.
Где ячейки с 0 по 7 не используются, первые несколько значений идут с шагом 1, а в дальнейшем - начинают повторяться, и к концу таблицы количество повторяющихся величин уже составляет десятки подряд.
Показать
Приведенные выкладки справедливы, если оценивать по мощности. Если по напряжению/звуковому давлению, то 0.5 дБ - это уже всего лишь 6% и оценка частоты опроса клавиатуры увеличивается до 8000 Гц. Поэтому ранее я писал о некоторой средней оценке в 5000-6000 Гц.

Исключительно из здравого смысла и опыта. Никаких специальных биоакустических экспериментов я не проводил.
Из здравого смысла и опыта следует только один единственный вид - логарифмический. Все остальные - не имеют физического смысла.
А в спецификации MIDI, там где говорится о разных кривых, имеется в виду, что, коль скоро разные инструменты имеют различный динамический диапазон, то и кривые громкости должны различаться между собой исключительно "растяжкой" без отступления от логарифмического закона. Откуда следует, что для части кривых крайние значения силы удара не должны достигать краев MIDI диапазона. В предельном случае - динамический диапазон инструмента 0 дБ, клавиатура всегда должна возвращать значение 64.

Вот как-то так.

Аватара пользователя
Dmitry Dubrovenko
Администратор
Сообщения: 2017
Зарегистрирован: 12 окт 2014, 20:20
Местоположение: Санкт-Ленинград
Контактная информация:

Re: МИДИ-клавиатура Conva-64

Сообщение Dmitry Dubrovenko » 13 авг 2020, 20:04

andriano писал(а):потеряем физический смысл, а вместе с ним - и критерий, определяющий логику и здравый смысл всех дальнейших рассуждений
Ну, ни фига себе. :crazy:
Почему мы должны потерять физический смысл?
Просто Вам понятнее "отсчёты таймера", а для большинства пользователей "обратная громкость".

andriano писал(а):Во всех остальных случаях он будет приводить к потере разрешающей способности
Забыли уточнить, что по Y (что немаловажно).
Да и хрен бы с нею.
Ресурсы важнее. :-)

andriano писал(а):Мне - ясно
Разумеется, но Вы же сразу не рассказали. :roll:

andriano писал(а):Это - грубейшая ошибка
Ну почему же?
Все Ваши дальнейшие рассуждения верны (наверное верны, сорри, каюсь, но прочитал "по диагонали", просто сейчас нет времени тщательно штудировать, но, вроде, мысль понял) только в том случае, если сила удара будет прямо пропорциональна временной разнице замыкания контактов.

Оффтоп
andriano писал(а):Начну с аллегории
Сорри, но тут совсем не понял.


andriano писал(а):Все остальные - не имеют физического смысла
Возможно, но Вы забываете, что гармонию алгеброй не проверить (это - тоже аллегория, если что, а то начнёте говорить, что очень даже можно :roll:).
Подпись

andriano
Пользователь
Сообщения: 49
Зарегистрирован: 09 авг 2020, 22:50
Местоположение: Сергиев Посад

Re: МИДИ-клавиатура Conva-64

Сообщение andriano » 13 авг 2020, 20:59

Dmitry Dubrovenko писал(а):Забыли уточнить, что по Y (что немаловажно).
Вообще-то я комментировал Ваш график.
Возможно я ошибся, но мне показалось, что по оси Y у Вас отложено значение velocity, которое возвращает клавиатура.
Да и хрен бы с нею.
Ресурсы важнее. :-)
Сэкономленные байтики в другой контроллер не пересыпешь.
Так что экономить ресурсы - абсолютно бессмысленное занятие. Необходимо лишь следить, чтобы их хватало.
Все Ваши дальнейшие рассуждения верны (наверное верны, сорри, каюсь, но прочитал "по диагонали", просто сейчас нет времени тщательно штудировать, но, вроде, мысль понял) только в том случае, если сила удара будет прямо пропорциональна временной разнице замыкания контактов.
Во-первых, - обратно пропорциональна.
Во-вторых, сила удара - величина с не совсем понятным физическим смыслом. Думаю, именно поэтому в MIDI используется термин velocity. Ну а скорость - да, именно обратно пропорциональна временной разнице, коль скоро расстояние между контактами фиксировано.
Так что Ваше высказывание можно слегка уточнить: "Все Ваши дальнейшие рассуждения верны только в том случае, если v = s/t".
Возможно, но Вы забываете, что гармонию алгеброй не проверить

Ну, Пифагору ведь это как-то удавалось...

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

Аватара пользователя
Dmitry Dubrovenko
Администратор
Сообщения: 2017
Зарегистрирован: 12 окт 2014, 20:20
Местоположение: Санкт-Ленинград
Контактная информация:

Re: МИДИ-клавиатура Conva-64

Сообщение Dmitry Dubrovenko » 13 авг 2020, 21:28

andriano писал(а):мне показалось, что по оси Y у Вас отложено значение velocity, которое возвращает клавиатура
Да нет же.
По Y - Velocity, которое передаётся в команде, а то, что снимается с клавиатуры - X.

andriano писал(а):Необходимо лишь следить, чтобы их хватало
Так и я о том же.
Стремясь получить 1 максимума по Y, можно придти к тому, что разрядность счётчика должна быть 64, а скорость счёта 200GHz
Так что не такое уж и бессмысленное это занятие. :-)

andriano писал(а):сила удара - величина с не совсем понятным физическим смыслом
Сила, она и в Африке - сила.
Или вот.
Подпись

andriano
Пользователь
Сообщения: 49
Зарегистрирован: 09 авг 2020, 22:50
Местоположение: Сергиев Посад

Re: МИДИ-клавиатура Conva-64

Сообщение andriano » 14 авг 2020, 10:19

Dmitry Dubrovenko писал(а):Да нет же.
По Y - Velocity, которое передаётся в команде, а то, что снимается с клавиатуры - X.
Давайте еще раз:
По X - замеренный интервал времени в выбранных единицах. (входной параметр)
По Y - значение velocity, которое передается на выход клавиатуры в качестве второго параметра NoteOn. (выходной параметр)
Я что-то не так понял?
Так и я о том же.
Стремясь получить 1 максимума по Y, можно придти к тому, что разрядность счётчика должна быть 64, а скорость счёта 200GHz
Так что не такое уж и бессмысленное это занятие. :-)
Ну я лично со своей колокольни:
Вот узнал я в И-нете про Roland K-25m. Решил купить, чтобы сделать из нее MIDI-клавиатуру (решение, прямо скажем, далекое от оптимального как по цене, так и по трудозатратам). Теперь стал вопрос, то брать за основу. Два основных претендента - платы Arduino Pro Mini на Atmega328 (~100руб.) и Blue Pill на stm32f103 (~110руб.). Чтобы сделать выбор, необходимо:
а) измерить диапазон интервалов времени между замыканием пары контактов, на основе чего оценить требуемую частоту сканирования матрицы,
б) оценить время выполнения цикла сканирования каждым из контроллеров,
в) исходя из а), оценить требуемый объем таблицы для табличной функции Velocity = Velocity(Time).
Первое дало диапазон времен 2-200 мс и желаемую частоту сканирования в единицы кГц. Второе было проведено только для Atmel328 и составило порядка 100 мкс. В результате чего выбор был сделан в пользу Атмеги и оценка для stm32 уже не проводилась. Ну и объем таблицы можно оценить в 1 кБайт, что приемлемо для обоих контроллеров.
Таким образом, последовательность действий такая:
1. Сформулировать технические требования к устройству (для чего может понадобиться провести измерения).
2. По сформулированным требованиям попытаться подобрать контроллер.
3. Если удалось - на 5.
4. Если не удалось - подкорректировать требования и на 2.
5. Выбор контроллера осуществлен.
Вы же, насколько я понял, предлагаете заранее урезать технические требования "как бы чего не вышло", не опираясь на возможности конкретного "железа".
Оффтоп
Кстати, я, честно говоря, так и не понял, зачем было переносить обсуждение общих вопросов клавиатуростроения применительно к Roland K-25m в тему для Conva-64. Ну да ладно, чтобы хоть как-то соответствовать топику, спрошу:

Кстати, я как-то уже задавал вопрос, но так и не получил ответа: какова частота сканирования матрицы в сабже?

Сила, она и в Африке - сила.
Или вот.

Ну вот - опять терминологическая путаница: сила имеет размерность Ньютон, а удар характеризуется не силой, как таковой, а импульсом, имеющим размерность Ньютон*с. Т.е. это, во-первых, совсем не одно и то же, а во-вторых, разница - величина отнюдь не безразмерная (как если бы мы, скажем, преобразовывали дюймы в Си), а имеет размерность времени.
Поэтому, что такое "сила удара" интуитивно, возможно, и понятно, но как ее измерять в физических величинах - неизвестно.

Аватара пользователя
Dmitry Dubrovenko
Администратор
Сообщения: 2017
Зарегистрирован: 12 окт 2014, 20:20
Местоположение: Санкт-Ленинград
Контактная информация:

Re: МИДИ-клавиатура Conva-64

Сообщение Dmitry Dubrovenko » 14 авг 2020, 19:40

andriano писал(а):Я что-то не так понял?
Теперь всё так. :yes:

andriano писал(а):я лично со своей колокольни
Как говаривал М. Жванецкий (устами Р. Карцева): "Вот! Наконец-то подошли к самому главному".
Надо просто посмотреть в первом посте, для чего клавиатура предназначается.
Трудно производить какие-либо измерения, когда клавиатуры нет. :-)
И, кстати, как Вы оцениваете время выполнения, не написАв кода (разумеется, о-о-о-чень приблизительно это можно, но больно большая неточность, что б быть особо полезной)?

andriano писал(а):предлагаете заранее урезать технические требования
Я предлагаю только не завышать их бездумно.
Ну кому, например, нужна разрешающая способность в 64 бита? :roll:

andriano писал(а):какова частота сканирования матрицы в сабже?
Коммерческая тайна. :-D
Шутка. Наизусть не помню. Надо смотреть.

andriano писал(а):как ее измерять в физических величинах - неизвестно.
Вот поэтому и измеряют всякие косвенные значения.

Оффтоп
andriano писал(а):зачем было переносить обсуждение общих вопросов клавиатуростроения применительно к Roland K-25m в тему для
Conva-64.

Так Вы как-то очень быстро переключаетесь с одного на другое, а то и третье.
Я рассортировывать не успеваю.
Подпись

Эдуард
Новый пользователь
Сообщения: 2
Зарегистрирован: 23 дек 2020, 21:41
Местоположение: Ижевск

Re: МИДИ-клавиатура Conva-64

Сообщение Эдуард » 02 янв 2021, 22:38

схема собрана и работает - большое спасибо за вашу работу по разработке устройства - наконец то восстановил старую MIDI клавиатуру.
теперь вопрос:
есть клавиатура и отдельный звуковой модуль типа WAVEtable (по сути банк инструментов) от древних звуковых карт. подружить я их могу по MIDI, но как переключать инструменты, т.е. например играл на пианино, переключиться на скрипки или ударные? на компьютере в программах это делается мышкой. хотя так же хотелось бы иметь такую ручку -крутилку или кнопки для выбора.
полагаю нужно что то - желательно с энкодером и жк индикатором - на котором будут отображаться инструменты. либо выбор на 3х значном цифровом индикаторе - номер инструмента.
в схеме согласно описанию что то такое есть, но не информативно и быстрого переключения не получить(из описания немного непонятно как это делается).
может быть есть готовые решения - схемы и прошивки?

Аватара пользователя
Dmitry Dubrovenko
Администратор
Сообщения: 2017
Зарегистрирован: 12 окт 2014, 20:20
Местоположение: Санкт-Ленинград
Контактная информация:

Re: МИДИ-клавиатура Conva-64

Сообщение Dmitry Dubrovenko » 03 янв 2021, 22:15

Эдуард писал(а):переключиться на скрипки или ударные?
Что бы переключиться на ударные надо выбрать 10-й миди-канал (обычно).
А вот что бы выбрать конкретный инструмент, надо применять команды группы Program Change в сочетании с Bank Select (группы Control Change).
Это есть только в расширенной версии.
Это делается изменением соответствующих настроек.
Специальных табло, кнопок, енкодеров и т.п. в данной версии не предусмотрено.
Подпись

Maxtech2
Пользователь
Сообщения: 69
Зарегистрирован: 10 ноя 2021, 21:15
Местоположение: Пермь

Re: МИДИ-клавиатура Conva-64

Сообщение Maxtech2 » 15 ноя 2021, 10:15

Здравствуйте, сегодня в своем хламе наткнулся на 18LF4620 из сигнализации какой-то, по пдфу вроде как совместим с 18F46K22 по портам уж точно одинаково( но полная совместимость пока не точно не весь пдф прочитал) похоже работает на более низком напряжении 3.3v против 5v на 18F46K22

Аватара пользователя
Dmitry Dubrovenko
Администратор
Сообщения: 2017
Зарегистрирован: 12 окт 2014, 20:20
Местоположение: Санкт-Ленинград
Контактная информация:

Re: МИДИ-клавиатура Conva-64

Сообщение Dmitry Dubrovenko » 15 ноя 2021, 11:19

Maxtech2 писал(а):полная совместимость пока не точно

Пока вижу, что у него таймеров меньше.
Надо сверять с оригинальной программой.

Maxtech2 писал(а):работает на более низком напряжении 3.3v против 5v

Не забудьте об этом при программировании.
Подпись

Аватара пользователя
Dmitry Dubrovenko
Администратор
Сообщения: 2017
Зарегистрирован: 12 окт 2014, 20:20
Местоположение: Санкт-Ленинград
Контактная информация:

Re: МИДИ-клавиатура Conva-64

Сообщение Dmitry Dubrovenko » 16 ноя 2021, 22:15

Dmitry Dubrovenko писал(а):Надо сверять с оригинальной программой

Сверил.
Не подойдёт.
:oops:
Подпись

Эдуард
Новый пользователь
Сообщения: 2
Зарегистрирован: 23 дек 2020, 21:41
Местоположение: Ижевск

Re: МИДИ-клавиатура Conva-64

Сообщение Эдуард » 07 авг 2022, 17:07

Здравствуйте. куда то написал - почему то не отобразилось сообщение..
По вашей схеме удалось восстановить MIDI клавиатуру - все работает. Большое СПАСИБО за проделанную работу!!!
Вопрс - есть ли возможность вывести на этой клавиатуре( схеме на pic18f46k22) аппаратный USB вместо или вместе со стандартным MIDI? По датащиту посмотрел - аппаратного USB в ней нет(хотя может быть не так смотрел), но может быть есть возможность обойтись без костылей-адаптеров? В новом комповом железе нет возможности поставить карту с MIDI входами.

Аватара пользователя
Dmitry Dubrovenko
Администратор
Сообщения: 2017
Зарегистрирован: 12 окт 2014, 20:20
Местоположение: Санкт-Ленинград
Контактная информация:

Re: МИДИ-клавиатура Conva-64

Сообщение Dmitry Dubrovenko » 07 авг 2022, 20:03

Эдуард писал(а):куда то написал - почему то не отобразилось сообщение..

Так читаем объявления-то. :acute:


Эдуард писал(а):аппаратного USB в ней нет

Совершенно правильно.


Эдуард писал(а):без костылей-адаптеров

Почему же сразу "костылей"?
Попробуйте использовать КОМ-порт с адаптером (на многих современных материнских платах ком-порт, хоть и не выведен на заднюю панель, присутствует в виде разъёма, и потребуется "выкидыш").
Если уж совсем нет, то и ЮСБ-МИДИ - неплохой вариант (только не ущербный).
Подпись


Вернуться в «Электроника»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 6 гостей