Разница, которую вы слышите, заключается в том, что команда Chrome не удалила размытие, которое Крис Роджерс первоначально внес в реализацию. Dezippering - это общий процесс сглаживания изменений параметров; например вместо фактического непосредственного изменения значения вы можете вызвать setTargetAtTime с небольшим t; то значение изменяется плавно.
Для delayTime это особенно проблематично, так как любое изменение может вызвать экстремальные сбои. (Например, изменения параметра усиления могут привести к сбоям, но они, вероятно, будут немного менее драматичными.)
Исходная реализация Криса построена для разметки всех параметров, так что изменение параметров по умолчанию будет гладкая - короче говоря, когда вы изменили значение, это не было мгновенно изменением значения. Однако это вызывает проблемы в некоторых параметрах (например, сглаживание частотного параметра на генераторе создает эффект портаменто, что часто нежелательно). В конце концов, после продолжительного обсуждения (https://github.com/WebAudio/web-audio-api/issues/76) Рабочая группа Web Audio решила, что дезапертинг не должен быть автоматическим (вы, в конце концов, всегда можете сгладить параметры с помощью setTargetAtTime); команде Chromium просто нужно удалить ее из своего кода. (По-видимому, Firefox также не удалил их размытие.)
В вашем конкретном примере вы делаете экстремальное изменение delayTime - четырехсекундное изменение - и оно становится «сглаженным» в течение очень короткого периода времени , Это похоже на использование аналоговой линии задержки и очень быстрое изменение delayTime. (Проверьте демоверсии блока Korg Monotron Delay, и вы услышите звуки, которые будут звучать знакомо :) В отличие от этого мгновенное изменение (с помощью setValueAtTime) просто «прыгает» - возможно, это вызывает щелчок, но вы не даже слышу это путем сравнения.
Итак, рассказ: не используйте .value для установки delayTime в этом случае, используйте setTargetAtTime(), если вы хотите, чтобы он был сглажен, или setValueAtTime(), если вы хотите, чтобы он был мгновенным. Однако огромные изменения параметра delayTime всегда будут вызывать какую-то проблему; вы, вероятно, на самом деле хотите перекреститься между двумя линиями задержки или что-то в этом роде.
Идеальный смысл. Благодарим за ясное объяснение и за то, что указали мне на блок задержки Monogron Korg. Эта штука похожа на массу веселья :) Cheers – alemangui