Skip to content
KitploitKITPLOIT
HerramientasBlog
Enviar
HerramientasBlog
Enviar

¡Herramientas de Hacking, PenTest y Ciberseguridad para tu Arsenal de Seguridad!

Kitploit es un directorio de herramientas de hacking, ciberseguridad y pentesting. Descubre las últimas actualizaciones de proyectos para encontrar vulnerabilidades, analizar sistemas, automatizar pruebas y fortalecer tu seguridad.

··Feeds·Contacto·Privacidad·© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
libpo32 — Biblioteca C99 para transferencias acústicas y síntesis de batería PO-32. | Kitploit
Herramientas/GitHubGitHub/ericlewis/libpo32
Seguridad de Sistemas EmbebidosIngeniería InversaSeguridad de Hardware
GitHubericlewis/libpo32

libpo32

Biblioteca C99 para transferencias acústicas y síntesis de batería PO-32.

Ver Repositorio
20092hace 2 díasRevisado por Kitploit

Más Populares

Ver todos →

Descubre las herramientas más usadas por nuestra comunidad.

Explora todas las herramientas

Explora nuestra colección de herramientas

Ver todas las herramientas →
Compartir

libpo32

Tests Codecov FOSSA Status

Una pequeña biblioteca en C99 para transferencias de datos acústicos y síntesis de batería del Teenage Engineering PO-32.

libpo32 reimplementa la pila de transferencia del PO-32 Tonic y un modelo de voz de batería compatible. No es un firmware completo del PO-32 ni un emulador de interfaz; cubre el formato de paquetes, el módem acústico, el decodificador de tramas y la síntesis de batería local necesarios para construir, enviar, recibir y previsualizar transferencias del PO-32.

Contenido

  • Descripción general
  • Uso con un PO-32
  • Primeros pasos
  • Ejemplos
  • Proyectos construidos con libpo32
  • API pública
  • Documentación
  • Estructura del proyecto
  • Contribuciones
  • Licencia

Descripción general

ÁreaQué proporciona libpo32
Protocolo de transferenciaConstruye y analiza paquetes de patch, patrón y estado del PO-32
Módem acústico

El núcleo es C99 independiente: sin runtime de libc, sin bibliotecas DSP externas, sin APIs de audio de plataforma, sin E/S de archivos. Solo se utilizan los encabezados independientes <stddef.h> y <stdint.h>. Adecuado para objetivos embebidos y entornos bare-metal.

Uso con un PO-32

El PO-32 no recibe audio de batería terminado cuando transfieres un sonido o un patrón. Recibe datos estructurados:

DatosSignificado
Paquetes de patchLos dos endpoints de patch por instrumento (Left y Right), con la ranura de instrumento de destino codificada en el paquete

El dispositivo utiliza entonces su propio motor de síntesis interno para convertir esos parámetros en sonido.

A alto nivel, el flujo de trabajo con hardware real es:

PasoQué haces

Primeros pasos

Desde la raíz del repositorio, configura, compila, ejecuta las pruebas y luego la demo:

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

Opcional, pero recomendado para el desarrollo local:

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

Eso habilita el hook de pre-commit gestionado por el repositorio, que ejecuta clang-format en los archivos .c y .h preparados antes de cada commit y valida los asuntos de los commits según Conventional Commits. El hook de pre-push gestionado por el repositorio ejecuta el script de análisis estático antes del push.

El hook de pre-commit requiere clang-format 18 y falla con cualquier otra versión principal; consulta CONTRIBUTING.md para opciones de instalación.

La demo construye una trama de transferencia, la renderiza a audio, la decodifica de vuelta (verificando un roundtrip sin pérdidas), sintetiza un golpe de batería y escribe dos archivos WAV: demo_modem.wav y demo_kick.wav.

Instalación y consumo

cmake --install distribuye la biblioteca estática, los encabezados, un paquete CMake y un archivo pkg-config, por lo que ambas rutas de consumo funcionan de inmediato:

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

Ejemplos

ComandoPropósito

Proyectos construidos con libpo32

ProyectoQué hace
Libpo32 for SchwungUn módulo sintetizador de batería de 16 voces para Schwung en Ableton Move, impulsado por libpo32

API pública

EncabezadoResponsabilidad
core/include/po32.hConstructor de transferencias, helpers de paquetes, renderizador y decodificador
core/include/po32_synth.hSintetizador de batería

Documentación

Estructura del proyecto

Contribuciones

Consulta CONTRIBUTING.md para la configuración local, los comandos de verificación y la política de Conventional Commits utilizada para un historial compatible con SemVer.

Licencia

Copyright (c) 2026 Eric Lewis. Licenciado bajo la Licencia MIT. Consulta LICENSE.

Descargar herramienta
Renderiza tramas de transferencia a audio DPSK para reproducirlas en el dispositivo
DecodificadorRecupera tramas y paquetes normalizados a partir del audio de transferencia
Síntesis de bateríaRenderiza la voz de batería de 21 parámetros del PO-32 localmente para previsualización y pruebas
Paquetes de patrónQué instrumentos se activan en qué pasos, con la ranura de patrón de destino codificada como pattern_number
Paquete de estadoTempo, swing, valores predeterminados de morph y la lista de patrones transferidos
1
Construyes una transferencia en software a partir de datos de patch, patrón y estado
2Renderizas esa transferencia a un WAV o a un flujo de audio en vivo
3Pones el PO-32 en su flujo normal de recepción/importación
4Reproduces el audio de transferencia renderizado en el dispositivo
5El PO-32 decodifica los paquetes y los escribe en las ranuras de sonido o patrón nombradas dentro de esos paquetes
./build/po32_exampleRoundtrip mínimo: codificar, renderizar, decodificar y verificar
./build/po32_demoDemo de extremo a extremo: construcción/renderizado/decodificación de tramas de transferencia más síntesis de batería local
./build/po32_pattern_editorEdición interactiva de patrones del PO-32 y exportación a WAV
./build/po32_decode_capture <input.wav> <out-dir>Volcados de paquetes y patrones a partir de un WAV de transferencia
DocumentoPropósito
ArquitecturaCómo funciona el códec
ProtocoloDetalles del formato de cable
API CReferencia de funciones en C
SíntesisRuta de señal del sintetizador
Parámetros de patchLos 21 parámetros
BindingsCómo escribir un nuevo binding de lenguaje
EjemplosProgramas de ejemplo compatibles
FuzzingHarnesses de fuzzing y propiedades diferenciales
ContribucionesConfiguración local, comprobaciones y convenciones de commits
RutaPropósito
core/srcImplementación central en C
core/includeEncabezados públicos en C
core/examplesEjemplos en C compatibles
core/testsCobertura de pruebas del núcleo
core/fuzzHarnesses de libFuzzer para cada superficie de entrada no confiable
core/docsNotas de arquitectura, protocolo y API
bindings/goBindings en Go (cgo, envuelve toda la API pública)