# ИНСТРУКЦИЯ_СТАРТ — СИНГУЛЯР RUVSON v1.15

> Прочитал — действуй. Всё ниже проверено тестами (модуль 53/53, ОС 44/44).
> Всё офлайн: один файл = целая платформа, интернет не нужен, внешних запросов ноль.

---

## 1. ВЫБЕРИ СВОЙ ПУТЬ (30 секунд)

| Хочу… | Открой файл |
|---|---|
| **Всё сразу: 13 модулей, хор, конвейер** | `SINGULYAR_OS_v17_13_MODULES.html` (40 МБ, = СИНГУЛЯР_ОС v1.7) — [скачать с релиза](https://github.com/rtynbirf/singulyar/releases/download/v1.7/SINGULYAR_OS_v17_13_MODULES.html) и открыть двойным кликом |
| Только новый караоке-ОРКЕСТРАТОР ·15 | `СИНГУЛЯР_15_ОРКЕСТРАТОР.html` (0.7 МБ) — открывается прямо в браузере |
| Флагман «Когда теряем» ×157 голосов | `СИНГУЛЯР_01_Когда_теряем_157_голосов.html` (15 МБ) |
| Фабрику/генератор | `СИНГУЛЯР_02_ФАБРИКА_эмерджентная_архитектура.html` (7.7 МБ) |

Просто **дважды кликни файл** — он откроется в браузере (Chrome/Edge/Firefox). Ничего устанавливать не надо. Работает с флешки, из папки, без сети.

**Ещё проще:** открой сайт `https://rtynbirf.github.io/singulyar/` — там всё это же, как установимое PWA-приложение (кнопка «установить» в браузере → значок на рабочем столе, работает офлайн). Если сайт ещё не открывается — Pages включается одной кнопкой: Settings → Pages → Deploy from a branch → main / root → Save.

**Зеркала на случай недоступности GitHub:** filebin.net/ruvson-orkestrator (полный архив `RUVSON_СИНГУЛЯР_ХОСТИНГ_ПОЛНЫЙ_v18.zip`, ~85 МБ, 394 файла; MD5 — в журнале поставки). Аудио-библиотеки **в ремастер-версии** (минусовки 208 МБ / фуллы 208 МБ ZIP, mp3 128 кбит/с, клиппинг снят — хрип устранён) — ассетами релиза v1.7: `RUVSON_AUDIO_MINUS_61.zip` и `RUVSON_AUDIO_FULLS_61.zip`.

**Минусовки на сайте уже вшиты:** папка `minus/` — 62 фонограммы (61 песня + флагман с реальным вокалом). На https://rtynbirf.github.io/singulyar/ ХОР поёт сразу, ничего подгружать не нужно.

---

## 2. ПЕРВЫЙ ЗАПУСК ·15 ОРКЕСТРАТОР (2 минуты)

1. Открой `СИНГУЛЯР_15_ОРКЕСТРАТОР.html`.
2. Вкладка **ПУЛЬС** — смотри честные числа: 61 песня · 447 дорожек · 158 языков · 24 620 строк (считаются из данных, не зашиты).
3. Вкладка **РЕЕСТР** — матрица 62×13. Клик по ячейке с языком → караоке на этом языке. Пустая ячейка «·» = перевода нет (честно).
4. Вкладка **ХОР** — выбери источник звука и жми ▶:
   - `./minus/<videoId>.mp3` — на сайте уже вшито (62 фонограммы); в локальной копии положи минусовку рядом с файлом;
   - `+ свой файл…` — любой аудиофайл с диска;
   - `⬤ в память` — сохранить минусовку в браузер (IndexedDB), дальше поёт без файлов;
   - **синтез** — фон генерируется по генам песни (работает всегда);
   - **репетиция** — тишина + бегущие строки (работает всегда, даже без звука).
5. Ползунки: **громкость фонограммы / микрофона / реверб голоса / темп ×0.50–1.50 / тональность ±6 пт** (тональность действует в синтез-режиме; для файлов нужен AudioWorklet — заложено на следующую генерацию, честно написано в интерфейсе).
6. **◉ микрофон** — включи монитор голоса с реверберацией. Скоринга нет и не будет, пока нет эталонной мелодии — это принципиальная честность проекта.

## 3. ГОРЯЧИЕ КЛАВИШИ И КОМАНДЫ

**В ·15 ХОР:** `Пробел` — играть/пауза · `←/→` — ±5 с · `↑/↓` — строка назад/вперёд · `N` — режим «не смотреть» (строки объявляет экранный диктор) · `A+` — крупный текст.

**В ОС v1.7:** консоль в строке намерений: `хор` — открыть матрицу · `хор 12` — песня №12 · `петь 5 en` — петь №5 по-английски · `o` — открыть ОРКЕСТРАТОР. Полный список модулей — на главной ОС.

## 4. СВОЯ МИНУСОВКА ЗА 3 ШАГА

1. Положи mp3 рядом с HTML: `minus/rWpYxmFjm9g.mp3` (videoId из РЕЕСТРА). На сайте это уже сделано за тебя — все 62 минусовки вшиты (ремастер 128 кбит/с, без хрипа).
2. Обнови страницу — в РЕЕСТРЕ ячейка «минус» станет зелёной.
3. Кликни язык → поёт под твою минусовку. Нравится — кнопка `⬤ в память`, и файл больше не нужен.

## 4-б. СУФЛЁР ·16 — ОЦЕНКА ВОКАЛА (ULTRASTAR-СТИЛЬ)

Открой `СИНГУЛЯР_16_СУФЛЁР.html` → ★ флагман (или свой файл) → ⌇ «собрать ноты из минусовки» (DSP разберёт мелодию, карта запомнится) → ◉ микрофон → пой. Зелёная аура — попал в ноту ±25 центов; HUD считает Score, Combo (×1…×4) и ставит PERFECT / GOOD / MISS. Рекорды живут в браузере (IndexedDB). Пой в наушниках — иначе микрофон слышит минусовку из колонок.

## 4-в. СОБЫТИЕ ·18 — СПЕТЬ ВМЕСТЕ И ОСТАВИТЬ ПАМЯТЬ

Сценарий «день рождения бабушки» без сервера и аккаунтов:

1. **Бабушка** (телевизор/планшет): открой `СИНГУЛЯР_18_СОБЫТИЕ.html` → имя «Бабушка» → транспорт
   **⌇ между устройствами** (нужен интернет) → «✦ создать зал». Появятся **код из 5 символов и QR**.
2. **Мама и внучка** (телефоны): наведи камеру на QR или открой сайт и введи код → имя → «→ войти в зал».
   Через пару секунд все видят чипы участников. Слушатель без микрофона — тоже полноценный участник.
3. **Песня**: ведущий выбирает из 62 минусовок, гость может предложить свою (★ прилетит ведущему).
4. **Пение**: ведущий жмёт «◉ НАЧАТЬ» — синхронный отсчёт «3-2-1-♪», минусовка стартует у всех одновременно
   (часы сверяются автоматически). Голоса идут напрямую между устройствами (P2P), наушники — идеально.
5. **После песни** у КАЖДОГО остаётся запись события (микс: голоса + минусовка): ▶ послушать,
   ◈ СОХРАНИТЬ ПАМЯТЬ, ↗ скачать webm, ◈ фото, ¶ подпись. Без ◈ запись исчезнет сама через 7 дней.
6. «МОИ ВОСПОМИНАНИЯ» — в меню или по ссылке `СИНГУЛЯР_18_СОБЫТИЕ.html#память`.

Нюансы честно:
- Транспорт **⬣ этот браузер** — для двух окон на одном компьютере, работает вообще без сети.
- Между устройствами сигналинг идёт через публичные Nostr-ретрансляторы (в списке — 5 штук); голос
  и запись по ним НЕ идут — только P2P. Записи не покидают устройства участников никогда.
- За очень жёстким корпоративным NAT голос может не пробиться (TURN-релея в системе нет) — домашний Wi-Fi решает.
- Микрофон требует https (сайт GitHub Pages — ок) или localhost.

## 4-г. ЧЕЛОВЕК ·19 — КАК ТЕБЕ УДОБНО, ЛИЧНОСТЬ И «МОИ ЛЮДИ»

1. Открой `СИНГУЛЯР_19_ЧЕЛОВЕК.html`. Вверху система показала, что устройство умеет
   (касание, вибрация, уведомления…). Ниже — твои тумблеры: крупные кнопки, вибрация,
   уведомления, меньше движения. Любая автоматика выключается по-настоящему.
2. Раздел «Личность»: назови себя один раз (например, Бабушка). Ключ останется на устройстве
   — вытащить его оттуда нельзя (ECDSA P-256 non-exportable). Ни пароля, ни SMS.
3. Раздел «Сервер связей» — опционален. Без него зал ·18 работает по коду/QR как раньше.
   С сервером (см. `server/README.md`) появляется «Мои люди»: нашёл человека по имени →
   он принял → дальше «позвать спеть» одним нажатием, без кодов и QR.
4. «Позвать спеть»: создай зал (откроется ·18 ведущим с готовым кодом) и позови людей —
   приглашение придёт живым событием, а если человек офлайн — будет ждать его подключения.

## 4-д. ФОНЕТИКА ·20 — ПОЙ НА НЕЗНАКОМОМ ЯЗЫКЕ

1. Открой `СИНГУЛЯР_20_ФОНЕТИКА.html`. Вставь строку (или жми образец: 中文 / 한국어 / हिन्दी …).
2. Читай романизацию под каждым словом; хань и хангыль раскладываются на слоги-чипы.
3. Тапни чип — услышишь слово; галочка «⌇ медленно» — темп 0.55 для разучивания.
4. Не тот язык прозвучал? Выбери язык TTS вручную в списке (38 языков).
5. Мост с песней: в ·16 СУФЛЁР включи «⌇ трансляцию в зал» и пой — в ·20 само появится текущее слово с романизацией и следующие 6 слов.

Без интернета всё работает; голос зависит от языков, установленных в системе — если голоса нет, романизация всё равно на экране.

## 4-е. ОБЩЕНИЕ ·21 — СМЫСЛ ОДИН, ПРЕДСТАВЛЕНИЯ РАЗНЫЕ

1. Открой `СИНГУЛЯР_21_ОБЩЕНИЕ.html`. Участники примера (Человек А/Б/В) — проверочные маршруты, а не категории людей.
2. Выбери «От кого» и «Кому», введи текст, жми «Отправить» — получатель увидит сообщение всеми доступными ему каналами: текстом, шрифтом Брайля, речью, вибросигналом. Журнал показывает разбор: каждое представление несёт тот же смысл.
3. Голос — личная настройка получателя: выбери человека в блоке «Голос и манера речи», задай конкретный голос устройства, язык, темп, высоту, громкость — или профиль («Приятный / мягкий», «Чёткий / разборчивый», «Медленный / спокойный», «Быстрый / компактный»). Настройки сохраняются и применяются к следующим сообщениям.
4. «Прослушать» — проверить голос, «Остановить речь» — прервать, «Прочитать введённое вслух» — озвучить черновик. «Сбросить примеры» возвращает исходное состояние.
5. Пожелание «женский / мужской / нейтральный» сохраняется как твой выбор; система честно не угадывает характер голоса по имени — точный голос выбирается из доступных на устройстве.

Границы: Брайль — показ Unicode-шрифтом (не управление дисплеем), вибрация — компетенция ·19, доставка — зона ·17/·18/·19; без голосов на устройстве остаётся текст — отсутствие канала не тупик.

## 4-ж. СВЯЗЬ ·22 — ОДИН СМЫСЛ, ДЕВЯТЬ КАНАЛОВ

1. Открой `СИНГУЛЯР_22_СВЯЗЬ.html`. Введи код (или открой страницу со ссылкой `?зал=КОД`) и жми «открыть канал» — окна одного браузера связываются без сети; для другой машины жми «ссылка на зал ·18 с этим кодом»: совместное пение и межустройственные голоса ведёт зал СОБЫТИЕ ·18.
2. Выбери канал в блоке «КАНАЛ»: текст, файл, субтитры, голосовое, озвучка, аудиозвонок, видеозвонок, экран, совместное пение. Недоступные кнопки затемнены с причиной («нужен микрофон…»), а не спрятаны.
3. Отправляй: текст — Enter или кнопка; голосовое — «записать» → «стоп» (уходит и в журнал, и в канал); файл — «приложить файл» (до 50 МБ). Входящие показываются в журнале, крупными субтитрами и (по желанию) озвучиваются.
4. Профиль способов общения хранится на устройстве: предпочитаю текст/звук, субтитры, озвучка, вибросигнал, меньше движения, крупные кнопки. Решения из ·19 ЧЕЛОВЕК уважаются; твоё явное здесь — выше автоматики.
5. «ЕСЛИ КАНАЛ НЕДОСТУПЕН» показывает рассчитанные пути для твоего устройства: недоступный канал передаёт ход ближайшему, до базового «Текста», который работает без устройств — никто не выбрасывается из связи.

Границы: локальный канал — окна одного браузера; между устройствами транспорт ведёт зал ·18; «речь → текст» зависит от браузера (честный статус); озвучка зависит от голосов системы (точная персонализация голоса — в ·21 ОБЩЕНИЕ); журнал и записи хранятся только у тебя.

## 4-з. КРУГ ·23 — ЛЮДИ, РУМЫ, ЗВОНКИ

1. Открой `СИНГУЛЯР_23_КРУГ.html`, один раз выбери «кто ты» — 16 людей с эмодзи. Гость: нейтральное слово ПЕРЕД именем («ГОСТЬ МАША») — короткие имена круга защищены.
2. РУМЫ: ⌂ ПАПА-ДОМ сохраняется ВСЕГДА (стереть нельзя), КАРАОКЕ, КУХНЯ, ВСЕМ-ВСЕМ + личные чаты. История добирается при встрече устройств.
3. ЗВОНКИ: аудио ⌇ и видео ◈ P2P между устройствами; автоответчик сам ответит на пропущенный звонок и предложит оставить голосовое.
4. Установи как приложение — кнопка «⬇ установить» или [ИНСТРУКЦИЯ_УСТАНОВКИ.md](ИНСТРУКЦИЯ_УСТАНОВКИ.md) (Android, iPhone/iPad, Windows, macOS, Linux).

## 4-и. ПОЧТА ·24 — СВОЙ ЯЩИК У КАЖДОГО

1. Открой `СИНГУЛЯР_24_ПОЧТА.html`, выбери «кто ты» — ящик `имя@singulyar` готов мгновенно. Гостю — адрес от устройства.
2. «НАПИСАТЬ»: кому (имя круга или адрес, можно несколько), тема, текст, вложение до 512 КБ. Письмо подписывается твоим ключом ECDSA и уходит P2P; адресат офлайн — письмо ждёт в «Исходящих» и уйдёт само при встрече устройств.
3. Ящики: входящие, исходящие, отправленные, черновики, архив, корзина. Письма в покое зашифрованы ключом устройства (non-exportable), читать их можно только в этом браузере.
4. Экспорт: письмо → «⬇ EML» (откроется в любой почте), весь ящик → JSON.
5. Нужна почта для всего остального мира — в модуле рецепты: свой сервер (Stalwart, Mail-in-a-Box, Mailu/mailcow), Delta Chat поверх своего существующего ящика, алиасы (addy.io, SimpleLogin). Честно: прямой SMTP-мост из браузера невозможен (браузеры запрещают порты) — он появляется, когда поднимешь свой сервер.

## 4-к. КОШЕЛЁК ·25 — ТИХИЕ ПЕРЕВОДЫ И ХОТЕЛКИ

1. Открой `СИНГУЛЯР_25_КОШЕЛЁК.html`, выбери «кто ты» (мост к личности КРУГА). Баланс считается из журнала фактов — ничего не зашито.
2. Пополнение — кнопкой «⊕ пополнить» (наличные семейной кассы). Перевод: нажми на человека, сумма, записка (по желанию) → всё. Никаких «подтвердите», никаких уведомлений третьим лицам, никакой публичной ленты: куда и зачем ты тратишь СВОИ средства, знает только ты.
3. ХОТЕЛКИ: каждый заявляет свои («пирожок в школе» — 50 ₽). Другой закрывает любую МОЛЧА — перевод уходит, никого не спрашивая и не информируя. Получатель увидит факт, когда сам откроет кошелёк.
4. Бумажки: выпусти токены на сумму (подпись эмитента), передай строкой или через ПОЧТУ ·24; при приёме подпись проверяется. Честно: без общего реестра двойная трата между чужими устройствами не исключена — доверие эмитенту, как у настоящих купюр.
5. PIN-замок — от лишних глаз на экране. Реальные деньги — своими рельсами: в модуле рецепты (свой банк, Cashu/Fedimint/Lightning, семейный минт). Приложение — не банк и не посредник.

## 4-л. ЛИНИЯ ·26 — СВОЙ НОМЕР, SMS, OTP

1. Открой `СИНГУЛЯР_26_ЛИНИЯ.html`, выбери «кто ты» — номер линии выдан (00–15 у круга, G+код у гостей). Звонки — кнопкой ◇ ведут в КРУГ ·23.
2. SMS: диалоги по номерам, ходят P2P между устройствами — без операторов и серверов. История добирается при встрече.
3. OTP: «выдать код» — 6 цифр на 5 минут, одноразовый; отправь по внутренней SMS или скажи голосом. Честно: это подтверждения ВНУТРИ круга — внешние сайты шлют коды на внешний номер.
4. Свой внешний номер — без «добрых дядей», рецепты в модуле: своя SIM/eSIM + Android-форвардер (webhook на свой адрес), свой CPaaS-аккаунт (Telnyx/Twilio/Vonage — ключ ТОЛЬКО в твоём браузере, при CORS — свой мост рядом с SINGULAR SERVER v1), свой GSM-шлюз (Raspberry + SIM-модем + Gammu). Внутренняя линия — уже работает P2P без всех этих рельс.

## 5. СВОЙ ТЕКСТ / ПЕРЕВОД

Вкладка **РЕЕСТР → ИМПОРТ**: вставь или загрузи `LRC / SRT / VTT / TXT`. Система строго валидирует тайминги (мусор отклоняется с кодом, не чинится молча) и поднимает версию дорожки (v2, v3…). Экспорт: `LRC / WebVTT (караоке-теги) / JSON` — кнопками в ХОРе.

## 6. ЗАЛИТЬ НА СВОЙ ХОСТИНГ (PWA, 10 минут)

1. Создай репозиторий на github.com (или форкни `rtynbirf/singulyar`).
2. Загрузи всё содержимое этой папки в корень репо (файлы ≥100 МБ запрещены — тут максимум 40 МБ, ок).
3. Settings → Pages → Source: `Deploy from a branch` → Branch: `main` / root → **Save**.
4. Через 1–2 минуты сайт живой: `https://<ник>.github.io/<репо>/`.
5. Открой его в Chrome → в адресной строке появится значок «установить» → приложение на рабочий стол/телефон, работает офлайн (сервис-воркер `sw15.js` уже в комплекте).

## 7. ИНСТРУМЕНТЫ РЯДОМ

- `ИНСТРУМЕНТЫ/RUVSON_Grabber.user.js` — расширение для вытягивания превью/субтитров/текста с YouTube (установка: Tampermonkey → создать скрипт → вставить). Пошагово: `КАК_ЮЗАТЬ_GRABBER.md`.
- `ИНСТРУМЕНТЫ/УСТАНОВЩИК/` — Windows-комплект (bat/ps1): ставит всё на машину и подтягивает обновления с GitHub.
- `ДАННЫЕ/` — каталог канала (xlsx), тексты 61 песни (srt/lrc/txt), многоязычный корпус LRC, 157 переводов флагмана.

## 8. ЕСЛИ ЧТО-ТО НЕ ТАК

| Симптом | Значение и лечение |
|---|---|
| «минусовка не найдена» | На сайте минусовки вшиты (62 шт. в `minus/`, ремастер). В локальной копии положи mp3 рядом — запоёт |
| «Браузер заблокировал автозапуск» | Кликни ▶ ещё раз — это защита autoplay, не ошибка |
| «РЕЕСТР НЕ ЗАГРУЖЕН» | Файл повреждён при переносе — перекачай, сверь MD5 из отчёта |
| ·18: «хост не отвечает» | Проверь код зала и что вкладка ведущего открыта; реле-режим требует интернета |
| ·18: голос не слышно | Разреши микрофон (значок в адресной строке), надень наушники; оба участника — один и тот же браузер? это норма для режима «этот браузер» |
| Тональность не меняется в файле | Так и задумано: detune работает в синтез-режиме; для файлов ждёт AudioWorklet |
| PWA не ставится | Нужен https-хостинг (GitHub Pages подходит) или localhost; с file:// установка невозможна по правилам браузеров |

---

**Дальше по мастер-плану:** демон переводов добивает восточные языки (228/793 в паке) → стемы (Demucs в браузере) заменят репетицию → forced alignment даст точные пословные тайминги → скоринг пения включится, когда появится эталон. Детали: `ДОКУМЕНТЫ/ОТЧЁТ_ПОЛНЫЙ.md` → раздел «Дорожная карта».
