m.automationRate,
            K_RATE,
            `Listener ${param.name}.automationRate`
          );

          audioParam.setValueAtTime(...param.initial);
          audioParam.linearRampToValueAtTime(...param.final);

          const buffer = await context.startRendering();
          const data = buffer.getChannelData(0);

          assert_not_constant(data, `Listener ${param.name}`);
          for (let k = 0; k < data.length; k += BLOCK) {
            const slice = data.slice(
              k,
        