А вот затем, чтобы была возможность играть вот такое:
Ну прелесть же?
Извините за ссылку на ютуб, конечно, но я не виноват, что канал Людовика именно там.
P.S. Кстати, на этом видео очень хорошо видно левую руку. Можно снять партию левой руки, и узнать чуть больше о том, как такие вещи вообще можно играть на баяне. Когда я учился в муз. школе, мне никто не показывал, что такое вообще возможно. (Впрочем, про «стандартный баянный репертуар» я уже жаловался.)
Теперь библиотека MD_MIDIFile умеет просто сканировать MIDI файл, а не проигрывать его. Т.е. просто перебирать все-все командочки из всех дорожечек нужного MIDI файла, чтобы я мог посмотреть, что там за командочки такие, и нет ли среди них таких, которые могут поломать работу ритм-машины.
Для моих целей, надо уметь сканировать MIDI файл с целью анализа. Нужно убедиться, что в MIDI-файле, предназначенном для ритм-машины, нет «неправильных» команд. Исходная библиотека быстренько просканировать содержимое файлов не даёт; она их умеет только воспроизводить в режиме реального времени.
Опыт показал, что «быстренько просканировать» можно. Нужно будет только немного доработать библиотеку; дописать пару новых методов в существующие классы. В общем, теперь понятно, куда копать.
Когда я учился в школе, был у меня т.н. «конструктор» — т.е. довольно большой (это важно) набор алюминиевых деталей с дырочками, всякие оси, колёса, шкивы и т.п. К этому конструктору была инструкция, по которой из этих деталей можно было собирать всякое. Нужно было смотреть, какие детали нужно взять, соединять их в нужных местах винтами с гайками, и всё такое.
И, я помню свою радость, когда я осознал, что из этих деталей можно собирать не только то, что нарисовано в инструкции, но и вообще всё, что хочешь. И я немедленно собрал гоночный автомобиль, прицепил к нему верёвку и бегал по всей квартире, таская за собой этот самый автомобиль, изображая гонку.
А еще я учился в музыкальной школе. На баяне. И произведения для разучивания выбирались из т.н. «стандартного баянного репертуара». И как-то в течение всего времени учёбы мне казалось, что «так и надо». И я проучился все 5 лет (на самом деле 7 лет) в твёрдой уверенности, что баян годится для исполнения довольно ограниченного типа произведений: «народная музыка», органные произведения, адаптированные для баяна, и произведения разных композиторов, пишущих специально для баяна (типа Шалаева, Гридина, Власова и т.п.) И я как-то не очень воспринимал баян, как инструмент, на котором можно играть всё, что угодно.
А тут, на старости лет, я обнаружил, что есть такой Ludovic Beier, который на баяне играет джазовую музыку. И не только джазовую. Он играет вообще всё, что угодно. Ему, я так понимаю, в детстве никто не сказал что баян — не для всего. А еще есть Ришар Гальяно. А ещё есть Владимир Данилин.
Жалко, что просветление у меня наступило только на 55-м году жизни. Жалко, что в своё время меня уложили в прокрустово ложе «традиционого баянного репертуара», а у меня не хватило воображения из него выбраться.
Хорошо, что хотя бы сейчас я учу эту самую босса-нову «Ленивый Дик», и мой баян теперь умеет звучать как труба (правая рука), бас-гитара (левая рука в режиме выборки), и ударные инструменты (ритм-машина). Когда я впервые эту композицию услышал, мне даже в голову не могло придти, что я смогу это играть. Не приходило в голову даже попытаться. Но лучше поздно, чем никогда.
В левой клавиатуре пришлось серьёзно повозиться с доклеиванием вторых магнитов на плоские рычаги, чтобы компенсировать уменьшившуюся чувствительность датчиков.
Но, воспользовавшись вчерашней новогодней ночью, я всё закончил, и теперь баян играет лучше прежнего. Теперь во всём диапазоне перемещений рычагов в левой клавиатуре магниты не выходят из чувствительной зоны датчиков и звук не прерывается, если, например, глубоко прожать кнопку.
Баян теперь питается от аккумуляторов. Полного заряда хватает больше чем на 5 часов непрерывной работы.
Сижу, учу 2-ю страницу «Ленивого Дика». И заодно понимаю, что для того, чтобы нормально это произведение сыграть, нужна нормальная партия ударных для автоаккомпанемента. Простейший автоаккомпанемент, который сейчас реализован, не подойдет, потому что в двух местах меняется размер, а в конце мелодии (когда солирующая труба тянет ноту 5 «картошек» подряд) там вообще свой собственный ритм.
В общем, пришло время писать 2-ю версию ритм-машины, в основе которой теперь будут MIDI-файлы, хранящиеся на карте памяти.
В одной из предыдущих заметок я докладывал, что при питании от 3.3 В (вместо 5 В) чувствительность датчиков Холла заметно уменьшилась, и надо заново перенастраивать положение датчиков.
Практика показала, что не всё так плохо, как могло бы быть.
Правую клавиатуру я подстроил довольно быстро. Пришлось подогнуть меньше десятка датчиков, и правая рука теперь играет как надо.
А вот с левой рукой придётся повозиться (см. рис. 1). Примерно для 30-40% датчиков надо доклеивать вторые магниты рядом с первыми, чтобы датчики срабатывали во всех возможных положениях плоских рычагов. При 5 вольтах их чувствительности хватало, чтобы работать в крайних положениях рычагов, а при 3.3 В — уже не хватает. Дополнительные магниты помогают.
Занятие очень муторное, клеить неудобно. Но деваться некуда.
Собрал как-бы начисто схему для измерения уровня заряда аккумулятора (см. рис. 1).
Проблема была в том, что при подключённом «измерительном» входе (№2 на рис. 1) не стартовали модули питания. Что-то там им мешало. Однако, если подключить аккумулятор к измерительному входу после того, как заработают модули питания, то всё работает штатно.