An episode player built on a waveform you scrub, with chapters, speed and sleep.
An episode player on a Canvas-drawn waveform with bucketed samples, a tinted played portion, lifting bars and a floating readout under the finger, haptic ticks, velocity fling and a live mode.
$199 once, every piece included. See how installing works · Sign in
SwiftUI source you own, built on Apple frameworks only.
How it behaves, what it handles, and the decisions behind it.
Samples are bucketed to the number of bars that fit the width and drawn in one Canvas, so a 10,000-sample track costs the same as a 60-bar one. The played portion is tinted. Drag to seek: the bars around the finger lift toward it, a time readout floats above the finger, and a selection tick fires every tickEvery bars. Release with velocity and the position flings on with exponential deceleration before onSeek fires. Live mode shows the newest samples entering from the right, for recording surfaces.
Task loop that writes progress each frame and stops at either end; a new touch cancels it.WaveformScrubberExample at the end of WaveformScrubber.swift is the screen shown in the preview; copy it as a starting point.Pieces that work well next to this one.