Компаратор Я

Компаратор Я 

Вдумчивый подход к звуку, музыке и фотографии

90subscribers

156posts

Революция снизу — вокруг M‑VAVE FM‑1,

или Как нейросети и коммунистический Китай устроили коммунизм на чипах из Bluetooth‑колонок

Если в последние два-три месяца вы не сидели в танке… Или в бункере... Или в Тайге... То вы не хуже меня знаете, какая невероятная доселе движуха сейчас творится вокруг недорогого FM‑синтезатора, выпущенного, китайской компанией, которую ну никак даже во второй эшелон не запишешь. Ну разве что в третий... пожалуй…
Я-то давно говорил производителям фототехники и музыкального оборудования: «Дайте людям API и они из ваших позорных недоделок конфету сделают!» Да только кто меня слышал?.. Ну вот разве что Korg, который подошёл к моему совету слишком уж буквально и вывалил на рынок свои поделки-недоделки NTS‑x [1, 2, 3].
Ну что? Не хотели по хорошему? Ну получайте по плохому!
Первой «жертвой» стал M‑Vave. Хотя, жертвой ли? Их 60-долларовые коробочки ("4-тысячные", если в рублях, не так впечатляет ;)) с массой недоделок и в стоке-то скупали десятками благодаря их дешевизне, а уж теперь многие покупают по две-три штуки, чтобы пробовать на них сразу несколько кастомных операционных систем (прошивок), превращающие копеечную железку в виртуально-аналоговый синт или даже навороченный грувбокс с несколькими звукосинтезирующими движками.
Впрочем, всё это вы и без меня знаете. Но могу ли я вам рассказать хоть что-то, чего вы не знаете?
Честно говоря — сомневаюсь. Но я попробую. Хотя, главное, что я хотел бы сделать при помощи этой публикации — сделать временнУю зарубку. Ибо то, что мы сейчас наблюдаем вокруг FM‑1 и вайбкодинга вообще, не иначе как революцией назвать нельзя.

Отмычки: Open Source Dexed и 16 килобайт свободы

В начале НЕ было никакого официального слива SDK (набора программных инструментов для разработчиков) от компании M-Vave. Всё произошло благодаря нейросетевому реверс-инжинирингу бинарных файлов официальных обновлений, инициированному уже сложившимся комьюнити. Особый вклад внесли разработчики под никами Baud Girl и roum, и с большой вероятностью Claude Code (+ REA).
В ходе препарирования девайса выяснились любопытные детали:
  1. Аппаратным сердцем M‑Vave FM‑1 (а также, родственной ему MIDI-клавиатуры SMK‑37 Pro) является микроконтроллер JieLi AC791N (подробнее о нём далее).
  2. Периферия у FM-1 проста и незамысловата: контроллер дисплея ST7789, матрица кнопок, светодиоды и разъёмы ввода-вывода — всё завязано на центральный SoC-чип.
  3. В заводской прошивке FM‑1 обнаружился (что не удивительно) легаси-код знаменитого open-source эмулятора DX7 — Dexed/msfa. Возможно, эта «закладка» и позволила нейросети зацепиться за что-то знакомое и, потянув как за нитку, распутать весь "свитер". Но это лишь мои догадки.
  4. То, на что у разработчика человека при удачном раскладе уходят дни и недели, а при неудачном — месяцы или даже годы, нейросеть «расковыряла»… быстро… Её первой жертвой стал протокол встроенного загрузчика. Дальше — больше. Нюанс бутлоадера: Первые 16 КБ флеш-памяти намертво зарезервированы под заводской загрузчик и трогать его категорически нельзя! У FM‑1 на плате нет физической кнопки сброса (Recovery / Mask-ROM). Если вы решите написать свою прошивку с нуля и забудете прописать в коде команду обработки MIDI SysEx-сообщений (0x01 / 0x02) для принудительного перезапуска, при первой же ошибке девайс превратится в «кирпич» навсегда. Кастомный софт обязан уметь слушать эти команды, чтобы устройство можно было перепрошить повторно. Кастомные прошивки накладываются «поверх» остального пространства, весят до 1 МБ и используют Web MIDI API для передачи данных. Вы можете перепрошить FM‑1 за 2 минуты прямо из браузера Chrome или Edge по обычному USB‑C кабелю.
