$ show rerdavies/pipedal
PiPedal is a real-time audio effects processing system designed for guitarists, featuring a hybrid architecture with a C++ backend and React/TypeScript frontend. It hosts LV2/VST3 plugins to create customizable pedalboard chains, provides web-based remote control, manages Wi-Fi connectivity (including hotspot and P2P modes), handles MIDI input, and manages presets/snapshots of effect configurations. The system emphasizes low-latency audio processing for live performance and integrates with online services like Tone3000 for neural amp model downloads.
The LLM identified 5 files worth highlighting for reuse:
Custom JSON serialization framework using DECLARE_JSON_MAP macros to reduce boilerplate while maintaining type safety. Provides clean separation between data structures and serialization logic, used throughout the codebase for configuration and state management.
React-based observable property implementation enabling reactive UI updates. Provides a clean abstraction for state management that integrates well with Material-UI components, used throughout the frontend for synchronizing UI state with the backend model.
Template-based thread-safe queue implementation supporting multiple producer/consumer scenarios. Used in the worker system and other concurrent components, demonstrating proper synchronization techniques with condition variables and mutexes.
Custom promise/future implementation for asynchronous operations, providing a clean API for async/await-style programming in C++. Integrates well with the codebase's concurrent components and demonstrates skill in modern C++ async patterns.
Utility for programmatically building SVG paths with a fluent interface. Used in various visualization components (waveform displays, frequency response graphs) to create dynamic graphics based on audio data, demonstrating encapsulation of complex SVG path commands.