← Gallery Playback ops — pure buffer operations

Playback ops — pure buffer operations

playback/ops — invariant table

Classic tape-machine loop moves — half-speed, double-speed, reverse, close the gap — done as pure math on audio buffers you can immediately hear. The waveforms below are drawn at a FIXED samples-per-pixel scale, so the half-speed-stretched loop region (tinted) is visibly twice as wide as the original's, and the audition buttons rebuild the ops with ctx.createBuffer injected as the factory — proving the ops produce genuine AudioBuffers when a browser caller asks for them. Badges run the same asserts as examples/node/playback-ops.mjs (node-verified, 8/8): a 1 s 440 Hz sine with loop {0.25, 0.5} through halfSpeedLoop / doubleSpeedQuantzLoop / reverseSection / detectGap / closeGapLeft, plus the invalid-loop throw.

original (1 s) — loop region tinted
halfSpeedLoop output (1.25 s) — stretched loop region tinted (2× wider)