Skip to content

Releases: ericlewis/libpo32

Release list

0.2.1

Choose a tag to compare

@ericlewis ericlewis released this 29 Mar 03:33

Fixed

  • ARCHITECTURE.md now lists po32_patch_import.c as a core module.
  • C_API.md now documents PO32_ERR_PARSE, the streaming modulator API,
    and po32_patch_parse_mtdrum_text(...).
  • README.md now lists the po32_example command in the examples table.

Changed

  • Expanded test coverage across all src/ and examples/ files, covering
    error paths, edge cases, and previously untested branches in the import
    parser, synth renderer, frame builder, and example programs.
  • Add license scan report and status by @fossabot in #2
  • fix(import): bound exponent parsing and add helper coverage by @ericlewis in #3

New Contributors

Full Changelog: 0.2.0...0.2.1

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