Лучик надежды: Есть в природе проект и по "раскирпичиванию" FM-1, но я бы на него не наделся и, как говорился, лучше бы не доводил до греха.

Что за зверь этот JieLi?

JieLi (Zhuhai Jieli Technology) — это серый кардинал китайской потребительской микроэлектроники. Если вы когда-нибудь разбирали копеечную Bluetooth-колонку с разноцветными светодиодами, беспроводные наушники за 600 руб. или поющую детскую игрушку, то с вероятностью 90% вы с ним уже сталкивались — внутри этих устройств почти наверняка стоял именно чип от JieLi. Это ультрадешевые, массовые процессоры, созданные для бытовых аудиорешений.

Чего от него ждать:

  • Архитектура pi32v2: Это собственное 32-битное RISC-ядро JieLi со встроенным математическим сопроцессором (FPU). Работает чип на частотах 120-160 МГц, чего с головой хватает для базовой цифровой обработки сигналов (DSP). Но это пессимистичная оценка. Оптимистичная, взятая из официальной документации JieLi для платформы WL82 (AC791N) указывает на двухъядерный DSP с плавающей точкой и максимальной частотой аж 320 МГц.
  • Всё в одном (SoC): На борту уже есть встроенный ЦАП (DAC), АЦП (ADC), USB-контроллер и Bluetooth-модуль. Это позволяет инженерам собирать устройства с минимальной обвязкой на плате, критически снижая себестоимость.
  • Работа со звуком: Чип легко справляется с потоком 44.1 кГц / 16 бит, а энтузиасты уже разогнали его до 48 кГц (как раз на SMK‑37 Pro).

Чего не ждать:

  • Жесткий лимит памяти: У вышеназванного чипа критически мало и оперативной (RAM), и встроенной флеш-памяти (обычно около 1-2 МБ). В ряде источников говорится и вовсе о 578 КБ SRAM на кристалле и поддержка внешней SDRAM. Как бы то ни было, но загрузить в него «тяжелые» стерео-сэмплы фортепиано весом в сотни мегабайт точно не получится. Именно поэтому если сэмплерный движок и встраивается в прошивку, то сэмплы там используют класса true Low‑Fi. Ну и остальной код и данные приходится оптимизировать чуть ли не до байта, как во времена DOS. Впрочем... теперь это, кажется, головная боль нейросети, а не человека.
  • Отсутствие документации: Официальные даташиты и SDK поставляются на китайском языке и распространяются под жесткими NDA. Западным разработчикам приходится собирать тулчейны (компиляторы под pi32v2) буквально по крупицам на Gitee и GitHub. Впрочем и это, скорее всего, головная боль отнюдь не человека.

Что было дальше?

Дальше случилось то, чего никогда ранее в истории не было!.. Ну почти :) Всё же я знаю как минимум один пример, когда разработкой музыкального чипа занимался человек, знающий толк в музыки и электронном синтезе звука.
Но теперь, благодаря Claude Code за разработку музыкально софта взялись сами музыканты и энтузиасты электронной музыки. Причём массово. Ну и результат не заставил себя долго ждать.

Во что можно превратить FM‑1?

