Главная Проекты → Monome Norns
Январь 2022

Monome Norns

Опыт сборки музыкального компьютера на Raspberry Pi

Все заметки цикла Бракованные Детали собраны из контента одноимённого канала, куда я активно писал в 2021 году.

Первый синтезатор, за который я решил взяться, вообще не синтезатор. Однако, без него я вовсе не стал бы ввязываться в эту авантюру длиной в 16 недель. Вот короткий обзор основных возможностей платы:

Monome — это компания состоящая из двух с половиной человек, которая уже больше 10 лет делает предельно странные музыкальные интерфейсы рассчитанные на очень узкую аудиторию. Ребята начинали ещё на Arduino, а теперь продают довольно простые, с точки зрения электроники, устройства которые стоят по $800.

Они вовремя соединили свой поделочный опыт с чувством прекрасного. Торжество минимализма в дизайне, необычные интерфейсы и премиальные по меркам рынка материалы позволяют держать высокие цены в магазине сохраняя при этом спрос.

Norns is many of things

1 Используется расширенная нотация языка Lua.

Norns — это музыкальный компьютер построенный на базе Raspberry Pi. Главное в нём не железо, а открытый софт, который сравнительно простым образом позволяет создавать музыкальные приложения для движка Supercollider. В этих приложениях1 можно использовать все имеющиеся на устройстве контролы и потрясный OLED дисплей.

За несколько лет существования Norns умельцы написали объёмную библиотеку самых всратых интерфейсов управления звуком. Сэмплеров, секвенсоров, луперов, синтезаторов и того, что вообще не поддаётся классификации. Если вы считаете, что невозможно придумать интерфейсы безумнее, чем пищевод коровы в OP-1, то ахаха. Добро пожаловать в Norns где вы будете управлять воронами, сталкивать орбиты планет и чинить ручку слот-машины.

Ну вот, например, демонстрация NornsVAE. Первого попавшегося скрипта, который я нашёл в norns.community по тегу “Drums”:

2 Во всяком случае именно так он выглядит.

3 Напоминаю: все указанные цены из 2021 года.

Norns сейчас существует в 3 вариантах:

  • Коммерческое, проприетарное устройство. Плата на базе RPi Compute Module с аккумулятором, расширенным набором входов-выходов и в корпусе из анодированных биткоинов2. Цена в магазине $8003.
  • Кит. Набор для самостоятельной сборки «закрути винтики и, пожалуйста, ничего не паяй» состоящий из платы расширения для RPi и напечатанных на принтере деталей корпуса. Цена в магазине $280.
  • DIY-версия, которая целиком выложена на GitHub. Она почти не отличается от кита, но заказать и спаять всё придётся самостоятельно. Мой выбор. Тем более что выбирать не из чего: ни коммерческой версии, ни кита на складе нет, но об этом позже.

Вот что в итоге собралось у меня. Высоту получившегося бутерброда можно уменьшить минимум вдвое.

4 Поэтому и нужен Supercollider

У музыки на RPi есть море проблем. В первую очередь это latency и отсутствие хардварного DSP4. Скорее всего, на generic ядре линукса у вас не получится сделать на RPi, например, гитарную педаль приемлемого качества. С другой стороны, для синтов эта проблема не так остра, как для эффектов, а возможность запустить на полноценном линукс-компе простенький настольный софт типа секвенсора Orca выглядит интересно. Туда же всегда можно навалить машинлёнинга, блокчейна и бигдаты.

Всё это вместе выглядит как интересная для исследования экосистема с привлекательным сообществом. Причём находится она на ранней стадии развития, когда это сообщество ещё способно на что-то повлиять.

Заказываю детальки

5 Eagle CAD

6 Bill of Material — полный список компонентов

Открытая часть Norns собрана в нескольких репозиториях. В отдельном хранится вся схемотехника и разводка5 и фотки, которые, в теории, должны упростить сборку. Больше всего мне понравился BOM6: он подготовлен на Octopart таким образом, что если вы находитесь в Европе/США, то в один клик можете купить всю необходимую бурду.

Но даже если излишества Mouser и DigiKey вам недоступны, BOM с партнамберами — большой плюс. Вы всё равно потратите 3 часа на формирование заказа, но хотя бы не потратите на него 7 часов сверяя все характеристики компонентов и читая даташиты на каждый пытаясь понять влезет ли он в посадочное место на плате.

