Все заметки цикла Бракованные Детали собраны из контента одноимённого канала, куда я активно писал в 2021 году.
Вторым синтезатором, за который я засел, был Meeblip Micro. Команда Meeblip состоит из двух человек, которые в качестве хобби возятся с созданием звукогенераторов уже больше 15 лет. Я помню их ещё по китам Atari Punk Console, которые сам делал и продавал в далёком 2009.
Micro — простой в сборке, монофонический, цифровой синтезатор на выводных компонентах. Он отлично подойдёт новичкам, которые только учатся паять. Плата настолько простая, что на ней не нашлось места даже ручкам и кнопкам — девайс целиком управляется через MIDI интерфейс.
Можно было бы назвать этот синтезатор «винтажным», если бы это не звучало как ругательство. Проект давно не поддерживается. Последним обновлениям в репозитории больше 10 лет.
1 как и всего необходимого для подключения барахла.
Простота схемы, размеры, невысокая цена, а ещё отсутствие у меня знаний о MIDI 1— были решающими факторами в том чтобы выбрать Micro в качестве второго пациента.
Была ещё одна важная особенность: единственный микроконтроллер на плате — 32 разрядная ATmega, а вся прошивка открыта и выполнена на ассемблере, что совсем уж дико по меркам синтезаторного опен-сорса.
Ассемблер для решения прикладных задач на синтезаторе. Где ещё такое найдёшь в эпоху когда подавляющая часть открытых дизайнов это “синтезаторы на Teensy”?
2 Во всяком случае мне её найти не удалось.
На Micro не существует пользовательской документации2, поэтому вот ссылка на страницу Meeblip SE, который работает точно так же и полностью совместим по MIDI командам. Скажу больше: если решитесь собирать, то делайте сразу версию SE. Это тот же самый Micro, только с физическими контролами: ручками и кнопками. Их наличие сильно сэкономит нервы новичкам.
Закупка и сборка
3 Eagle CAD.
Для синтезатора опубликована схемотехника и разводка3. Я сам сгенерировал герберы, но BOM опять пришлось восстанавливать по аннотациям. Если он вам зачем-то понадобится, то восстановленный я опубликовал на Octopart.
Заказал платы в JLCPCB, а компоненты в ЧипеДипе. Как всегда пачкой, чтобы сэкономить на доставке и менеджменте этих дебильных посылок, количество которых в нашей ковидной реальности уже давно за гранью добра и зла.
На сборку ушло, наверное, не больше полутора часов. И то, только из-за того, что какой-то вычурный MIDI разъём, который я выбрал в качестве альтернативы указанному в BOM, не попадал на своё посадочное место и пришлось усмирять его каплей суперклея.
Плата собралась с первого раза, без проблем. В ней не пришлось ничего допиливать, перепаивать, менять или докупать. Однако запустить наскоком её всё-равно не получилось.
💸 Посмотреть цены 2021 года на свой страх и риск 💸
- Платы 5 шт. — 1123 ₽
- Компоненты в ЧипоДипе — 3191 ₽
- ВСЕГО 4314 ₽.
Тут, конечно, нужно вспомнить, что закажи я 5 комплектов, себестоимость каждого была бы в 3-4 раза ниже. Так что есть отличная идея: собирайте вместе с друзьями.
Прошиваю Атмегу, как могу
Документации на Micro нет на столько, что я сначала даже не знал от какого источника эту плату запитать и какая у гнезда полярность. Но это всё было проблемами меня из будущего т.к. сначала нужно было прошить микроконтроллер.
Сама прошивка уже скомпилированная лежит в отдельном репозитории и, ура, там есть make-файл с нужными fuse-битами. Значит прошить всё будет довольно просто. Я это точно знаю, ведь последний раз я прошивал Атмеги 15 лет назад при помощи простой ардуинки. Piece of cake.
Однако, у меня ушёл целый день на то, чтобы не суметь прошить этот микроконтроллер простой ардуинкой, которая нашлась где-то на антресолях.
Иногда чересчур разросшееся вокруг популярного продукта сообщество, переваливает какую-то критическую массу и вместе с пользой начинает генерить кисель из советов, которые призваны решить все проблемы, а на деле лишь добавляют новых. Если сегодня погуглить что-то типа “Arduino as ISP programmer”, количество устаревшего, нерелеватного, противоречащего друг другу и просто вводящего в заблуждение говна в поисковой выдаче быстренько заставит вас озвереть.
Я потратил на этот квест целый день и больше тратить был не намерен. Пошёл и купил программатор “AVR ISP”. Который в итоге вообще не решил ни одной из моих проблем и только добавил новых. Люблю такое.
Китайский USBasp, который поначалу вообще не USBasp
Оказалось, что на рынке из китайского мусора за 300 рублей вы с одинаковой вероятностью можете купить устройство которое работает с прошивкой USBasp. А можете и другое, которое работает только с супер кривой китайской прогой и только под виндой.
Но мы же тут ради страданий, а не ради того чтобы всё получалось с первой попытки. Правда?
Поэтому мне достался второй, китайский вариант. Для перепрошивки такого программатора потребуется другой программатор и паяльник. Что?! Да! Чтобы распаковать ваши новые ножницы просто воспользуйтесь ножницами.
В этом месте моё терпение лопнуло. Настало время звонить эксперту 🥷🏼 .
Я звоню эксперту 🥷🏼
Тут нужно добавить контекста. Эксперт 🥷🏼 — человек, которого я знаю очень давно. До него почти невозможно дозвониться, но если получится, то можно рассчитывать на мгновенную консультацию по любому техническому вопросу в диапазоне от «как за 20 минут сделать конденсатор из картофельных очисток» и до «кажется я нашёл ошибку в советском компиляторе, давай разберёмся». Конечно же любые вопросы связанные с микроконтроллерами попадают в этот диапазон.
Иногда я звоню эксперту 🥷🏼 чтобы вдвоём поработать над какой-то проблемой. Обычно вторая пара глаз даёт значительную синергию и задача решается на порядок быстрее, чем если бы я граиндил её в одиночку. Два бесполезных факта:
- У эксперта 🥷🏼 нет высшего образования
- В тексте эксперта 🥷🏼 запрещено упоминать без эмодзи
В общем, в очередной раз это был самый короткий звонок другу. Из тех, которые сотовые операторы даже не тарифицируют. Эксперт 🥷🏼 сказал, что документацию нужно читать так:
- Сначала читаешь первую строчку документации. И, вот тут самый тонкий момент: как только прочитал первую, то
- Сразу же читай вторую!
Не удержался от шутки
Именно во второй строке официального скетча было написано как на самом деле нужно подключать ISP разъём при прошивке через Ардуино. До этого я её игнорировал т.к. решил, что всё это относится к оригинальным платам, а у меня китайский клон. В итоге reset для ведомого микроконтроллера нужно забрать с отдельной ноги ардуины, а не из ISP. Что звучит крайне разумно, если подумать об этом хотя бы секунду.
Классический reset pin
Всё сразу прошилось само собой. Да, никогда же такого не было и вот опять. На таких куражах я даже с помощью той же ардуины перепрошил этот новый, кривой, китайский программатор и теперь он нормальный программатор USBasp. Впереди ещё будут синты на атмегах, а значит он понадобится.
Пытаюсь извлекать первые звуки
Сижу и смотрю на включенный Micro, которым не могу управлять. Звуки из которого невозможно извлечь просто потому что на синтезаторе для это нет ничего: ни ручек, ни кнопок. Он целиком управляется по MIDI.
4 5-контактный разъём передаёт 2 сигнальные линии. Чё-то математика не сходится 🤔.
Для MIDI сзади предусмотрено старинное 5-pin гнездо в которое при желании можно подключить хоть дедушкины «головные телефоны». Впрочем, работать от этого они не начнут. Это устаревший разъём, который был ситуативно подобран в 80е из того что валялось под ногами4 и до сих пор повсеместно используется в синтезаторах не смотря на то, что в 2019 консорциум утвердил 3.5мм TRS-A в качестве стандарта.
На плате есть группа площадок к которым можно припаять внешние кнопки и потенциометры. Но, во-первых: функций всё-равно больше чем этих площадок, во-вторых: я не хочу возиться с корпусом, куда эти потенциометры нужно крепить и с колтунами из проводов, которые они неизбежно вокруг себя создадут. Поэтому вариант с внешними кнопками не рассматриваю.
Это я. Виртуозно играю на синтезаторе без кнопок.
Где-то в этом месте я нашёл документацию на Meeblip SE. В ней описана адресация всех доступных функций для MIDI. Это значит, что подключившись к комплюктеру, получится заслать в синтезатор нужные настройки и даже поиграть на нём через экранную клавиатуру.
Осталось придумать в который из двух USB-C на моём ноуте воткнуть 5-pin MIDI.
Пропущу подробности о том, как потратил два дня чтобы сделать USB-MIDI интерфейс который умеет пробрасывать сигнал в старый 5-pin разъём. Фактически, это устройство у которого на входе MIDI over USB, а на выходе MIDI over Serial. Такое можно собрать из говна и ардуины, но придётся разобраться как организовать роутинг этих сигналов в переходнике. Спойлер: с этим отлично справляется библиотека Control Surface.
Забегая вперёд: в конце концов этот переходник заработал, но я настолько намучился нажимать чёрно-белые клавиши мышкой на экране, что пошёл и купил нормальную MIDI клавиатуру со всеми необходимыми дырками на борту. Выбирал ту, которая будет играть вместо меня — я-то играть не умею. Технологии будущего, на помощь!
Управляем Micro с компьютера
Как управлять синтезатором на котором нет ни одной кнопки? Всё сравнительно просто: функции назначены на СС-сообщения MIDI. Такие сообщения можно слать с совместимых контроллеров и, конечно же, с компа.
Получается что физических ручек и кнопок нет, но можно управлять ручками виртуальными. Можно даже нарисовать ручки и кнопки в специальных программах, а потом назначить их конкретным адресам MIDI СС (Continuous Controller). Список адресов для Meeblip Micro я нашёл на странице разработчиков.
5 Мышка-то одна, ну.
Минусы такого подхода: невозможность крутить несколько ручек одновременно5 и необходимость запускать синтезатор с подключенным к нему полноценным комплюктером. Но пофиг, ведь выбора нет!
В качестве софта можно использовать готовые библиотеки, или универсальные среды для node-based программирования. Среди последних самые популярные, наверное, Pure Data и Max/MSP. Программы исполняемые такими средами называются «патчами».
Я не полез в Pure Data только потому что нашёл готовый патч для Max, который почти целиком реализовывал интерфейс этого синтезатора и даже давал возможность сохранять пресеты. К сожалению, он не скачивался с сайта автора и пришлось написать ему письмо, после которого он довольно быстро исправил битую ссылку.
Опять всех спас простой имеил.
6 Серьёзно: можно купить подписку на месяц и просто ковыряться с тамошними интерактивными уроками в своё удовольствие. Нигде раньше не видел на столько «естественной» документации.
С тех пор Max пригодился уже несколько раз. Это довольно дорогая, но гибкая и красивая софтина с эталонным хелпом6 который можно читать как книжку. Есть бесплатная версия в которой доступен весь функционал без возможности сохранения. Впрочем, чужими патчами можно пользоваться без ограничений.
Итоги и выводы
- Micro — очень простой в сборке и разнообразный в звучании синтезатор. Я запросто порекомендую его начинающим. Тем, кто пока не уверены в своих скиллах. Что-то напутать при сборке почти невозможно.
- Не стоит ориентироваться на стоимость, которую я указывал выше. Если заморочиться с поиском компонентов, а не покупать всё в бутиках, то можно уложиться в 2, а то и в 3 раза меньшую сумму.
- Я обратил внимание, что при работе с секвенсором моей клавиатуры синтезатор спустя, может, 10 минут будто бы зафлуживает сообщениями и его настройки начинают дрифтовать до того момента пока я не обновлю их из Max. Я не знаю с чем это связано. Напишите, если знаете вы.
- Синтезаторы без ручек — капец неудобные. По возможности старайтесь избегать такого. Если решитесь собирать, то собирайте версию Meeblip SE. Это тот же самый Micro, только со всеми необходимыми контролами на борту.
Это скорее доказательство того, что синт работает, чем демо
Хочется поковыряться в прошивке, но оставшиеся десять синтов до новогодних праздников сами себя не соберут, поэтому я переключаюсь на следующий.
UPD: Meeblip SE
В конце 2023 года получилось собрать Meeblip SE компоненты для которого пролежали в ящике 2 года. Печатную плату мне прислал Алексей iskin Евлампиев из Boxmusic. Она была спроектирована под корпус, но нуждалась в доработке, так что это был экспериментальный образец.
7 Ни первое ни второе дизайном не предполагалось, поэтому без перемычек и перекусывания дорожек не обошлось.
Я собрал синт поместив все компоненты на одну сторону платы и отказавшись от дополнительного модуля эффектов7. Поэтому на плате нет некоторых компонентов, а другие расставлены поверх чужих посадочных мест. В итоге получился классический Meeblip SE, как его задумывали разработчики.
Звучит и работает SE точно так же как Micro. Так что все плюсы и почти все минусы у них общие. Конечно же физические органы управления делают этот синт гораздо более удобным, чем Micro, но не без особенностей:
- Ручки и переключатели «заверёстаны по сетке» и не разбиты на группы. Из-за этого интерфейс не получился интуитивным.
- Есть 4 ручки на каждой из которых висит по 2 параметра одновременно. Для переключения между «слоями» нужно сдвигать специальный селектор. Такое мы осуждаем. Особенно когда параметры не записываются в память мгновенно, а для ручек не реализован т.н. snapping. Вы обречены вечно сбивать настройки одних параметров другими. На видео ниже заметно, что я регулирую параметры одного из слоёв через MIDI CC сообщения с Дигитакта, а не ручками самого Meeblip SE.
- Возможно, я не до конца понял как это работает, но настройки могут сбиваться между разными секвенциями после остановки клока. Нужно физически «обновлять» ручки чтобы они пришли в норму.
- Иногда на длинных сессиях настройки могут уплывать и тогда становится невозможно понять что вообще происходит с синтом. Помогает посылка в MIDI all notes off или простая перезагрузка синта.
- Шелкография без подписей контролов точно как на Триоде. Снова залепил всё бумажной лентой и подписал руками. Может быть позже сделаю для него крышку из оргстекла с гравировкой.
На этом всё. Скелетор вернётся на следующей неделе с новыми нескучными синтами.
⚠️ Каменты в режиме эксперимента. Нужна регистрация на GitHub и необходимо дать разрешение боту Giscus. Если это неприемлемо, можно комментировать прямо на GitHub.