Skip to content
KitploitKITPLOIT
OutilsBlog
Soumettre
OutilsBlog
Soumettre

Outils de Hacking, PenTest et Cybersécurité pour votre Arsenal de Sécurité !

Kitploit est un répertoire d'outils de hacking, de cybersécurité et de pentesting. Découvrez les dernières mises à jour des projets pour trouver des vulnérabilités, analyser des systèmes, automatiser les tests et renforcer votre sécurité.

··Flux·Contact·Confidentialité·© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
libpo32 — Bibliothèque C99 pour les transferts acoustiques du PO-32 et la synthèse de batterie. | Kitploit
Outils/GitHubGitHub/ericlewis/libpo32
Sécurité des Systèmes EmbarquésRétro-ingénierieSécurité Matérielle
GitHubericlewis/libpo32

libpo32

Bibliothèque C99 pour les transferts acoustiques du PO-32 et la synthèse de batterie.

Voir le dépôt
20092il y a 2 joursVérifié par Kitploit

Populaires

Voir tout →

Découvrez les outils les plus utilisés par notre communauté.

Explorer tous les outils

Parcourez notre collection d'outils

Voir tous les outils →
Partager

libpo32

Tests Codecov FOSSA Status

Une petite bibliothèque C99 pour les transferts de données acoustiques et la synthèse de batterie du Teenage Engineering PO-32.

libpo32 réimplémente la pile de transfert du PO-32 Tonic ainsi qu'un modèle de voix de batterie compatible. Ce n'est pas un firmware PO-32 complet ni un émulateur d'interface ; elle couvre le format de paquets, le modem acoustique, le décodeur de trames et la synthèse de batterie locale nécessaires pour construire, envoyer, recevoir et prévisualiser les transferts PO-32.

Sommaire

  • Vue d'ensemble
  • Utilisation avec un PO-32
  • Pour commencer
  • Exemples
  • Projets construits avec libpo32
  • API publique
  • Documentation
  • Structure du projet
  • Contribuer
  • Licence

Vue d'ensemble

DomaineCe que fournit libpo32
Protocole de transfertConstruire et analyser les paquets de patch, de motif et d'état PO-32
Modem acoustique

Le cœur est en C99 autonome : pas d'exécution libc, pas de bibliothèques DSP externes, pas d'API audio de plateforme, pas d'E/S de fichiers. Seuls les en-têtes autonomes <stddef.h> et <stdint.h> sont utilisés. Convient aux cibles embarquées et aux environnements bare-metal.

Utilisation avec un PO-32

Le PO-32 ne reçoit pas d'audio de batterie finalisé lorsque vous transférez un son ou un motif. Il reçoit des données structurées :

DonnéesSignification
Paquets de patchLes deux points de terminaison de patch par instrument (Left et Right), avec l'emplacement d'instrument de destination encodé dans le paquet

L'appareil utilise ensuite son propre moteur de synthèse interne pour transformer ces paramètres en son.

À un niveau élevé, le flux de travail avec du matériel réel est :

ÉtapeCe que vous faites
1

Pour commencer

Depuis la racine du dépôt, configurez, compilez, exécutez les tests, puis la démo :

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

Facultatif, mais recommandé pour le développement local :

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

Cela active le hook pre-commit géré par le dépôt, qui exécute clang-format sur les fichiers .c et .h indexés avant chaque commit et valide les sujets de commit par rapport aux Conventional Commits. Le hook pre-push géré par le dépôt exécute le script d'analyse statique avant le push.

Le hook pre-commit nécessite clang-format 18 et échoue sur toute autre version majeure ; voir CONTRIBUTING.md pour les options d'installation.

La démo construit une trame de transfert, la rend en audio, la décode (en vérifiant un aller-retour sans perte), synthétise un coup de batterie et écrit deux fichiers WAV : demo_modem.wav et demo_kick.wav.

Installation et consommation

cmake --install fournit la bibliothèque statique, les en-têtes, un paquet CMake et un fichier pkg-config, de sorte que les deux chemins de consommation fonctionnent immédiatement :

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

Exemples

CommandeObjectif

Projets construits avec libpo32

ProjetCe qu'il fait
Libpo32 for SchwungUn module de synthétiseur de batterie à 16 voix pour Schwung sur Ableton Move, propulsé par libpo32

API publique

En-têteResponsabilité
core/include/po32.hConstructeur de transfert, utilitaires de paquets, rendu et décodeur
core/include/po32_synth.hSynthétiseur de batterie

Documentation

Structure du projet

Contribuer

Voir CONTRIBUTING.md pour la configuration locale, les commandes de vérification et la politique Conventional Commits utilisée pour un historique compatible SemVer.

Licence

Copyright (c) 2026 Eric Lewis. Sous licence MIT. Voir LICENSE.

Télécharger l’outil
Rendre les trames de transfert en audio DPSK pour lecture dans l'appareil
DécodeurRécupérer les trames et paquets normalisés à partir de l'audio de transfert
Synthèse de batterieRendre localement la voix de batterie à 21 paramètres du PO-32 pour prévisualisation et test
Paquets de motifQuels instruments se déclenchent sur quelles étapes, avec l'emplacement de motif de destination encodé comme pattern_number
Paquet d'étatTempo, swing, valeurs par défaut de morph et liste des motifs transférés
Construire un transfert en logiciel à partir des données de patch, de motif et d'état
2Rendre ce transfert en WAV ou en flux audio en direct
3Mettre le PO-32 dans son flux normal de réception/import
4Lire l'audio de transfert rendu dans l'appareil
5Le PO-32 décode les paquets et les écrit dans les emplacements de son ou de motif nommés dans ces paquets
./build/po32_example
Aller-retour minimal : encoder, rendre, décoder et vérifier
./build/po32_demoDémo de bout en bout : construction/rendu/décodage de trame de transfert plus synthèse de batterie locale
./build/po32_pattern_editorÉdition interactive de motifs PO-32 et export WAV
./build/po32_decode_capture <input.wav> <out-dir>Dumps de paquets et de motifs à partir d'un WAV de transfert
DocumentObjectif
ArchitectureComment fonctionne le codec
ProtocoleDétails du format filaire
API CRéférence des fonctions C
SynthèseChemin du signal du synthétiseur
Paramètres de patchLes 21 paramètres
LiaisonsComment écrire une nouvelle liaison de langage
ExemplesProgrammes d'exemple pris en charge
FuzzingHarnais de fuzzing et propriétés différentielles
ContribuerConfiguration locale, vérifications et conventions de commit
CheminObjectif
core/srcImplémentation C principale
core/includeEn-têtes C publics
core/examplesExemples C pris en charge
core/testsCouverture de tests principale
core/fuzzHarnais libFuzzer pour chaque surface d'entrée non fiable
core/docsNotes d'architecture, de protocole et d'API
bindings/goLiaisons Go (cgo, englobe toute l'API publique)