Skip to content
KitploitKITPLOIT
ИнструментыБлог
Отправить
ИнструментыБлог
Отправить

Инструменты для хакинга, пентеста и кибербезопасности — ваш арсенал защиты!

Kitploit — это каталог инструментов для хакинга, кибербезопасности и пентестинга. Находите последние обновления проектов для поиска уязвимостей, анализа систем, автоматизации тестирования и усиления вашей безопасности.

··Ленты·Контакты·Конфиденциальность·© 2026 Kitploit

Каталог инструментов

Категории

Все категории
Loading categories
libpo32 — Библиотека на C99 для акустической передачи и синтеза ударных для PO-32. | Kitploit
Инструменты/GitHubGitHub/ericlewis/libpo32
Безопасность встроенных системОбратная инженерияАппаратная Безопасность
GitHubericlewis/libpo32

libpo32

Библиотека на C99 для акустической передачи и синтеза ударных для PO-32.

Репозиторий
200922 дней назадПроверено Kitploit

Популярное

Смотреть все →

Откройте для себя самые используемые инструменты нашего сообщества.

Изучить все инструменты

Просмотрите нашу коллекцию инструментов

Смотреть все инструменты →
Поделиться

libpo32

Tests Codecov FOSSA Status

Небольшая библиотека на C99 для акустической передачи данных и синтеза ударных для Teenage Engineering PO-32.

libpo32 перереализует стек передачи PO-32 Tonic и совместимую модель голоса ударных. Это не полный эмулятор прошивки или интерфейса PO-32; она охватывает формат пакетов, акустический модем, декодер кадров и локальный синтез ударных, необходимые для создания, отправки, приёма и предпросмотра передач PO-32.

Содержание

  • Обзор
  • Использование с PO-32
  • Начало работы
  • Примеры
  • Проекты, созданные с помощью libpo32
  • Публичный API
  • Документация
  • Структура проекта
  • Участие в разработке
  • Лицензия

Обзор

ОбластьЧто предоставляет libpo32
Протокол передачиСоздание и разбор пакетов патчей, паттернов и состояния PO-32
Акустический модемРендеринг кадров передачи в DPSK-аудио для воспроизведения в устройство

Ядро — автономный C99: без рантайма libc, без внешних DSP-библиотек, без платформенных аудио-API, без файлового ввода-вывода. Используются только автономные заголовки <stddef.h> и <stdint.h>. Подходит для встраиваемых и bare-metal сред.

Использование с PO-32

PO-32 не получает готовое аудио ударных при передаче звука или паттерна. Он получает структурированные данные:

ДанныеЗначение
Пакеты патчейДве конечные точки патча на инструмент (Left и Right), с закодированным в пакете слотом назначения инструмента

Затем устройство использует собственный внутренний синтезаторный движок для преобразования этих параметров в звук.

На высоком уровне рабочий процесс с реальным оборудованием выглядит так:

ШагЧто вы делаете
1Создаёте передачу в программном обеспечении из данных патчей, паттернов и состояния

Начало работы

Из корня репозитория настройте, соберите, запустите тесты, затем демо:

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 хук, который запускает clang-format на подготовленных .c и .h файлах перед каждым коммитом и проверяет темы коммитов на соответствие Conventional Commits. Управляемый репозиторием pre-push хук запускает скрипт статического анализа перед push.

Pre-commit хук требует clang-format 18 и завершается ошибкой при любой другой основной версии; см. CONTRIBUTING.md для вариантов установки.

Демо создаёт кадр передачи, рендерит его в аудио, декодирует обратно (проверяя без потерь roundtrip), синтезирует удар барабана и записывает два 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

Проекты, созданные с помощью libpo32

ПроектЧто он делает
Libpo32 for SchwungМодуль синтезатора ударных на 16 голосов для Schwung на Ableton Move, работающий на libpo32

Публичный API

ЗаголовокОтветственность
core/include/po32.hСоздатель передачи, помощники пакетов, рендерер и декодер
core/include/po32_synth.hСинтезатор ударных

Документация

Структура проекта

Участие в разработке

См. CONTRIBUTING.md для локальной настройки, команд проверки и политики Conventional Commits, используемой для SemVer-совместимой истории.

Лицензия

Copyright (c) 2026 Eric Lewis. Лицензировано по MIT License. См. LICENSE.

Скачать инструмент
ДекодерВосстановление нормализованных кадров и пакетов из аудио передачи
Синтез ударныхЛокальный рендеринг 21-параметрового голоса ударных PO-32 для предпросмотра и тестирования
Пакеты паттерновКакие инструменты срабатывают на каких шагах, со слотом назначения паттерна, закодированным как pattern_number
Пакет состоянияТемп, свинг, значения морфинга по умолчанию и список переданных паттернов
2Рендерите эту передачу в WAV или живой аудиопоток
3Переводите PO-32 в обычный режим приёма/импорта
4Воспроизводите отрендеренное аудио передачи в устройство
5PO-32 декодирует пакеты и записывает их в слоты звуков или паттернов, указанные внутри этих пакетов
Минимальный roundtrip: кодирование, рендеринг, декодирование и проверка
./build/po32_demoСквозное демо: создание/рендеринг/декодирование кадра передачи плюс локальный синтез ударных
./build/po32_pattern_editorИнтерактивное редактирование паттернов PO-32 и экспорт в WAV
./build/po32_decode_capture <input.wav> <out-dir>Дампы пакетов и паттернов из WAV передачи
ДокументНазначение
АрхитектураКак работает кодек
ПротоколДетали формата передачи
C APIСправочник по функциям C
СинтезСигнальный путь синтезатора
Параметры патчей21 параметр
ПривязкиКак написать новую языковую привязку
ПримерыПоддерживаемые примеры программ
ФаззингФаззинг-харнессы и дифференциальные свойства
Участие в разработкеЛокальная настройка, проверки и соглашения о коммитах
ПутьНазначение
core/srcОсновная реализация на C
core/includeПубличные C-заголовки
core/examplesПоддерживаемые примеры на C
core/testsПокрытие тестами ядра
core/fuzzlibFuzzer харнессы для каждой поверхности недоверенного ввода
core/docsЗаметки по архитектуре, протоколу и API
bindings/goGo-привязки (cgo, оборачивают полный публичный API)