ZHILA
DAW, в котором звук лежит рельефом. Две комнаты: nave — собор, где камни укладываются и играются, и quarry — карьер под ним, где материал берут и режут. Сэмплирование здесь не «библиотека сэмплов», а карьер и кладка: у каждой вещи есть место, шрам, погода и клеймо.
Демка играет и слушается агентом: 32-тактовый луп из настоящих срезов, живой транспорт на аудиочасах, правка камней, undo, сохранение, импорт/запись, рендер в WAV.
Запуск
./start.sh
Открыть http://127.0.0.1:4173. Скрипт берёт ключ из DEEPSEEK_API_KEY или из уже сохранённого ключа harness (~/.dsh/.credentials.yaml); ключ остаётся на сервере и в браузер не попадает. Порт можно поменять: PORT=5000 ./start.sh.
Без сервера index.html тоже открывается, но хор работает в локальном режиме (по правилам), без модели.
Агент
Встроенный агент — это не чат сбоку, а тот же набор команд, что у руки. Модель (deepseek-chat) получает 14 инструментов и действует ими в живом проекте:
get_state, list_cores, extract_core, fracture_core, strike_face, place_stone, move_stone, delete_stone, set_weather, set_rings, set_tempo, transport, open_core, set_macros.
- Консоль
choirпоказывает настоящий трейс: инструмент, аргументы, результат, время. Ответ — одна короткая реплика на языке пользователя. - Агент видит состояние (камни, керны, погоду, позицию), проверяет, где уже занято, и не кладёт камень поверх того же диапазона без просьбы.
api liveв шапке — модель на связи;api local— сервера нет, работает локальный дирижёр по правилам (тоже через инструменты).- Ключ и модель живут только на сервере; сервер слушает 127.0.0.1 и принимает CORS только с localhost.
Примеры: «сделай темнее и добавь редкий шум на восемь тактов, потом включи», «возьми керн из лестничной клетки и нарежь его заново», «убери один камень из голоса, стало тесно», «покажи мне керн, из которого сделан бас».
MCP для внешних агентов ещё не поднят: те же 14 команд — это и есть будущая поверхность. Локальный API уже отделён от UI, поэтому сервер MCP — следующий шаг.
nave
space— пуск/пауза.- Камни: тащи вверх-вниз — время с привязкой к четверти такта; клик — выбрать;
Backspace— закопать;⌘/Ctrl+D— дублировать;⌘/Ctrl+Z/⇧⌘Z— undo/redo. crystal— живая партитура событий вокруг playhead (только просмотр).cilia— уровни жил; красные точки — живой сигнал.warmth / dust / thresholdправят мастер.render— офлайн-рендер 32 тактов вzhila-descent-04.wav(~62 c, 48 кГц, стерео).- Поле «say what you want to hear» зовёт агента. Ползунки
shape— предпочтения для следующего слоя; агент видит их в состоянии.
quarry
core tray— выбранный керн: настоящая волна, слои, шов, трещины. Линза читает глубину.fractureреально перерезает керн: 16 граней получают новые границы, и камни из этого керна начинают звучать иначе.the face— 16 граней. Удар звучит;placeкладёт одиночный камень,loop— повторяющийся каждые 2 такта.weather—age / pressure / airменяют климат всего микса,heatрасстраивает голоса,ghostдобавляет хвост источника.grow ringусиливает эрозию петель.extract:core— новый процедурный керн,file— импорт,room— запись комнаты (recтоже).ledger— кто, откуда и с каким клеймом взял.
Что работает по-настоящему
- Звук. Web Audio: срезы кернов как сэмплы, 16 граней, кольца с эрозией, климат, лимитер, панорама, анализ мастера.
- Транспорт. Аудиочасы — мастер, lookahead-планировщик, луп, play/pause/stop/seek, темп на лету.
- Правка. Выбор, перенос, удаление, дублирование, undo/redo, автосейв.
- Материал. Процедурные керны, импорт, запись; поиск швов по огибающей; повторный
fracture. - Агент. Реальная модель, 14 инструментов, трейс, проверка состояния, локальный фолбэк.
- Экспорт. Офлайн-рендер в WAV с погодой, макросами и мастером.
Что всё ещё макет
- Внешний MCP-сервер не поднят;
mcp-чип — заявка на следующий шаг. - Клеймо и опись — журнал, не права и не согласие. Модель
draft → sealописана, не реализована. crystalне редактирует ноты; нет MIDI, редактора маппинга граней, trim/loop-точек, сендов/групп, дублей записи.- Импортированные и записанные керны живут только в памяти; после перезагрузки их камни молчат. Пять жил и панорама фиксированы.
Файлы
index.html,style.css— разметка и стильengine.js— аудиоядро: керны, срезы, голоса, климат, транспорт, рендерapp.js— nave: партитура, правка, история, анализ, кристалл, командный слойquarry.js— карьер: лоток, грани, погода, кольца, описьagent.js— хор в браузере: трейс, инструменты, локальный дирижёрserver.js,agent-tools.js,start.sh— локальный сервер и модельterrain.js— рельеф и городpreview.png,preview-playing.png,preview-agent.png,preview-quarry.png,preview-mobile.png,preview-quarry-mobile.png— скриншотыpreview.mp3— 62 секунды базового рендера
Сброс проекта: очистить site data (localStorage zhila.project.v3).