7 Специальный векторный формат который используют производители плат

Я быстро сгенерил герберы7 и отправил платы на этот раз в JLCPCB. Со всеми приветственными купонами это стоило приступно дёшево: за 5 плат вместе с доставкой я отдал 350 рублей. Одноразовая акция неудержимой щедрости.

Развеселившись и оправдывая странные решения мыслью «в жизни нужно попробовать всё» заказал компоненты в Mouser — это крупный европейский реселлер. Цены были высокими, срок доставки в районе месяца, но в одном месте было почти всё.

Norns PCB
Платы только что из JLCPCB

Mouser работает с клиентами из РФ через прокси-компанию в Петербурге. Т.е. я оформляю заказ на их удобном сайте и на след день перезванивают прокси и спрашивают всё ли у меня в порядке и не передумал ли я. После чего просто выставляют счёт, а компоненты привозит курьер согласно указанному сроку.

8 Это первое что спросит любой реселлер из США

Никакой таможенной нервотрёпки, никаких сборных заказов с пятью разными доставками, никаких вопросов что я собираюсь делать с этими компонентами8 и прочего дерьма спроектированного специально ради траты нашего времени. Даже стоимость доставки уже включена в цены компонентов которые сайт Маузера показывает пользователям из РФ.

  • «Дорого ли это?»
  • «О боже, да!»
  • «Сломан ли процесс, как абсолютно у всех других поставщиков?»
  • «Почему-то нет»

На квадратном километре наклеек не нашлось места номиналу резисторов.

Примерно через месяц я всё получил. Первое о чём подумал после распаковки: в Маузере очень много термопринтеров. Любой резистор за 60 копеек упакован в зиплок А5 военного качества, вся поверхность которого залеплена транспортировочными наклейками с информацией среди которой для получателя нет вообще ничего полезного. В общем, понятно чё там Грета шеймит взрослых которые засрали её планету перепроизводством.

Аудиокодек (проклят)

9 там реализован не только аудиовыход, но и линейный вход.

Единственное, чего не нашлось в Маузере — аудиокодека. Кодек Cirrus Logic CS4270 — это ключевой элемент платы, превращающий её в звуковую карту для RPi. При этом сама микросхема хоть и находится в продаже давно, несёт на борту одновременно ЦАП и АЦП9 и обладает довольно прогрессивными для своего времени характеристиками.

Микросхема до сих пор производится, и в нормальной ситуации стоит около 4 баксов.

Но нормальная ситуация закончилась примерно полтора года назад, когда все закрылись по домам и, перестав сжигать деньги в барах и путешествиях, стали покупать всякий хлам на Амазоне, а производители не успевали его штамповать.

В общем, сейчас этот кодек можно купить у крупных реселлеров по приемлемым ценам, но со сроком доставки от 90 дней. У Маузера срок исполнения для них 52 недели. Ровно 1 год.

China business meme
Мои взаимоотношения с Алиэкспресс в одной картинке

10 Спойлер: всё пойдёт не так.

После поверхностного анализа рынка я заказал этот кодек на Али примерно за 15 долларов. Что может пойти не так?10

Собираю проблему

11 Surface Mount Devices

Собирать Norns было весело. Я давно не паял SMD11 и засел за плату на 3 часа. С точки зрения монтажа там только две задачки со звёздочкой: кварц и кодек. Даже если ваши руки не идеально прямые, эти компоненты не должны вызвать проблем.

Я точно не рекомендую эту плату тем, кто паяет впервые, но в качестве первого опыта с компонентами размера 0805 она сгодится. Основная тактика: начинайте с кодека и кварца и потом переходите к пассивным компонентам вокруг.

Собрал примерно за 2-3 часа

Закончил я установкой дисплея, который тут крепится на цанговый разъём. До сих пор не могу понять гениально это, или тупо. У такого способа много плюсов и минусов. На сколько мне известно в оригинальном ките Monome дисплей запаивается в плату напрямую.

После осмотра и отмывки платы решил сразу установить её на Raspberry — на столько был уверен в монтаже. Оставалось залить на карточку нужный образ линукса и всё запустить.