Я давно говорю о том, что современная микроэлектроника предоставляет нам настоящие суперкомпьютеры по стоимости, дешевле навоза (если вы решите таковой купить в цветочном магазине в качестве удобрения). О таких тактовых частотах, разрядности и объёмах памяти разработчики какого-нибудь Fairlight CMI и мечтать не могли!
Если вы не в курсе, то я напомню, что в том удивительнейшем музыкальном монстре трудилось два 8‑битных процессора Motorola 6800 (в версии
Series IIx их заменили на чуть более продвинутые Motorola 68009) и работали эти процессоры на тактовой частоте всего 1 МГц! Отдельные процессоры того же семейства стояли прямо внутри музыкальной клавиатуры и внутри QWERTY-клавиатуры — чтобы без задержек считывать скан-коды кнопок и силу нажатия (velocity) клавиш, не перегружая центральный блок.
Память Fairlight CMI делилась на системную и звуковую. Системная (оперативная) память была объёмом около 64 КБ (в поздней версии IIx её расширили до 256 КБ). В RAM жила сама операционная система и данные нотных секвенций. И заметьте, этого объёма хватало на всё!.. 
Поскольку рабочая станция имела 8-голосную полифонию, и за каждый голос отвечала отдельная физическая звуковая плата, то на каждой такой плате было распаяно по 16 КБ памяти для сэмпла. Это и была звуковая память (Waveform RAM). В 16 килобайт при 8-битном сэмплировании можно было уместить от 0.5 до 1–2 секунд звука (в зависимости от частоты дискретизации, которая могла составлять от 8 до 24 кГц). Именно поэтому сэмплы в 80-х были такими короткими и «отрывистыми». Общий объем звуковой памяти на все 8 голосов составлял 128 КБ, а суммарно с системной — около 208 КБ.
Но это ещё не всё!
Никакой постоянной памяти вроде жёстких дисков или flash-а у
Fairlight CMI изначально не было. Операционная система, программы и библиотеки звуков загружались с двух огромных 8-дюймовых флоппи-дисков. На каждой такой дискете умещалось 256–512 КБ данных.
Но вернёмся к FM‑1. Замена стокового софта, написанного ленивыми и неряшливыми разработчиками на зарплате, дала энтузиастам (ну или самоотверженной и неутомимой нейросети) пространство для манёвра и позволила выжать из чипа JieLi куда больше. И оказалось, что это "больше" находится где-то очень высоко — на уровне карманных музыкальных рабочие станций!
И вот, к настоящему моменту масштаб «бедствия» достиг такого размаха, что для перечисления всех версий прошивок для FM‑1 на GitHub был создан целый портал! Описать всех его "обитателей" уже не представляется возможным в связи с их многочисленностью. Можно лишь попытаться как-то классифицировать этот легион прошивок.
Некоторые из них воспроизводят авторские синтезаторы. Некоторые — генеративные инструменты. Некоторые — грувбоксы и трекеры. А такие OS, как SLOOP и Felucca предоставляют свой API (точнее, наверное, HAL – Hardware Abstraction Layer, слой абстрагирования от аппаратуры) и потому на их базе уже было создано несколько десятков абсолютно оригинальных инструментов! Всех их уже не перечесть, поэтому предлагаю вам самостоятельно прогуляться вдоль цифровых витрин, поглазеть и даже "пощупать" - благо, для многих вариантов прошивок доступны WEB‑эмуляторы, поэтому обладание экземпляром FM‑1 не является строго обязательным.

Почему M-Vave не закроет лазейку?

Ответ прост и незамысловат: Нынешняя движуха им выгодна экономически. Пусть даже они сами к ней и не стремились.
M-Vave же сейчас со скоростью скоростного лифта несутся если и не к первому, то уж точно ко второму эшелону производителей ЭМИ. До этого бума их FM‑1 был милым нишевым синтиком с кривым стоковым секвенсором. Сегодня, благодаря энтузиастам, создавшим бесплатное ПО, продажи FM-1 взлетели до небес. Гики скупают девайсы пачками (благо, производитель позаботился о разных цветах, так что идентифицировать разные прошивки можно по разным цветам корпуса FM‑1), зачастую беря по два, три, четыре и более экземпляров.
Бренд получил колоссальный бесплатный маркетинг и распроданные склады, полностью сняв с себя гарантийные обязательства: ведь если вы окирпичите прибор "левым" кодом, то это будут исключительно ваши проблемы. Если что-то будет криво работать — вам к автору прошивки, а не к M‑Vave.
Впрочем, даже если бы производитель по какой-то неведомой причине и захотел аппаратно заблокировать возможность прошивки, то на уже выпущенных устройствах это сделать невозможно, а на вновь выпускаемых — себе дороже. Всё, Джина выпустили из бутылки!
Ну и потом, M-Vave — это производитель «пластика и кремния», их бизнес-модель строится на объемах продаж железа, а не на продаже софта.

