Safari Technology Preview 251: OscillatorNode с a-rate automation стартует не с той фазы, когда время запуска лежит между sample frames. People-first проверка: окно старта «fractional frame → automation value → sample → phase estimate»; синтетический стенд, опровержимый контроль, один обратимый шаг, stop-line и минимизированный handoff.
Ответ и граница: Web Audio
Этот запрос решается сравнением двух воспроизводимых веток на синтетическом стенде. Запрос «как проверить фазу OscillatorNode с a-rate automation и sub-sample start в Safari Technology Preview 251» относится только к ситуации: OscillatorNode с a-rate automation стартует не с той фазы, когда время запуска лежит между sample frames. Условие успеха записывается до запуска: первые samples согласуются с fractional offset, а разница с frame-aligned control объясняется только временем старта. Внешне похожая ошибка сама по себе ничего не доказывает; отдельно проверяется ловушка «разный frequency automation curve, ошибочно принятый за фазовую ошибку sub-sample start». Граница намеренно узкая: один механизм, один synthetic fixture и одна версия. Любой соседний сбой получает отдельную гипотезу, а не подгоняется под этот commit. Производственный сайт, реальный аккаунт и пользовательские данные исключены.
Что подтверждают Release 251 и 317953@main
Официальные WebKit Release Notes датированы 26 августа 2026 года и для Safari Technology Preview 251 сообщают: OscillatorNode с a-rate automation теперь учитывает sub-sample start time и не начинает вне фазы. Строка релиза ведёт к первичной записи 317953@main; её commit title и доступность перепроверены 29 августа. Пара official/primary подтверждает change item, но не частоту жалоб, спрос, stable-релиз или причинность на чужой странице. Community discussion остаётся только lead к дате. Технический предел статьи совпадает с формулировкой 317953@main и не расширяется поисковым заголовком.
Стенд и рабочий артефакт 317953
Стенд: OfflineAudioContext с фиксированным sample rate, OscillatorNode и одной линейной a-rate automation. До воздействия без интерпретации запишите: start time, fractional frame offset, frequency samples, первые output samples, zero crossings и rendered length. Рабочий артефакт — окно старта «fractional frame → automation value → sample → phase estimate». Паспорт опыта хранит только технические величины, необходимые для опровержения. Cookie, IP, bearer-данные, локальные пути, приватные URL и рабочие документы в него не попадают. Наблюдение не интерпретируется до прохождения control и финального cleanup.
Контроль, который может опровергнуть гипотезу
Отрицательная ветка нужна, чтобы одинаковый внешний результат не подменил одинаковую причину. Для этой боли используется: тот же graph со стартом ровно на frame boundary и независимая фазовая модель. Он проходит тот же порядок запуска, settle-событие и набор полей, что основная ветка. Риск «разный frequency automation curve, ошибочно принятый за фазовую ошибку sub-sample start» получает отдельный признак. Canary и control различаются одной переменной. Совместное отклонение опровергает чистоту стенда, а не подтверждает баг; соседняя причина отмечается отдельно. Такой дизайн делает тезис опровержимым и не требует доступа к исходным данным пользователя.
Одно обратимое воздействие
Разрешён один шаг: отрендерить короткий oscillator с единственным sub-sample start и затем освободить offline graph. Сначала снимите baseline, затем выполните только указанную операцию, дождитесь заранее выбранного события завершения и повторите поля «start time, fractional frame offset, frequency samples, первые output samples, zero crossings и rendered length». Один шаг отделён от полного cleanup. Если cleanup не подтверждён или settle не определён, результат нельзя повышать выше unknown/invalid. PASS допустим, когда первые samples согласуются с fractional offset, а разница с frame-aligned control объясняется только временем старта. Результат не усиливают словами о массовости; production, VPN, маршрутизация, чужие сайты и реальные media остаются вне опыта.
Stop-line, решение и минимальный handoff
Любое расхождение сначала проверяют повтором baseline после rollback. Остановитесь, если oscillator имеет detune, graph содержит resampler, start округлён helper-библиотекой или анализ берёт слишком короткое окно. Финальная запись хранит окно старта «fractional frame → automation value → sample → phase estimate», результат контроля, отметку rollback и ссылку на 317953@main. Не превращайте not reproduced в опровержение для всех. Результат описывает лишь этот build и выбранный control, а пробелы получают явный unknown. Пакет поддержки сокращается до версии, шагов, allowlist наблюдений, результата опровержения и stop-line. Никаких дампов аккаунта, cookie либо секретов. PASS означает только условие «первые samples согласуются с fractional offset, а разница с frame-aligned control объясняется только временем старта». Материал не обещает индексацию, позиции, поисковый спрос, stable-поддержку или автоматическое исправление.
Материал подготовлен редакцией VOne с помощью ИИ; дата, WebKit Release 251, primary commit 317953@main, техническая граница, независимый контроль, обратимость, privacy-stop и роль community lead постатейно проверены 29 августа 2026 года.
Источники и проверка
- WebKit — Release Notes for Safari Technology Preview 251 проверено 2026-08-29
- WebKit commit 317953@main проверено 2026-08-29
Информация актуальна на дату публикации. Правила сервисов, приложений и сетей могут меняться.