С образом вышла небольшая заминка. Очередное горе от ума. Вместо того чтобы воспользоваться прямой ссылкой из инструкции, я, зачем-то, руками скачал самый свежий релиз и операционка не запустилась. Правда, на локализацию этой проблемы я потратил не больше 3 минут и решил больше не проявлять самодеятельность, а двигаться по официальной инструкции.

Supercollider fail
Ну да, ну да: пошёл я нахер.

Первый старт обернулся смешанными чувствами.

Дисплей потрясный! Правда на нём написано SUPERCOLLIDER FAIL, что подозрительно авангардно для приветствия.

Всё меню работает! Но никакие приложения не запускаются.

Ищу проблему

12 Норновое?

Потратил несколько часов на Supercollider, который fail. Локализовать проблему было не сложно, но из-за того, что всё кругом новое, приходится постоянно отвлекаться. На архитектуру операционки, которая на уровне приложений сильно отличается от привычной Raspbian. На регистрацию в Discord, где тусуется норнсовское12 сообщество. Интересно же!

Norns PCBA
При первом же взгляде ясно, что ломаться тут особо нечему.

13 Им же надо как-то разговаривать с китами

Сам Supercollider — это платформа которая имеет свой язык программирования и позволяет описывать синтезаторы и целые звуковые движки музыкантам и учёным13. В Norns Суперколлайдер используется по назначению. Почти всё, что связано с аудио проходит через него, включая DSP.

На деле ошибка Supercollider fail чересчур общая. Это такой местный аналог Segmentation fault — ошибки означающей «что-то пошло не так, я не знаю что именно, но работать не буду». Я подключился к плате по SSH и с помощью cat /proc/asound/pcm и dmesg довольно быстро выяснил, что Суперколлайдер не запускается из-за того, что система не может найти звуковую карту. Ту самую за которую на плате отвечает кодек CS4270 и это, внимание, ↓

Единственный компонент, который я купил на Али! Совпадение?!🤔 🈲 🤔 ㊙️ 🤔 «Ну конечно же совпадение», подумал я, «Я просто всё херово припаял».

На всякий случай сбегал в норновый Дискорд и поговорил с тамошними спецами, чтобы убедиться, что предпринятые мной шаги не являются частью какой-то распространённой ошибки новичка. Нужно сказать, что чат был правильным местом для того чтобы задать вопросы. Вежливые знатоки там нашлись быстро.

DMESG
Если что-то не работает первым делом почитайте, что там возвращает dmesg.

Ещё оказалось, что приложения не стартуют по этой же причине: для запуска им нужен Суперколлайдер, который не стартует из-за того что не может найти звуковую карту. А невозможность развернуть самый свежий образ связана с поломанным апдейтом, который теперь нужно выполнять вручную. Да, в железке есть собственная система апдейтов по воздуху!

В общем, проблема не связана с софтом и нужно ковыряться в железе.

Делаю первый подход к решению

Следующие несколько дней прошли в попытках запустить Norns. Я сделал две вещи:

  • сначала перепробовал все на практике
  • потом перечитал всё, что написано об этом в интернете.

Уморительная последовательность, понимаю.

По традиции проверил питание и сигнальные линии. Прозвонил все дороги на плате, сверился с разводкой. Прочитал даташиты на кварц и кодек в надежде на то, что допустил какую-то детскую ошибку. Поправил пайку в местах где это было возможно. Теперь она в том состоянии, когда руками её можно сделать только хуже, лучше — нельзя.

Я даже заменил кварц просто потому что у меня был один лишний.

Ещё я немного окунулся в сообщество тех, кто уже страдал с этим девайсом. Та часть норсовского сообщества, которая ненавидит Дискорд, тусуется на форуме “Lines” отзывающемся по говорящему адресу https://llllllll.co/ . Там ещё с 2018 работают две ветки для тех, кто собирает и не может. Да это же я!

iron
Нет предела человеческой глупости: по «инструкциям из интернетов» я зачем-то сделал оснастку чтобы выпаять кварц. Разумеется, она совершенно бесполезна. Всех победила медная оплётка.

Прочитав пицот тыщ сообщений и увидев на фотках все варианты монтажа из диапазона от «сойдёт» до «я в первый раз, отвалите», сделал несколько выводов:

