Как я три года пилю свой музыкальный сервер: часть вторая. Архитектура Kalinka и её место среди музыкальных систем

Как устроен KalinkaPlayer: модульный бэкенд, нативный аудиоплеер, пайплайн метаданных и мобильное управление в одном проекте.

Это «ж-ж-ж» неспроста

Как устроен KalinkaPlayer: модульный бэкенд, нативный аудиоплеер, пайплайн метаданных и мобильное управление в одном проекте.

Описываю настроение словами — и Raspberry Pi находит подходящие треки в моей коллекции, полностью локально, без облака и подписки. Как это устроено внутри.
В этом тексте я написал про то как настроить I2S трансивер работать в полнодуплексном режиме (Full Duplex). Показал как настроить на микроконтроллере STM32F407VG одновременное воспроизведение и запись встречного аудио потока по интерфейсу I2S.

В прошлой статье я разобрал Fire & Forget II – гонку 1990 года – и пересобрал её на C. Но у игры, кроме пикселей, есть звук, и с ним получилась отдельная история: звуковой драйвер тоже переехал в порт целиком, вместе со всеми своими данными. А когда в руках живой музыкальный движок 1990 года – грех не заставить его объяснить, как вообще звучала та эпоха.
Под катом – 28 минут саундтрека игры в настоящем Winamp с окном живых регистров чипа, разбор синтезатора OPL2 по этим регистрам на пяти коротких видео – от одной ноты до взрывов и вертолётов – и виртуальная машина музыки: байткод, интерпретатор и пьеса, которую композитор вырезал из игры.
Я часто ловлю тонкий, почти на грани слышимости писк, когда работаю с LLM на своем MacBook Pro. Иногда — когда вроде бы вообще ничего не запускал. Довольно долго подозревал, что профдеформация переросла в галлюцинацию.
Оказалось — нет, это физика.

Привет, Хабр! Меня попросили создать педаль гитарного перегруза, внешний вид и звучание которой должны максимально приблизиться к легендарному японскому овердрайву Barbarossa Gargoyle, выпускаемому в очень малых количествах и продаваемому по высоким ценам.
Музыкантам надо помогать, поскольку они делают нашу жизнь лучше и интереснее. Поэтому мне пришлось отложить в сторону другие дела и заняться новым проектом.
Под катом вас ждёт видео со звучанием, схема моей версии эффекта и подробное описание того, как она работает.

Доброе утро, фанаты! История длиной в 2 года о том, как придумать дейтинг приложение с выходом на иностранный рынок: получать отказы от Spotify, потерять в последний момент инвестиции — но всё же выпустить приложение!

Я хотел исполнить свою давнюю мечту — запустить DOOM на собственных наушниках.
В итоге вместе с портом я создал проект для полной модификации их софтверной части. Это первая часть статьи — она рассказывает о создании патчера стоковой прошивки.

В прошлой статье я писал как поднять себе LLM для экспериментов, но сейчас полез чистить «Понравившееся», плейлист на YouTube Music — а часть треков оттуда просто исчезла: где-то удалили клип, где-то канал в бане, где-то правообладатель передумал. Плейлист, который я собирал годами, тихо усыхал, и меня не спросили. Причем у меня есть подписка. Ну и обойдусь, а как, написано в статье.

История про то, как я сделал себе виртуального аватара для коротких видео — без генерации видео через ИИ.
Задача была простая: превратить свои текстовые заметки в вертикальные ролики, не садиться перед камерой и не тратить день на монтаж каждого выпуска.
В итоге получилась самодельная полуавтоматическая DIY‑система:
— универсальные графические ассеты персонажа
— ручная озвучка моим голосом
— разметка фраз в аудио через Audacity
— текстовый сценарий с управляющими тегами для событий в ролике
— кастомный JSX‑плагин для After Effects
Система берёт сценарий с управляющими тегами, аудиодорожку с голосом и файл разметки, после чего собирает заготовку ролика: аватар, липсинк, мимику, субтитры и слайды.
В статье показываю, как всё устроено, немного логики кода, почему первая версия попала в зловещую долину, что удалось автоматизировать, а что всё ещё приходится доводить руками.
В конце — немного статистики по первым трём роликам, запущенным с нулевых аккаунтов: YouTube, Instagram, TikTok и ВК.

Привет, Хабр! Древесину корпуса этой электрогитары пытались грызть насекомые. Чтобы такое безобразие не повторилось в дальнейшем, а также для создания позитивного настроения, дека и перо грифа самодельного инструмента были украшены изображениями весёлых птиц на цветущих веточках. Может быть, птицы отпугнут жучков.
Кроме оригинального оформления, зелёный стратокастер может похвастаться двумя яркими синглами и одним жирным хамбакером с автоотсечкой, позволяющей мгновенно получить желаемое классическое звучание одним щелчком стандартного пятипозиционного переключателя.
А самое главное, масса полноразмерного инструмента, на создание которого затрачено менее пятнадцати тысяч рублей, если не считать часы проведённого с удовольствием времени, составляет всего лишь 2 килограмма 430 граммов!

Мы занимаемся разработкой и производством диктофонов для безопасности Edic‑mini и аудиобейджей «Свидетель» для улучшения качества работы с клиентами (запись общения с клиентами, далее перевод записи в текст и речевая аналитика).

