Ворклог по задаче "Создать визуальную лабораторию временных сценариев VoiceSynthesizer"
15 сент. 2026 г., 10:28:37
Краткий прогресс: текущую реализацию требуется переписать с нуля
Фактическая проверка показала, что текущий компонент нельзя считать пригодной основой для дальнейших экспериментов со звуком.
Основные проблемы:
- Аудиоархитектура принципиально не подходит для качественного синтеза. Параметры порциями обновляются через Web Audio nodes во время воспроизведения, тогда как для контролируемого экспериментального синтеза логичнее заранее вычислять PCM/массив sample-значений по всей временной логике и уже готовый буфер отдавать AudioContext на воспроизведение.
- Текущий DSP сам по себе устроен неудачно: sawtooth проходит через три последовательно включённых узких bandpass-formant фильтра, что почти уничтожает периодическую часть; шум при этом идёт отдельным прямым трактом.
- UI timeline и audio timeline фактически имеют разные часы. Loop, seek, pause/play и реальное аудиовремя не являются одной state machine.
- Управление звуком через
requestAnimationFrame(~60 Hz) непригодно для коротких акустических событий, burst и быстрых переходов; дополнительное сглаживание ещё сильнее размывает события. - Lifecycle аудиоисточников содержит race conditions и несогласованные состояния: повторный Play работает нестабильно, Stop способен приводить к неожиданному возобновлению звука, старые callbacks/source refs могут переживать смену состояния.
- В UI/UX слишком много независимых refs/states/hooks, отвечающих за части одного playback-состояния. Вместо этого нужен единый
useReducer/finite state machine с явными состояниямиstopped/playing/pausedи детерминированными переходами. - Отчёт о реализации оказался значительно оптимистичнее фактического поведения: интерфейс визуально выглядит как готовая лаборатория, но базовые пользовательские сценарии Play/Stop/Replay и сами звуковые результаты ненадёжны.
Вывод: точечное исправление текущей реализации нецелесообразно. Компонент нужно переписать с нуля, сохранив только общую идею визуальной лаборатории: timeline, дорожки параметров, keyframes, loop и ручной поиск звучаний. Новая версия должна строиться вокруг единой машины состояния и предварительного вычисления аудиобуфера из сценария.
14.09.2026
Интерактивный многодорожечный редактор для ручного экспериментирования с параметрами синтезатора во времени, циклического прослушивания и поиска интересных звучаний.