Commit Graph

28 Commits

Author SHA1 Message Date
shawn 8068f5d168 Mixer engine: output routing, full state restore, MIDI learn API, PipeWire multi-channel support 2026-06-20 16:20:30 -04:00
shawn 3d00299051 feat: add PipeWire multi-channel audio driver (full-duplex N channel)
- PipeWireDriver.hpp/cpp: new AudioDriver implementation using pw_filter API
- Full-duplex I/O via pw_filter (capture + playback in one RT callback)
- Dynamic channel count support (tested: 1-8 channels, extensible beyond)
- Uses SPA_AUDIO_FORMAT_F32 for zero-copy-compatible float processing
- Channel position mapping: MONO, stereo, 5.1, 7.1, plus Aux for N>8
- Follows the same buffer management pattern as AlsaDriverImpl
- Channel routing: main/aux input/output mapping with mix ops
- CLI flag: --driver pipewire|alsa (default: alsa)
- AudioHost: conditional driver selection based on driverType_
- PiPedalModel: stores and passes driver type to AudioHost
- CMakeLists.txt: added PipeWireDriver source files
2026-06-20 16:03:16 -04:00
shawn 0422c91b4e feat: integrate MixerEngine into AudioHost real-time audio pipeline
When SetMixerEngine() is called with a MixerEngine instance, the
audio processing thread routes all device input/output channels
through the mixer (channel strips → buses → master) instead of
the legacy Lv2Pedalboard. Falls back when no mixer engine is set.

- Thread-safe via mutex + realtime raw pointer swap (same pattern
  as existing SetPedalboard)
- Preserves existing pedalboard processing — both modes coexist
- New ProcessLv2Pedalboard() path when realtimeActiveMixerEngine
  is non-null uses device buffers directly for multi-channel I/O
2026-06-20 14:06:46 -04:00
FoolHen 00952dad3a Add snapshot next/prev MIDI bindings 2026-06-03 21:21:43 +02:00
Robin E.R. Davies 05bd32ad38 Big Fat Copyright Cleanup 2026-06-02 12:59:41 -04:00
Robin E.R. Davies b21c9d636a Channel routing without inserts. 2026-04-04 14:51:41 -04:00
Robin E.R. Davies 1f60e02ce0 Checkpoint point, pre instantiation of supplementary LV2pedalboards. 2026-03-05 09:19:51 -05:00
Robin E.R. Davies 564ed914cc Manifest.json, Channel Router Sync. Alsa device enumeration. 2026-02-13 16:06:10 -05:00
Robin E.R. Davies da8a61b5d3 Merge branch 'dev_routing' of https://github.com/rerdavies/pipedal into dev_tone3000 2026-02-10 20:18:09 -05:00
Robin E.R. Davies 22b63a32db Complete except for throttling bug. 2026-02-10 19:59:05 -05:00
Robin E. R. Davies 59263ee715 Sync 2026-01-27 10:10:36 -05:00
Robin E. R. Davies 41e0031bdf Update copyrights 2025-09-11 22:30:02 -04:00
Robin E. R. Davies ac194fbbb5 Fixes to handling of path properties in presets. 2025-09-04 15:20:56 -04:00
Robin E. R. Davies 79aa1441c3 Hotspot: no scanning if not required. 2025-06-29 20:27:43 -04:00
Robin E. R. Davies a81056a657 ALSA Sequencer connections. 2025-06-29 07:44:39 -04:00
Robin E. R. Davies 07af383211 listen for midi binding control range. 2025-06-26 10:24:48 -04:00
Robin E. R. Davies 8b480d2e58 Toob File Player checkpoint. 2025-05-26 23:49:03 -04:00
Robin E. R. Davies 4a4bd12d38 Restart audio after ALSA stall. 2024-11-29 23:44:00 -05:00
Robin Davies 64062fbbd7 Ubuntu doens't have a CPU governor. 2024-11-11 19:31:43 -05:00
Robin Davies 472703627e Audio stability, snapshots 2024-10-06 00:00:20 -04:00
Robin Davies 7821872016 Snapshots 2024-10-03 07:27:13 -04:00
Robin Davies 2a851dbd4b Alsa head corruption in error handling. 2024-09-15 06:30:16 -04:00
Robin Davies 179d1aa025 Dummy audio thread to keep display responsive when no audio device. 2024-08-26 22:42:15 -04:00
Robin Davies 7e0ef9ceb1 File browser compatibility, NAM 2023-06-24 13:49:11 -04:00
Robin Davies 37426d9047 v1.1.20 Release 2023-04-20 15:27:18 -04:00
Robin Davies 845af2ee47 Alpha 2023-04-16 01:13:03 -04:00
Robin Davies b83ba7ca94 Interim checking, Convolution Reverb 2023-04-05 03:00:51 -04:00
Robin Davies ff8ed6b733 v1.0.18
- MIDI Program/Bank select.
- MIDI next/previous program.
2023-01-13 20:59:43 -05:00