music-to-video — один музыкально-обоснованный, бит-синхронизированный рабочий процесс по созданию видео

Используйте этот навык, чтобы превратить музыкальный трек в видео HyperFrames, синхронизированное с битом. Вы анализируете трек один раз, планируете кадры, заполняете план на каждый кадр и строите каждый кадр как композицию. Входные данные — это музыкальный трек плюс необязательные изображения или видео пользователя — рассказа и захвата веб-сайта нет. Типография и шаблоны — это основа (для полного видео не требуется никаких активов); любые медиа, которые предоставляет пользователь, подгоняются под ту же битовую сетку.

Вы — оркестратор. Работайте в videos/<project>/. Выполняйте шаги по порядку и проходите каждую контрольную точку перед продолжением. Два шага требуют участия пользователя: Step 3 (утверждение плана) и Step 6 (утверждение рендера) — оба являются контрольными точками (воротами) в соответствии с ../hyperframes-core/references/brief-contract.md (прочитайте его перед Step 0): в автономном режиме публикуйте сводку как уведомление и продолжайте, а не ждите. Выполните каждый шаг самостоятельно, за исключением Step 4, где вы запускаете в работу одного суб-агента на каждый кадр. Не размещайте правила дизайна и движения в этот файл — они живут в references/ и в подпомощнике frame-worker.

SKILL_DIR = директория этого навыка. PROJECT_DIR = videos/<project-name>/.

Workflow: Шаг 0 настройка → hyperframes.json + assets/bgm.mp3; Шаг 1 анализ → audiomap.json; Шаг 2 скелет → STORYBOARD.md (кадры, группы TBD); Шаг 3 план → заполнить STORYBOARD.md + frame.md; Шаг 4 сборка → compositions/frames/NN-*.html; Шаг 5 сборка → index.html; Шаг 6 рендер → renders/video.mp4.

Две идеи, которые формируют всё

  • Один анализатор, и вы ему доверяете. analyze-beatgrid.py — единственный анализатор битов — никогда не пересчитывайте биты другим инструментом или вслепую. Его энергия / плотность / rolls / onsets / silences всегда надёжны. Его bpm и beats_sec надёжны только тогда, когда музыка действительно ритмична; на спокойной музыке сетка — это метроном, который навязал трекер, поэтому темп ориентируйтесь по фразам и энергии и никогда не делайте жёсткие переходы к ней. Определение того, в каком случае вы находитесь, — это pacing каждого кадра (Step 2).

  • Один кадр = один файл; группы живут внутри. Шаг 2 делит трек на кадры, и каждый кадр становится одним файлом композиции compositions/frames/NN-<frame_id>.html, созданным одним frame-worker. Кадр может подразделяться на группы (каждая — шаблон или комбинация примитивов движения). Лишняя плотность размещается внутри группы, поэтому количество кадров отражает различные подходы, а не биты — быстрый трек не приводит к взрыву количества суб-агентов.