Skip to content
KitploitKITPLOIT
工具博客
提交
工具博客
提交

黑客、渗透测试和网络安全工具,武装您的安全武器库!

Kitploit 是一个黑客、网络安全和渗透测试工具的目录。发现最新的项目更新,查找漏洞、分析系统、自动化测试并加强你的安全。

··订阅源·联系·隐私·© 2026 Kitploit

工具目录

分类

查看所有分类
Loading categories
libpo32 — 用于PO-32声学传输和鼓合成的C99库。 | Kitploit
工具/GitHubGitHub/ericlewis/libpo32
嵌入式系统安全逆向工程硬件安全
GitHubericlewis/libpo32

libpo32

用于PO-32声学传输和鼓合成的C99库。

查看仓库
200922天前Kitploit 审核通过

最受欢迎

查看全部 →

发现我们社区最常用的工具。

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享

libpo32

Tests Codecov FOSSA Status

一个用于 Teenage Engineering PO-32 声学数据传输和鼓合成的小型 C99 库。

libpo32 重新实现了 PO-32 Tonic 传输协议栈以及兼容的鼓声部模型。它不是完整的 PO-32 固件或 UI 模拟器;它涵盖了构建、发送、接收和预览 PO-32 传输所需的包格式、声学调制解调器、帧解码器和本地鼓合成。

目录

  • 概述
  • 与 PO-32 配合使用
  • 快速开始
  • 示例
  • 基于 libpo32 构建的项目
  • 公共 API
  • 文档
  • 项目结构
  • 贡献
  • 许可证

概述

领域libpo32 提供的内容
传输协议构建和解析 PO-32 音色、模式和状态包
声学调制解调器将传输帧渲染为 DPSK 音频,用于回放到设备
解码器从传输音频中恢复归一化帧和包
鼓合成本地渲染 PO-32 的 21 参数鼓声部,用于预览和测试

核心是 freestanding C99:无 libc 运行时、无外部 DSP 库、无平台音频 API、无文件 I/O。仅使用 freestanding 头文件 <stddef.h> 和 <stdint.h>。适用于嵌入式目标和裸机环境。

与 PO-32 配合使用

当您传输音色或模式时,PO-32 接收的不是成品鼓音频。它接收的是结构化数据:

数据含义
音色包每个乐器的两个音色端点(Left 和 Right),目标乐器槽位编码在包中
模式包哪些乐器在哪些步骤上触发,目标模式槽位编码为 pattern_number
状态包速度、摇摆、变形默认值以及传输的模式列表

然后设备使用其内部合成引擎将这些参数转换为声音。

在高层面上,使用真实硬件的流程是:

步骤您要做的
1在软件中根据音色、模式和状态数据构建传输
2将该传输渲染为 WAV 或实时音频流
3将 PO-32 置于其正常的接收/导入流程
4将渲染的传输音频播放到设备中

快速开始

从仓库根目录开始,配置、构建、运行测试,然后运行演示程序:

root@kitploit:~
cmake -S . -B build -DCMAKE_BUILD_TYPE=Release
cmake --build build -j4
ctest --test-dir build --output-on-failure
./build/po32_demo

可选,但建议用于本地开发:

root@kitploit:~
./scripts/install-git-hooks.sh

这会启用仓库管理的 pre-commit 钩子,该钩子在每次提交前对暂存的 .c 和 .h 文件运行 clang-format,并根据 Conventional Commits 验证提交主题。仓库管理的 pre-push 钩子在推送前运行静态分析脚本。

pre-commit 钩子需要 clang-format 18,并且如果使用任何其他主版本会失败;安装选项请参阅 CONTRIBUTING.md。

演示程序会构建一个传输帧,将其渲染为音频,再解码回来(验证无损往返),合成一次鼓击,并写入两个 WAV 文件:demo_modem.wav 和 demo_kick.wav。

安装和使用

cmake --install 会安装静态库、头文件、CMake 包和 pkg-config 文件,因此两种使用方式都可以开箱即用:

root@kitploit:~
find_package(LibPO32 0.2 REQUIRED)
target_link_libraries(app PRIVATE LibPO32::po32)
root@kitploit:~
cc app.c $(pkg-config --cflags --libs po32) -lm

示例

命令用途
./build/po32_example最小往返:编码、渲染、解码和验证
./build/po32_demo端到端演示:传输帧构建/渲染/解码以及本地鼓合成

基于 libpo32 构建的项目

项目功能
Libpo32 for Schwung适用于 Ableton Move 上 Schwung 的 16 声部鼓合成器模块,由 libpo32 驱动

公共 API

头文件职责
core/include/po32.h传输构建器、包辅助函数、渲染器和解码器
core/include/po32_synth.h鼓合成器

文档

项目结构

贡献

请参阅 CONTRIBUTING.md 了解本地设置、验证命令以及用于 SemVer 友好历史的 Conventional Commits 策略。

许可证

版权所有 (c) 2026 Eric Lewis。根据 MIT 许可证授权。请参阅 LICENSE。

下载工具
5PO-32 解码这些包,并将它们写入这些包中指定的音色或模式槽位
./build/po32_pattern_editor交互式 PO-32 模式编辑和 WAV 导出
./build/po32_decode_capture <input.wav> <out-dir>从传输 WAV 中导出包和模式转储
文档用途
架构编解码器的工作原理
协议线格式详情
C APIC 函数参考
合成合成器信号路径
音色参数21 个参数
绑定如何编写新的语言绑定
示例支持的示例程序
模糊测试模糊测试工具和差分属性
贡献本地设置、检查和提交约定
路径用途
core/src核心 C 实现
core/include公共 C 头文件
core/examples支持的 C 示例
core/tests核心测试覆盖
core/fuzz针对每个不可信输入面的 libFuzzer 工具
core/docs架构、协议和 API 说明
bindings/goGo 绑定(cgo,封装完整公共 API)