Проблема с масштабированием Canvas: При изменении размера окна браузера (resize), графики перерисовываются с микрозадержкой. Из-за этого при сужении экрана волна может на долю секунды выходить за границы блока.
Возможное решение: Использовать ResizeObserver вместо события window.addEventListener('resize').
Блокировка AudioContext: В некоторых строгих браузерах (Safari, новые версии Chrome) звук не воспроизводится, если пользователь не кликнул по странице перед нажатием кнопки "Вывод на динамике".
Возможное решение: Добавить стартовый экран-заглушку с кнопкой "Начать работу", чтобы инициализировать AudioContext по первому клику.
Наложение текста в спектре: Если частоты на вкладках V1 и V2 выставлены слишком близко друг к другу (например, 440 Гц и 450 Гц), текстовые подписи над столбиками спектра накладываются друг на друга и становятся нечитаемыми.
✨ Запланированные улучшения (Бэклог / Фичи)
Итоговое тестирование (Сцена 5): Реализовать полноценный модуль тестирования (5-10 вопросов) во всплывающем модальном окне с подсчетом процента правильных ответов.
Визуализация осей: Добавить разметку по оси Y на график "Сумма колебаний", чтобы наглядно демонстрировать уровень среза при активации нелинейного преобразования (клиппинга).
Управление фазой: Вернуть в интерфейс ползунок управления сдвигом фазы (θ), который был в черновиках, чтобы показывать влияние фазы на форму итоговой суммы Фурье.
Экспорт данных: Добавить возможность скачать получившийся график суммы колебаний в формате PNG.
✅ Реализовано в последних коммитах
Плавное включение звука (fade-in) через gain.setTargetAtTime.
Кнопка сброса всех параметров "Сбросить все".
Шкала частот (5кГц, 10кГц, 15кГц) на графике спектрограммы.