Трек 14: аудио — перенос аудио-подсистемы v1 на воксельный движок
Движок (@rpg/engine): src/audio/ — types (4 шины master/music/sfx/ambience,
хендлы, опции), decode (BufferCache с in-flight дедупом декода), Voices
(полифония sfx: вор самого тихого, restart по ключу, панорама в полёте),
Loops (слоты музыки/амбиента с кроссфейдом), SoundSpec/Music (спек-синтез,
детерминированный), synth (примитивы v1 tools/synth.mjs в TS — в v2 нет
WAV-пайплайна, всё синтезируется в рантайме), AudioManager (фасад:
prepare() заводит контекст синхронно, unlock, playSpec с кэшем буфера,
шпион onPlayed). 44 юнит-теста (261 всего), тесты v1 перенесены 1:1.

Демка: src/audio.ts (спеки боя/урона/шагов — формулы v1 sfxSpecs;
DemoAudio — позиционный звук: затухание (1-d/r)^1.5 + изо-панорама,
дедуп 0.08 с; StepVariants — 3 варианта шага), обвязка в main.ts —
хуки боя (cone→bell_hit, resonance→bell_low, spit, awake→ash_hiss,
kill→ash_die, playerHit→hurt), шаг на границе половины walk-цикла,
unlock на первом жесте; мост audioUnlock/audioInfo (кольцевой буфер 24).

Гейт audio.mjs (8 проверок, DEV-шпион): тишина на старте, шаги играют,
атака→bell_hit, плевок→spit, резонанс→bell_low, лог ограничен 24.
Все 11 гейтов демки зелёные. Урок: кулдаун конуса не сбрасывается
телепортом — между боевыми секциями гейта ждать >= 30 тиков.

Co-Authored-By: Claude Code <noreply@anthropic.com>
1 parent 4ba619b commit 2987543da8d897c14f1b5ad6c14ad6bac715058c
@Eugene Sukhodolskiy Eugene Sukhodolskiy authored 2 days ago
Showing 17 changed files
View
docs/plan.md
View
v2/CLAUDE.md
View
v2/apps/demo/src/audio.ts 0 → 100644
View
v2/apps/demo/src/main.ts
View
v2/apps/demo/tools/checks/audio.mjs 0 → 100644
View
v2/packages/engine/src/audio/AudioManager.ts 0 → 100644
View
v2/packages/engine/src/audio/Loops.ts 0 → 100644
View
v2/packages/engine/src/audio/Music.ts 0 → 100644
View
v2/packages/engine/src/audio/SoundSpec.ts 0 → 100644
View
v2/packages/engine/src/audio/Voices.ts 0 → 100644
View
v2/packages/engine/src/audio/__tests__/AudioManager.test.ts 0 → 100644
View
v2/packages/engine/src/audio/__tests__/Music.test.ts 0 → 100644
View
v2/packages/engine/src/audio/__tests__/SoundSpec.test.ts 0 → 100644
View
v2/packages/engine/src/audio/decode.ts 0 → 100644
View
v2/packages/engine/src/audio/synth.ts 0 → 100644
View
v2/packages/engine/src/audio/types.ts 0 → 100644
View
v2/packages/engine/src/index.ts