Что будет?

Вся эта история прямо сейчас масштабируется на старшего брата — миди-клавиатуру M-Vave SMK-37 Pro. Она построена на точно таком же чипе JieLi AC791N.
Команда разработчиков уже декомпилировала её софт и запустила кастомное ядро на частоте 48 кГц с выводом звука по USB. Энтузиасты успешно перенесли туда чистый движок Dexed DX7 без заводских багов, а в планах стоит интеграция эмуляции легендарного аналогового синтезатора Juno-60. Похоже, SMK-37 Pro совсем скоро превратится из обычной клавиатуры в полноценный автономный клавишный синт. И эта штука будет посильнее… FM‑1. Ох как бы я сейчас напрягся на месте Arturia, Novation, Behringer…
Уже сейчас для SMK‑37 Pro создан отличный портал с прошивками (собственными и портированными с FM_1) и выглядит он просто потрясающе!

ЭПИЛОГ

Означает ли всё произошедшее конец рынка портативных синтезаторов?
На мой взгляд — нет. Пока нет.
Во-первых, в руках производителей всё ещё находится аппаратная база. Сообщество энтузиастов пока ещё не может обеспечить массовый выпуск недорогих устройств вроде SMK-37 Pro. Однако стремительный прогресс в области 3D-печати (в особенности, фотополимерной) довольно скоро позволит в индивидуальном порядке распечатывать сопоставимые по качеству корпусА и прочие элементы устройств (например, клавиши). Самое главное, что почти наверняка такой же прогресс, какого сейчас достигла нейросетевая разработка ПО, ждёт и проектирование электронных устройств, начиная со схемотехники про промпту и заканчивая разводкой печатной платы.
Во-вторых, в руках производителей всё ещё находится интеллектуальная собственность. Как человек, соприкасающийся с мат. моделированием, я могу сказать, что реализовать алгоритм НЧ-фильтра — дело не хитрое. Но заставить его звучать как аналоговый фильтр SH‑101 или MS‑20 – задача уже не тривиальная. И эти секреты не находятся в открытом доступе, а значит, не доступны и нейросетям.
Совершенно точно я могу предсказать одно: отныне впарить туфту с семисегментным индикатором вместо дисплея (это я намекаю на поделия Roland AIRA Compact) больше не получится. С чем я нас с вами, диванные музыканты, и поздравляю.
Но не спешите радоваться... О чём — позже...

Так что, аналог вечен?

Ну пока нейросети не добрались до проектирования электронных аналоговых устройств, которые вы можете заказать в ближайшей мастерской а-ля PCB Way, то да.
Цифровые свистоперделки, это конечно хорошо, но аналоговый DeepMind, Cat, WASP или даже Korg volca keys – это совсем другая история.

Коммунизм наступил, а радости уж нет

