As a creator, I kept running into the same issues with soundboard apps: they were bulky, slow to respond, or just awkward to use in live setups. So I built PadVibe—a desktop-focused audio pad designed to be fast, minimal, and easy to work with.
Key Features
- Low-latency playback using SoLoud
- Flexible output routing for multi-device setups
- Drag-and-drop mapping for quick setup
- Global hotkeys that work across applications
- Open source and available on GitHub
Tech Stack
- Flutter (Desktop): Used for the UI layer.
- Python (Sidecar): Handles the heavy lifting for audio processing.
- GetX: Manages the application state.
- GitHub Actions: Automates our builds and releases.
Challenges
Latency: Many audio libraries introduced noticeable delay. Using Sidecar helped keep playback responsive enough for live use.
Desktop behavior: Handling things like global shortcuts, window layering, and transparency took extra work to feel native.
Links
shabeer-wms
/
padvibe
PadVibe — cross‑platform Flutter app (macOS‑first) with drag‑and‑drop, multi‑window, file picking, and SoLoud‑based audio.
PadVibe 🎚️
PadVibe is a professional-grade, cross-platform audio sample triggering application. It combines the expressive UI capabilities of Flutter with a high-performance Python Sidecar audio engine to deliver low-latency playback, advanced routing, and real-time DSP.
🏗️ Architecture: The Sidecar Pattern
PadVibe employs a unique Dual-Engine Architecture. While Flutter handles the complex UI and state management, a dedicated Python process (the "Sidecar") manages the heavy lifting of audio and MIDI.
🔌 Communication Flow
- Flutter (Client): Sends JSON commands via WebSockets.
- Dynamic Port Discovery: The Sidecar automatically finds an available port (8765-8775) and broadcasts it to Flutter for a seamless handshake.
- Python Sidecar (Server): Executes audio playback, DSP, and MIDI polling.
- Real-time Feedback: The Sidecar streams audio levels (RMS/Peak) and MIDI events back to Flutter for immediate UI updates.
✨ Key Features
🎧 Pro Audio Engine
- Multi-Device Routing: Assign individual pads to specific hardware output channels or different audio interfaces…
Next Steps
I’m planning to add mixing controls and possibly a mobile companion for remote triggering.
If you’ve worked with Flutter on desktop or low-latency audio, I’d love to hear about your experience. Specifically, did you run into similar window layering issues on macOS vs Windows? Let's discuss in the comments!
padvibe.pro26.in
Top comments (0)