Repository navigation
libpo 2.0.0 focuses the repository on the freestanding C library and native tools, improves PO-32 capture compatibility, and documents the current evidence for all supported families.
Breaking change
The in-tree Go module, generated C bundle, Go-specific scripts and CI jobs have been removed. Existing Go consumers must pin an earlier revision. The last main-branch revision containing the module is 2eb1e77. This release does not publish a replacement Go binding.
Fixes and documentation
- PO-32 capture decoding accepts PCM and float WAVEFORMATEXTENSIBLE input with strict subtype validation.
- PO-32 parsing recognizes the one-byte
0x496Fpattern-slot record found in Flat Beat and legacy backups, while retaining checksum and length validation. - Expanded format documentation distinguishes verified field behavior from candidate meanings, including sample-pool references, parameter-only pattern rows, effect footers and retained state.
- README, contribution and release instructions now describe the C library and native tools.
Compatibility and limits
The C API is unchanged. Canonical LibPO::po and pkg-config po interfaces remain available alongside LibPO32::po32, pkg-config po32 and libpo32.a.
Package metadata now reports 2.0.0. The existing 1.0.0 tag retained 0.3.0 in its VERSION file; that historical tag has not been modified.
Selected PO-33 rebuilds and sample replacements have hardware acceptance evidence. This does not validate every edit, allocation size or related device. PO-35/137 speech analysis and synthesis remain approximate, and unknown metadata is preserved rather than assigned guessed meanings.
Validation
- Release CTest: 40/40 passed, including freestanding and installed-package checks.
- ASan/UBSan CTest: 38/38 passed.
- Version synchronization, clang-format 18, cppcheck, Clang static analysis and diff checks passed.