То, что свет нельзя обогнать, сложение скоростей, замедление времени — всё это стоит на обычном школьном синусе, которому угол сделали мнимым. Не метафора и не «похоже» — буквально та же функция. Давайте убедимся в этом сами.
Это финал серии. В первой синус был показан тенью вращающейся стрелки, во второй — каталогом из сорока с лишним мест, где эта тень лежит. А в конце каталога была ремарка, что у синуса есть гиперболический двойник, за которым стоит ещё пол-математики.
В основе всей статьи один ход, и он не мой — ему двести с лишним лет: подставить в синус мнимый угол. Операция законна с тех пор, как Эйлер переписал синус через экспоненту: ряду всё равно, веществен ли аргумент. Этим ходом Лобачевский объяснил свою геометрию, а Минковский — построил пространство-время; мы пройдём тот же путь с выводами. Итак: что такое sin(iθ)?
Путь: ход Эйлера → корень всего → круг и гипербола → геометрия Лобачевского → эмбеддинги нейросетей → относительность → малые углы → чёрная дыра → бонус: слово «синус» → итог

Это вторая статья серии о том, почему акустика, которая хорошо измеряется, может плохо звучать. В первой части мы разобрали АЧХ — главный график индустрии — и его фундаментальное ограничение: измерение суммирует всю энергию в точке, не различая, что пришло вовремя, а что с опозданием или вовсе лишнее. Закончилась та история закономерно для инженера, который поверил, что дело в железе: я купил лучшую акустику, которую мог себе позволить, поставил на то же место — и звук остался плохим. Просто стал другим.
Сегодня — о втором участнике любой стереосистемы. Он не указан в спецификациях, не продаётся в салонах и достаётся вам бесплатно вместе с квартирой.

В этом тексте я покажу, как на основе микроконтроллера, аудиокодека и SD карты запрограммировать самый настоящий диктофон.
Перечислены особенности разработки звукозаписывающей аппаратуры и типичные трудности разработки диктофонов.

Привет, Хабр! Меня зовут Захар Кондауров. Сегодня я хочу поделиться опытом разработки легковесной real-time модели шумоподавления и дереверберации, над которой я работал в рамках проектов Инженерно-математической школы НИУ ВШЭ и VK под руководством Ивана Бескровного, руководителя команды звуковых технологий VK Видео.
Большинство исследований в speech enhancement часто ограничиваются только шумоподавлением, хотя современные архитектуры потенциально позволяют решать более продвинутые задачи, например, совместное шумоподавление и дереверберацию. Это обусловлено тем, что бенчмарков, ориентированных на шумоподавление, значительно больше, чем на другие искажения аудиосигнала, как и моделей для сравнения. Кроме того, далеко не все решения обучены на full-band аудио с частотой дискретизации 48 кГц, в основном только на 16 кГц — это сильно уменьшает диапазон частот в аудиосигнале.
Модель, которая одновременно подавляет шум и выполняет дереверберацию для full-band аудио, позволит устройствам с ограниченным количеством ресурсов обрабатывать речевой сигнал локально, уменьшая нагрузку на серверы и задержку ответа системы. Зачастую задачи шумоподавления и дереверберации решают последовательно разными нейронными сетями. Универсальная модель уменьшит количество используемой памяти и время обработки сигнала.

Мы уже много лет разрабатываем и производим диктофоны для безопасности Edic-mini, самые маленькие в мире, кстати, по данным Книги Рекордов Гиннесса.

Привет, Хабр! Меня зовут Артур Валиев. Я продолжаю делать свой VST3-плагин Mix Teacher AI.
В прошлый раз я рассказывал про идею плагина: поставить его на дорожку, посмотреть уровни, пики, RMS, примерный LUFS, частотные зоны и получить простую подсказку человеческим языком.
Но довольно быстро стало понятно, что анализировать только одну дорожку мало.
Потому что в сведении часто проблема не в одной дорожке.
Кик сам по себе нормальный.
Бас сам по себе нормальный.
Вокал сам по себе нормальный.
Барабаны вроде тоже нормальные.
А вместе всё почему-то не звучит.
И вот тут начинается самая интересная часть: конфликты между дорожками.

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

Привет, Хабр!
Я веду свой блог и обычно пишу про кодеки и про удаленный доступ. Эта статья — немного особенная: она не только как разработчика, но и как музыканта.
Сейчас с нейросетями стало проще писать решения. Ну, «проще» - это громко сказано. Скорее, стало проще быстрее доходить до прототипа, проверять идеи, не бояться больших кодовых баз и собирать вокруг своей боли рабочий инструмент. Но сама боль от этого никуда не исчезает.
Теперь рассказываю от имени электронного продюсера:
У меня много лет была одна постоянная проблема: цифровая громкость.
Когда я был моложе и писал музыку во FL Studio, я часто задавался вопросом: почему у меня во Fruity Loops звук такой жирный, а в других DAW — какой-то другой? Почему одни сэмплы сразу звучат «мощно», а другие теряются? Почему пресет в синтезаторе вроде бы крутой, но в миксе всё разваливается?
Со временем я понял неприятную вещь: очень часто дело не в магии DAW, не в секретном плагине и не в «аналоговом тепле». Дело в громкости, gain staging и клиппинге. В перегрузе. В том, что сигнал уже на входе почти упирается в цифровой потолок.
Сэмплы, которые мы скачиваем, часто нормализованы почти в 0 dBFS: -0.1, -0.05, иногда вообще около -0.01. Пресеты в синтезаторах могут быть перегружены ещё до того, как вы повесили первый EQ. Потом сверху добавляется компрессия, сатурация, лимитер, ещё один «улучшайзер», и внезапно микс вроде громкий, но не звучит.
Я устал постоянно вручную следить за уровнями, пиками, RMS, динамикой и частотными зонами. Поэтому начал писать свой плагин — Mix Teacher AI.