Моим первым личным компьютером был 8‑битный Вектор-06Ц — выдающаяся разработка советских инженеров, на две головы превосходящая забугорные «Спектрум», и «Commodore». В комплекте с ней у меня была кассета с играми: Йети (аналог Lode Runner), Тетрис, какой-то «скроллер» (названия уже не помню) и ещё несколько более простых игр. Был, конечно же, BASIC, взрослый Ассемблер, текстовый редактор и больше ничего. Не было интернета, откуда можно было бы что-то скачать, не было книг — только стопка заводских руководств, отпечатанных полукустарным способом на отвратительной бумаге. Не было друзей с такими же компьютерами, у которых можно было бы поживиться другими играми и программами. Был лишь дикий энтузиазм. Казалось бы, всё плохо?! Но нет! Было счастье от творчества и "возни" с этой "игрушкой". Много счастья!
Сейчас перед каждым из нас открыта просто вселенная возможностей! Космос информации (даже языковых барьеров почти не осталось!), а былого счастья творчества уже давно нет.
Я боюсь, что мы сейчас будем» без конца менять прошивки в своих M‑Vave устройствах, а не творчеством заниматься.
Я, признаться, давно уже в этой ловушке сижу. Как «взрослый мальчик», я могу себе позволить много электромузыкальных игрушек. И позволяю. Вся кладовка ими завалена. А в руки я брал каждое из них, от силы пару-тройку раз!
Я как царь Кощей над этим "златом чахну". Мне страшно потерять всё это, но подсознательно я знаю и понимаю, что если бы я остался с чем-то одним (пусть даже с Behringer JT‑4000M), то радость творчества может и вернулась бы… При этом, распродажа всего моего «богатства» не решит проблем. Даже если у меня не останется ни одного синтезатора, у меня всё равно будет планшет с Korg Gdget. Или ноутбук с десятками DAW (которые, кстати, тоже сейчас нейросети пекут как опытная хозяйка пирожки). Тут нужно глубже копать. Перепрошивать собственный мозг и менять среду обитания. Что, боюсь, пока не возможно... Ну разве что, не дай Бог, война нас в каменный век загонит...
С другой стороны… А кому сейчас нужно музыкальное творчество? Кого им можно сейчас удивить? По элементарному запросу нейросеть вам сейчас с ходу целый альбом хитов нагенерит за считанные минуты. Проверено.
Популярность сейчас, это просто вероятностный процесс, а вовсе не итог чего-то выдающегося, что вам удалось нащупать.
Вот и выходит, что творчества сейчас нужно лишь ради самой возни, которая не позволяет закостенеть ваши мозгам. Как поход в спортзал с абсолютно бесполезным тяганием железа.
Как недавно по этому же поводу сказал Николай Круптин: «Спасение утопающих — дело рук самих утопающих!»
А значит, братья кожаные мешки с потрохами, продолжаем изучать и творить. Учимся играть на гитарах и самоиграйках, вертим ручки аналоговых синтезаторов, записываем, сводим… Не ради результата, а ради поддержания горения Божественной творческой искры, в нас теплящейся. Чтобы оставаться человеками.

JieLi как основа коммунистического чуда

Система команд процессоров JieLi (в частности, ядра pi32v2, на котором работают M-Vave FM-1 и SMK-37 Pro) — это одна из самых экзотических и интересных вещей, с которой сталкивались пытливые инженерные умы [1, 2].
Если коротко: это не ARM, не MIPS и не RISC-V. JieLi использует собственную проприетарную гибридную архитектуру, которую они разработали сами, скрестив идеи из совершенно разных миров [1].
Вот главные анатомические особенности системы команд ядра pi32v2:

1. Генетическая связь с Blackfin (Analog Devices)

Исследователи из кибербезопасной лаборатории QuarksLab, а также авторы плагинов декомпиляции для Ghidra (проект ghidra-jieli) выяснили, что базовый синтаксис, структура и логика инструкций JieLi во многом скопированы с архитектуры Blackfin от Analog Devices.
Blackfin — это знаменитая некогда архитектура сигнальных процессоров (DSP). Поскольку JieLi изначально создавали чипы чисто под звук (MP3-декодеры, Bluetooth-колонки и т.п.), они взяли за основу DSP-ориентированную систему команд, идеально заточенную под специфическую математику [1, 3].

2. Организация регистров (32-бит / 64-бит парность)

Архитектура JieLi является Little-Endian (младший байт вперед).
Процессор имеет 16 регистров общего назначения (от R0 до R15). Однако, унаследовав черты DSP, система команд этого процессора позволяет объединять их в пары для выполнения тяжелых математических вычислений над большими числами (числами с плавающей запятой или 64-битными целыми). Например, регистры R0 и R1 могут работать вместе как один 64-битный регистр R1-R0 [1].

3. Скрещивание с ARM-логикой

Разрабатывая вторую версию ядра (pi32v2), инженеры JieLi поняли, что голый Blackfin неудобен для написания обычного системного софта (вроде Wi-Fi стеков или логики управления). Поэтому они расширили систему команд, добавив туда элементы из архитектуры ARM. В частности, механизмы работы со стеком, условные переходы и структуры некоторых команд управления памятью были подсмотрены у ядер ARM Cortex-M [1]. Вот так и была заложена основа нынешнего триумфа FM-1.

