Skip to content

v2.4.0

Latest

Choose a tag to compare

@simonflore simonflore released this 01 Jun 09:37

What's Changed

New Features

  • External MIDI clock sync — PadDeck can now follow an external MIDI clock (a DAW, Gigmeister, or any clock master) so synced loop pads launch and loop tempo-locked to the beat instead of the instant a pad is hit.
    • Clock input — selectable CoreMIDI clock source in Settings → MIDI, independent of the Launchpad port. Parses Clock (0xF8), Start/Continue/Stop, and Song Position Pointer.
    • Transport bar — live tempo readout, a Synced/Internal indicator, bar·beat·tick position, and the global launch-quantize selector (1/16, 1/4, 1/2, 1 bar, 2 bars; default 1 bar). BPM is jitter-smoothed so the readout stays stable.
    • Quantized launch & stop — a synced loop pad queues and starts on the next musical boundary (LED blinks while queued, pulses on the beat once playing). Stop can quantize to the boundary or fire immediately.
    • Phase-locked looping — synced loops stay locked across many bars, scheduled sample-accurately on the audio clock with output-latency compensation, and re-align to the downbeat on Start / Song-Position or a tempo change.
    • Per-pad sync controls — per pad: a Sync toggle, a quantize override, loop length in bars/beats, and a loop-length mismatch warning. (Time-stretch is scaffolded behind a disabled per-pad toggle for a future release.)
    • Internal fallback — if the clock drops out (~0.5s) playback falls back to internal/free-run and re-locks automatically when the clock returns. New settings: follow external clock, ignore Start/Stop, time signature, and a latency offset.

Free one-shot and non-synced loop pads are unchanged — they still fire instantly.

Under the Hood

  • New PadDeckTests unit-test target covering the clock math: tempo smoothing, tick→bar/beat position, Song Position Pointer, and boundary calculation.

Full Changelog: v2.3.0...v2.4.0