Skip to content
KitploitKITPLOIT
FerramentasBlog
Enviar
FerramentasBlog
Enviar

Ferramentas de Hacking, PenTest e Cibersegurança para o seu Arsenal de Segurança!

Kitploit é um diretório de ferramentas de hacking, cibersegurança e pentesting. Descubra as últimas atualizações de projetos para encontrar vulnerabilidades, analisar sistemas, automatizar testes e fortalecer sua segurança.

··Feeds·Contato·Privacidade·© 2026 Kitploit

Diretório de Ferramentas

Categorias

Ver todas as categorias
Loading categories
Ferramentas/GitHubGitHub/ericlewis/libpo32
Segurança de Sistemas EmbarcadosEngenharia ReversaSegurança de Hardware
GitHubericlewis/libpo32

libpo32

Biblioteca C99 para transferências acústicas PO-32 e síntese de bateria.

Ver Repositório
20097há 8 diasRevisado pelo Kitploit

Mais Populares

Ver todos →

Descubra as ferramentas mais usadas pela nossa comunidade.

Explore todas as ferramentas

Navegue pela nossa coleção de ferramentas

Ver todas as ferramentas →
Compartilhar

libpo32

Tests Codecov FOSSA Status

Uma pequena biblioteca C99 para transferências de dados acústicos e síntese de bateria do Teenage Engineering PO-32.

libpo32 reimplementa a pilha de transferência do PO-32 Tonic e um modelo de voz de bateria compatível. Não é um firmware completo do PO-32 nem um emulador de interface; cobre o formato de pacotes, o modem acústico, o decodificador de quadros e a síntese de bateria local necessários para construir, enviar, receber e pré-visualizar transferências do PO-32.

Conteúdo

  • Visão Geral
  • Como Usar com um PO-32
  • Começando
  • Exemplos
  • Projetos Construídos com libpo32
  • API Pública
  • Documentação
  • Estrutura do Projeto
  • Contribuindo
  • Licença
  • Visão Geral

    ÁreaO que libpo32 fornece
    Protocolo de transferênciaConstruir e analisar pacotes de patch, padrão e estado do PO-32
    Modem acústicoRenderizar quadros de transferência em áudio DPSK para reprodução no dispositivo
    DecodificadorRecuperar quadros e pacotes normalizados a partir do áudio de transferência
    Síntese de bateriaRenderizar a voz de bateria de 21 parâmetros do PO-32 localmente para pré-visualização e testes

    O núcleo é C99 freestanding: sem runtime libc, sem bibliotecas DSP externas, sem APIs de áudio de plataforma, sem E/S de arquivos. Apenas os cabeçalhos freestanding <stddef.h> e <stdint.h> são usados. Adequado para alvos embarcados e ambientes bare-metal.

    Como Usar com um PO-32

    O PO-32 não recebe áudio de bateria finalizado quando você transfere um som ou um padrão. Ele recebe dados estruturados:

    DadoSignificado
    Pacotes de patchOs dois endpoints de patch por instrumento (Left e Right), com o slot de instrumento de destino codificado no pacote
    Pacotes de padrãoQuais instrumentos acionam em quais passos, com o slot de padrão de destino codificado como pattern_number
    Pacote de estadoTempo, swing, padrões de morph e a lista de padrões transferidos

    O dispositivo então usa seu próprio mecanismo de síntese interno para transformar esses parâmetros em som.

    Em alto nível, o fluxo de trabalho com hardware real é:

    PassoO que você faz
    1Construir uma transferência em software a partir de dados de patch, padrão e estado
    2Renderizar essa transferência em um WAV ou fluxo de áudio ao vivo
    3Colocar o PO-32 em seu fluxo normal de recepção/importação
    4Reproduzir o áudio de transferência renderizado no dispositivo
    5O PO-32 decodifica os pacotes e os grava nos slots de som ou padrão nomeados dentro desses pacotes

    Começando

    A partir da raiz do repositório, configure, compile, execute os testes e depois a demonstração:

    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, mas recomendado para desenvolvimento local:

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

    Isso ativa o hook de pre-commit gerenciado pelo repositório, que executa clang-format em arquivos .c e .h preparados antes de cada commit e valida os assuntos dos commits conforme Conventional Commits. O hook de pre-push gerenciado pelo repositório executa o script de análise estática antes do push.

    O hook de pre-commit requer clang-format 18 e falha em qualquer outra versão principal; consulte CONTRIBUTING.md para opções de instalação.

    A demonstração constrói um quadro de transferência, renderiza-o em áudio, decodifica-o de volta (verificando um roundtrip sem perdas), sintetiza uma batida de bateria e grava dois arquivos WAV: demo_modem.wav e demo_kick.wav.

    Instalação e Consumo

    cmake --install fornece a biblioteca estática, cabeçalhos, um pacote CMake e um arquivo pkg-config, para que ambos os caminhos de consumo funcionem prontamente:

    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
    

    Exemplos

    ComandoFinalidade
    ./build/po32_exampleRoundtrip mínimo: codificar, renderizar, decodificar e verificar
    ./build/po32_demoDemonstração de ponta a ponta: construção/renderização/decodificação de quadro de transferência mais síntese de bateria local
    ./build/po32_pattern_editorEdição interativa de padrões do PO-32 e exportação WAV
    ./build/po32_decode_capture <input.wav> <out-dir>Dumps de pacotes e padrões a partir de um WAV de transferência

    Projetos Construídos com libpo32

    ProjetoO que faz
    Libpo32 for SchwungUm módulo sintetizador de bateria de 16 vozes para Schwung no Ableton Move, alimentado por libpo32

    API Pública

    CabeçalhoResponsabilidade
    core/include/po32.hConstrutor de transferência, utilitários de pacote, renderizador e decodificador
    core/include/po32_synth.hSintetizador de bateria

    Documentação

    DocumentoFinalidade
    ArquiteturaComo o codec funciona
    ProtocoloDetalhes do formato de transmissão
    API CReferência de funções C
    SínteseCaminho do sinal do sintetizador
    Parâmetros de PatchOs 21 parâmetros
    BindingsComo escrever um novo binding de linguagem
    ExemplosProgramas de exemplo suportados
    FuzzingHarnesses de fuzzing e propriedades diferenciais
    ContribuindoConfiguração local, verificações e convenções de commit

    Estrutura do Projeto

    CaminhoFinalidade
    core/srcImplementação C principal
    core/includeCabeçalhos C públicos
    core/examplesExemplos C suportados
    core/testsCobertura de testes do núcleo
    core/fuzzHarnesses libFuzzer para cada superfície de entrada não confiável
    core/docsNotas de arquitetura, protocolo e API
    bindings/goBindings Go (cgo, envolvem toda a API pública)

    Contribuindo

    Consulte CONTRIBUTING.md para configuração local, comandos de verificação e a política de Conventional Commits usada para um histórico compatível com SemVer.

    Licença

    Copyright (c) 2026 Eric Lewis. Licenciado sob a Licença MIT. Consulte LICENSE.

    Baixar ferramenta