14 Где-то в этом месте мозг начал помечать такие сообщения тегом «тревожный звоночек»

  • Почти во всех случаях Supercollider fail — признак некачественного монтажа.
  • Люди достают кодеки, примерно как в СССР доставали колбасу. В свободной продаже их нет.
  • Есть те, кому «посчастливилось» купить фэйковые кодеки на eBay и Али14. «Да нее: мой точно нормальный, я просто не старался когда паял».
  • Человеческая неаккуратность не знает никаких границ.

Радует, что не смотря ни на что, все друг другу помогают и атмосфера в тредах домашняя.

В какой-то момент я даже позвонил Эксперту 🥷🏼! Обычно такое происходит когда я совсем уже в отчаянии и готов реветь. С Экспертом 🥷🏼 мы разработали план действий и сошлись на том, что ситуация начинает выглядеть по-настоящему странной и шансы того, что кодек был нерабочим ещё до того как попал ко мне в руки, растут с каждой, потраченной на решение этой проблемы, минутой.

Тут нужно сказать, что встретить бракованную с завода микросхему это примерно как встретить гренландскую акулу по пути в Пятёрочку. Такое возможно лишь теоретически.

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

Второй подход

За феном и осциллографом я попёрся в Фаблаб ИТМО. Давно хотел его посетить и пожалел, что не сделал этого раньше. Заодно хотел познакомиться с местными, которых было совсем немного. Основные посетители это студенты, а они летом на каникулах. Говорят что в декабре перед праздниками там не протолкнуться.

Oscilloscope
Осциллограф в Фаблабе подсказывает что кварц в порядке.
Чё ещё за Фаблаб ИТМО?

Фаблаб это такая общественная мастерская, которая отвечает требованиям Fablab Foundations. Это сеть некоммерческих организаций цель которой предоставить доступ к широкому спектру инструментов любому, кто интересуется техническим творчеством.

Фаблабы есть более чем в сотне стран. Помимо ИТМО несколько лет назад я был в Фаблабе Питерского Политеха, но не знаю продолжают ли они поддерживать этот статус сейчас.

Фаблаб ИТМО расположен прямо под музеем оптики на Васильевском Острове. Это несколько помещений с отдельным «грязным/шумным» цехом, которые расположены буквально в бывших винных погребах со сводчатыми потолками. Петербургско.

Тут сумели построить коммунизм в отдельно взятой мастерской. Я был в китайских, тайваньских, корейских, американских и европейских хакерспейсах и нигде такого не видел.

Любой человек может попасть туда совершенно бесплатно без предварительной записи. При этом не обязательно быть студентом ИТМО, или даже вовсе студентом.

Можно воспользоваться любым инструментом при условии что у вас есть базовые скиллы. Чтобы пользоваться станками вначале придётся пройти инструктаж. Звучит разумно, учитывая, что большинство людей думают что нет инструмента проще болгарки ровно до того момента пока не столкнутся с первым в их жизни кикбэком.

Базовыми расходниками типа припоя, наждачки, филамента и пр можно пользоваться бесплатно в рамках разумного. Напечатать что-то небольшое — без проблем, пластика достаточно. Очевидно, не стоит наглеть и если собрался печатать паровоз в полную величину, то принеси филамент с собой. Всё это работает пока вы не используете оборудование для выполнения коммерческих заказов. Вот их сайт, там всё написано: fablab.itmo.ru. Вот их чат, там вам помогут.

В Фаблабе я:

  • Прогрел весь монтаж феном. Это не дало никаких результатов.
  • Снял кодек, перепроверил плату под ним.
  • Вернул кодек на место. Ещё несколько раз всё перепроверил для полной абсурдности. Мысленно поставил на кодеке крест.
  • Проверил кварц осциллографом и убедился в его исправности.
  • Снял кодек уже навсегда. Чтобы запаять на его место новый, когда он появится.
  • Забыл кодек в Фаблабе, когда уходил.

Очевидно, что этот CS4270 не работает. Почему именно не работает мне разбираться не хочется. Возможно это вообще какая-то другая микросхема, которую перемаркировали чтобы подороже продать глупым лаоваям. Я закинул спор продавцу на Али. Он отказался со мной общаться, а сама площадка предсказуемо и великодушно предложила вернуть мне на счёт 0 рублей. Не то чтобы я люто верил в их здравомыслие так что норм.

