Firmware

libpo32

Loud82/100

C99 library for PO-32 acoustic transfers and drum synthesis.

libpo32 is custom firmware for the Teenage Engineering PO-32 tonic, by @ericlewis. Open source under MIT, latest release 1.0.0 (November 2026), 212 stars on GitHub.

forTeenage Engineering PO-32 tonic·by@ericlewis

Unclaimed. Is this yours? Sign in with GitHub as @ericlewis to claim it.

Downloads
0
Stars
212
Forks
13
Commits
97
Last commit
Get the source

No release files yet. Build from source.

MIT· ericlewis/libpo·downloads come from the creator’s GitHub releases

62
Commits
4
Releases
62 commits and 4 releases in the last year
Activity · last 12 months
4 releases
  1. 1.0.0Latest0 files

    What's Changed

    Full Changelog: https://github.com/ericlewis/libpo/compare/0.3.0...1.0.0

  2. 0.3.00 files

    What's Changed

    Full Changelog: https://github.com/ericlewis/libpo32/compare/0.2.1...0.3.0

  3. 0.2.10 files

    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

    New Contributors

    Full Changelog: https://github.com/ericlewis/libpo32/compare/0.2.0...0.2.1

  4. 0.2.00 files

    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