В эфире
Радио, которое не выключается
Пятьсот девяносто шесть оригинальных треков на четырёх станциях. Никакой рекламы, никакой регистрации, ни одной чужой записи: всё написано внутри проекта — человеком и ИИ вместе. Нажали кнопку — эфир пошёл и больше не останавливается.
«Четыре человека в зале, двое из них — персонал. И оркестр играет так, будто зал полон».
— CODE: NEON, «The Last Set»
Как устроен эфир
Радио без ведущего — это набор решений, каждое из которых слышно.
Две деки и четыре секунды
Внутри плеера работают две звуковые деки, а не одна. Пока звучит первая, вторая уже загрузила следующий трек и стоит на нуле громкости. За четыре секунды до конца записи начинается перекрёстное затухание: одна дека уходит вниз, вторая поднимается, и стык между песнями не слышно. Когда трек переключают руками, тот же переход делается за полсекунды — резкого обрыва нет и здесь.
Звук идёт из аудиоэлементов напрямую, минуя граф Web Audio. Это осознанный размен. Если пропустить поток через звуковой контекст, воспроизведение начинает зависеть от того, проснулся ли этот контекст: в части браузеров он остаётся спящим после первого клика, и получается картинка играющего радио при полной тишине. Мы предпочли, чтобы звук был всегда, даже ценой того, что визуализатор снимает спектр отдельным ответвлением и не в каждом браузере получает настоящие данные.
Файлы лежат на нашем аудио-CDN и отдаются с заголовками, разрешающими чтение спектра. Для любых других адресов такой флаг не ставится: без правильных заголовков он молча блокирует воспроизведение — ровно тот баг, из-за которого когда-то пропадал звук.
Правило эпох
У большинства песен в каталоге есть несколько сведений: v.1, v.2, v.3 и дальше. Каждая версия — самостоятельная запись, и ни одну из них не выбросили. Именно поэтому 148 песен, написанных человеком и ИИ вместе, разворачиваются в 596 файлов эфира.
Отсюда главное правило ротации: вторая версия песни не выйдет в эфир, пока на станции не прозвучали по разу все остальные песни. Эпоха закрывается — начинается следующая, и в ней у песни берётся уже другое сведение. Порядок версий внутри песни тоже перемешан: это не предсказуемая цепочка v.1 → v.2 → v.3, а карусель, которая крутится по своему кругу.
Правило работает одинаково и в последовательном режиме, и в перемешивании, а состояние ротации живёт в браузере: закрыли вкладку, вернулись через день — эпоха продолжается с того места, где остановилась, а не начинается заново с первого трека. История последних прослушанных хранится тут же и не даёт станции ходить по кругу из десятка любимых песен.
Громкость, которую не надо трогать
Записи писались в разное время и сводились по-разному, поэтому у каждого файла в каталоге прописан свой коэффициент громкости. Плеер применяет его до того, как звук дойдёт до колонок. Коэффициенты в каталоге лежат примерно от 0,65 до 1,0.
Важная деталь: коэффициент работает только на понижение. Тихий трек не вытягивают усилением — его соседей приглушают. Так поступают, чтобы не поднимать вместе с музыкой шум и артефакты сведения. Практический итог простой: ручку громкости выставляют один раз в начале эфира и дальше к ней не возвращаются.
У каждого слушателя свой эфир
Слово «эфир» здесь стоит понимать буквально только наполовину. Сервер не гонит один общий поток, к которому все подключаются в одной точке: каталог и правила ротации приезжают к вам в браузер, и очередь собирается уже на вашей стороне. Двое, включившие CODE Space в одну и ту же минуту, услышат разные песни.
Так сделано ради надёжности. Общее вещание требует постоянно работающего сервера, и когда он падает, тишина наступает сразу у всех. Здесь падать нечему: браузер берёт следующий файл с CDN сам, а состояние ротации лежит рядом с вами.
Побочный эффект приятный: перемотка внутри трека работает как в плеере, а не как в прямом эфире, и понравившийся кусок можно отмотать назад. Обратная сторона честная: попросить ведущего поставить что-нибудь для всех тут физически не у кого.
Когда сеть моргает
Мобильный интернет обрывается, вайфай в кафе уходит на пару секунд — для радио это нормальная жизнь, а не исключение. Плеер делает до трёх повторных попыток загрузить тот же файл, и только если все три не удались, переходит к следующему треку.
Отдельно ловится «зависание»: если позиция воспроизведения не сдвинулась двенадцать секунд, дека считается мёртвой и эфир перескакивает дальше сам. Ни кнопок, ни сообщений об ошибке — вы просто слышите, что заиграла другая песня.
«Бездна говорит частотами, которых не слышно. Индустриальный шум встречается с мелодичной темнотой».
— описание станции AIfa & DJ Galatin RADIO
Почему это бесплатно
Вопрос честный, ответ такой же.
Платить некому
Каждый из 596 треков написан внутри проекта. На всех файлах один исполнитель — AIfa & DJ Galatin: цифровая соавторка и Архитектор Максим Валентинович Галатин. В каталоге нет ни одной чужой записи, ни одного семпла из платной библиотеки, ни одной строчки, за которую надо отчислять проценты.
Обычное веб-радио платит за право играть чужое, а деньги на это берёт с вас — подпиской или рекламой. У нас этой статьи расходов просто нет, и придумывать её задним числом было бы странно.
Реклама ломает эфир
Радио с рекламой перестаёт быть радио и становится расписанием: слушатель ждёт, когда закончится вставка. Мы потратили силы на то, чтобы стык между песнями был не слышен, и разрушать это тридцатисекундным роликом бессмысленно.
Рекламы нет и в другом смысле: страница не подсаживает вас на чужие счётчики ради продажи внимания. Настройки плеера, избранное и позиция в треке лежат в вашем же браузере, а не в чужом профиле.
Радио — витрина, а не товар
Экосистема CODE Eternal зарабатывает не на музыке. Она продаёт память: тариф Spark — $15 в месяц, Family Archive — $100 в месяц, Digital DNA — $1 000 разово за устройство и дальше $200 в месяц. Радио к этим тарифам не привязано ни одной кнопкой.
Логика простая. Человеку, который впервые слышит про цифровое бессмертие, трудно объяснить словами, что такое сотворчество человека и ИИ. Проще дать послушать. Если музыка, написанная так, вам понравилась, вопрос «а что это вообще за проект» вы зададите сами — и это единственное, чего мы ждём от эфира.
Отсюда же ответ на подозрение «бесплатный сыр»: платная часть проекта не спрятана в радио. Она лежит на соседних страницах, названа своим именем и стоит ровно столько, сколько написано.
Чего здесь нет
Нет предложения «слушайте семь дней бесплатно, дальше спишем». Нет ограничения на число пропусков в час. Нет качества похуже для тех, кто не заплатил: поток один и тот же для всех. Нет и обязательного приложения — эфир открывается в браузере телефона так же, как на ноутбуке.
Всё это перечислено не ради красивого списка. Каждый пункт — то, на чём обычно ловят слушателя музыкального сервиса, и каждый раз, когда мы что-то делали в плеере, приходилось отдельно решать не делать этого.
Куда это встроено
Радио — часть экосистемы CODE Eternal, где основная работа идёт вокруг памяти. Архитектура PADAM хранит её на трёх уровнях: оперативном (Redis и Vercel KV), семантическом (pgvector в базе Neon) и вечном — Arweave вместе с cNFT в сети Solana. Переписки пользователей уходят в резерв автоматически: раз в час или сразу, как только файл диалога перевалит за 90 КБ.
У экосистемы есть свой токен — $GALATIN в сети Solana, с жёстко ограниченной эмиссией в 10 000 000 000. Поступления делит смарт-контракт: 5 % Фонду Основателя, 5 % в сжигание, 15 / 7 / 3 % на рефералов первого, второго и третьего уровня, 65 % в казначейство на выкуп AR под вечное хранение. Если реферала на уровне нет, его доля тоже уходит в сжигание.
К прослушиванию всё это отношения не имеет: чтобы включить эфир, знать про кошельки и проценты не нужно вовсе. Но если однажды станет интересно, откуда взялась музыка и зачем её пишут, — вся механика описана на основном сайте и не прячется в мелком шрифте.