Captain meme

Кроме того: у меня правда не было неопровержимых доказательств того что продавец торгует фэйками. Возможно, я сам убил микруху, например, статикой, или каким-то неудачным перегревом. Шансы очень низкие но не нулевые.

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

Вернувшись из Фаблаба я заказал несколько кодеков у крупного реселлера. Если повезёт, они придут в октябре. Ещё я подёргал свои военные связи в Китайской Народной Республике.

Первый запуск

15 Это значит, что он был снят со старой техники и не имел никакой гарантии.

Военные связи оправдали своё дурацкое название. Всего за 5 дней я получил на руки «восстановленный» кодек15. Смонтировал его за 3 минуты и всё сразу заработало. Т.е. вообще всё. Никаких танцев с паяльником или перекомпиляции драйверов.

16 А других там попросту нет.

Norns запустился сразу после установки нового компонента. Мне оставалось обновить его прошивку и установить какие-то нескучные приложения16. За прошедшие несколько дней я даже успел сделать для него крышки из акрила чтобы не заговнячить дисплей после первого же включения. Вот векторные файлы для резки.

Финальная примерка

17 А ещё потому что у меня много суперклея.

Ещё я не смог найти подходящие толкатели для кнопок, поэтому17 кнопки теперь совместимы с Lego Dots — их можно кастомизировать без ущерба для нажимательного опыта.

Ещё одно наблюдение: моя пятикнопочная миди-клавиатура, которую я сделал в самом начале, как родная работает с этой штуковиной подключаясь к ней просто по USB.

В ближайшие несколько дней я планирую изучать что со всем этим барахлом может сделать человек у которого из музыкального образования только опыт прослушивания творчества ВИА «Гражданская Оборона» в 9 классе.

Подводим итоги

Я обязательно сниму про Norns короткое видео, как только разберусь с тем, как записать звук. А сейчас пора переходить к новому пациенту. Но сначала нужно подсчитать все потраченные на Norns дублоны.

💸 Посмотреть цены 2021 года на свой страх и риск 💸
  • Платы — 350 ₽ (Аномально низкая цена)
  • Компоненты в Маузере — 7 480 ₽ (Половина этой суммы — дисплей)
  • Компоненты в ЧипеДипе — 2 220 ₽ (Включая механику)
  • Резка акрила — 400 ₽
  • Поддельный кодек на Али — 1 000 ₽
  • Восстановленный кодек из Китая — 1 500 ₽
  • Толкатели для кнопок — 0 ₽ (Lego Dots украл у дочери пока она спала)
  • ВСЕГО 12 950 ₽

18 В таможенный лимит €200 посылка уже не пролезет.

Удивительно: даже без попыток экономить и после покупки фэйков всё-равно вышло на 30% дешевле чем китовая версия, которая продаётся за $280. А если прикинуть доставку этой штуки из США с последующей растаможкой18, то вовсе вiгода.

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

Monome Norns shield

Чем больше ковыряешься с устройством тем больше убеждаешься, что абстрактные определения Norns как “many of things” или “sound computer” — самые точные. С его помощью можно сделать что угодно и при этом ничего конкретного. Никто не напишет в характеристиках «FM синтез на 6 голосов», или «сэмплер на 4 дорожки».

Norns раскрывается скорее как платформа для экспериментов нежели как полноценный инструмент в сетапе. С ним интересно «возиться» а не использовать по назначению. Тем более что какого-то понятного назначения у него нет.

При этом сообщество давно использует компьютер выходя за музыкальные рамки. В библиотеке приложений есть целый раздел посвящённый арту, а недавно на платформе вышла настоящая игра. К новогодним праздникам 2021 Monome подготовили сюрприз для сообщества выпустив Пиратское Радио — приложение в котором каждый мог создать собственную радиостанцию, а само устройство превращалось в интернет-радиоприёмник.

Этот девайс может съесть кучу вашего времени. Особенно если вы умеете программировать и вам хочется разобраться в потрохах Суперколлайдера. Norns — это открытая и довольно гибкая в конфигурации платформа с фокусом на музыке. Делайте с ней, что вздумается. Сообщество вас обязательно поддержит.

Сообщение об ошибке: