Skip to content

0.2.0

Choose a tag to compare

@ericlewis ericlewis released this 28 Mar 20:46

This release focuses on correctness and usability for real PO-32 pattern transfers.

Fixed

  • Corrected pattern packet encode/decode to match the verified on-device wire layout: 16 trigger bytes, then 16 morph pairs, repeated four times.
  • Fixed pattern trigger handling to follow verified wire semantics: a zero low nibble means an empty step, and active triggers require a non-zero fill-rate nibble.
  • Resolved cases where patterns decoded correctly locally but landed on the wrong steps or instruments on real PO-32 hardware.

Added

  • High-level pattern builder helpers:
    • po32_pattern_init(...)
    • po32_pattern_clear(...)
    • po32_pattern_set_trigger(...)
    • po32_pattern_clear_trigger(...)
    • po32_pattern_clear_step(...)
    • po32_pattern_set_accent(...)
  • po32_pattern_step_t and decoded po32_pattern_packet_t.steps[] as the primary pattern editing surface.
  • po32_decode_capture example for decoding transfer WAVs into normalized frame dumps, per-packet payloads, and compact pattern summaries.
  • Starter presets in po32_pattern_editor for quick hardware-safe pattern export.

Changed

  • po32_pattern_packet_t no longer exposes raw trigger_lanes[]; pattern data is edited through decoded step entries and builder helpers.
  • The core is fully freestanding C99, with self-contained replacements for libc-dependent helpers.
  • Release docs were revised for clearer protocol, API, and usage documentation.

Verification

  • ./scripts/check-version-sync.sh
  • ./scripts/ci-verify.sh core

Tag: 0.2.0