4. Параллельное выполнение (VLIW-подобные черты)

Как и во «взрослых» DSP-процессорах, в системе команд pi32v2 заложена возможность параллельного выполнения инструкций (аппаратный параллелизм). Архитектура поддерживает так называемые слоты выдачи (issue slots). В один тактовый цикл процессора можно упаковать и выполнить сразу несколько простых операций (например, одновременно сделать сдвиг регистра и сложение данных в памяти), если они не конфликтуют между собой.

5. Аппаратные циклы (Hardware Loops)

Для быстрого синтеза звука (для тех же FM и VA движков) критически важна скорость обработки массивов. В системе команд JieLi есть поддержка аппаратных циклов без накладных расходов (REP петли). Вместо того чтобы на каждой итерации тратить такты процессора на сравнение (CMP) и переход (JMP), процессор на уровне железа знает, сколько раз нужно повторить блок инструкций. Это колоссально экономит ресурсы процессора [2, 4, 5].

Как с этим работать?

Напрямую писать код на ассемблере JieLi — это то еще удовольствие из-за полного отсутствия официальной англоязычной документации. Однако в официальном SDK от производителя (который компилирует проекты в среде Code::Blocks под Windows) используется кастомная сборка GCC — PI32V2 r3 lto Compiler. Она берет стандартный код на C/C++ и сама нативно транслирует его в эти хитрые инструкции Blackfin/ARM-гибрида, избавляя программиста от необходимости ручной сборки байт-кода [1, 6, 7].

Некоторые источники:

[1] https://blog.quarkslab.com
[2] https://github.com
[3] https://github.com
[4] https://github.com
[5] https://www.reddit.com
[6] https://doc.zh-jieli.com
[7] https://gitee.com
Спасибо что держите нас на гребне волны!
Клод действительно развязывает руки, а М-Wave удачно предложил оболочку.
В своих старых роликах Вы справедливо сетовали, как трудно найти свой синтезатор мечты. Теперь для многих это не абстракция, а вполне конкретные черты! Ком-пью-тер + ИИ!
Производителям же придется селить в свои устройства ИИ изначально. Я не вижу музыкальные инструменты, как таковые.
Больше взрослые компьютеры с музыкальной клавой и продвинутым интеллектом. Специально заточенным под музыкальное творчество.
Инструменты, не требующие знаний. Где просто говори, что ты хочешь, и все будет!
Наверно тогда и начнется настоящее творчество и полет души!
А пока этого нет, объедините синтезаторы из кладовки под его управление. Я уверен, этот оркестр заиграет новыми красками и порадует Вас!)
Letuman, дружище, спасибо за Ваши неизменно ободряющие и весьма содержательные комментарии! Очень благодарен. Очень ценю! Спасибо.
Subscription levels4

Уровень поддержки TD-3

$0.63 per month
Возможность выразить благодарность за многолетний безвозмездный труд по производству тематического контента.

Уровень поддержки CraftSynth 2.0 / Volca

$1.89 per month
Для меня - пусть и символические, но средства на поддержание моей деятельности по производству тематического контента.
Для вас - доступ к полным версиям статей и видеообзоров.

Уровень поддержки Argon 8 / MiniNova

$3.8 per month
Похоже, мы единомышленники! Вам будет доступен закрытый Telegram-канал, в котором я размещаю свои текущие заметки по теме, над которой работаю. Ну и конечно, буду рад диалогу. Так что помимо доступа к закулисью, вы сможете  ещё и повлиять, например, на текущий обзор.
+ chat

Уровень поддержки KORG

$21.4 per month
Щедрый вклад в общее дело!
Думаю, мы можем поработать вместе, если конечно совместный проект касается контента, публикуемого мной здесь или на YouTube. Вам будет доступен закрытый Telegram-канал, в котором я размещаю свои текущие заметки по теме, над которой работаю. Ну и конечно, буду рад диалогу. Так что помимо доступа к закулисью, вы сможете ещё и повлиять, например, на текущий обзор.
+ chat
Go up