0.2.0
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:
16trigger bytes, then16morph 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_tand decodedpo32_pattern_packet_t.steps[]as the primary pattern editing surface.po32_decode_captureexample for decoding transfer WAVs into normalized frame dumps, per-packet payloads, and compact pattern summaries.- Starter presets in
po32_pattern_editorfor quick hardware-safe pattern export.
Changed
po32_pattern_packet_tno longer exposes rawtrigger_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