Commit Graph

1480 Commits

Author SHA1 Message Date
shawn 0a76f5734f Add scene save/load WS messages to MixerApi
- Implement saveScene: captures full mixer state via getStateJson(),
  stores in ~/op-pedal/default_config/scenes.json with auto-incrementing ID
- Implement loadScene: manual JSON walk to restore channel/bus state
  from saved scene JSON, routes skipped for safety
- Implement listScenes: returns JSON array of {id, name}
- Implement deleteScene: remove by ID from scenes file
- Add WS handlers: mixerSaveScene, mixerLoadScene, mixerGetScenes
  registered in PiPedalSocket.cpp message dispatcher
- Uses project's JSON_MAP/raw_json_string for file persistence
- Compiles cleanly against existing build
2026-06-20 15:54:42 -04:00
shawn 959da00d7c docs: add band-in-a-box digital mixer implementation plan 2026-06-20 15:11:14 -04:00
shawn 1854d03c58 feat: add WebsSocket API for mixer engine control
New files:
- MixerApi.hpp/cpp: Model-level API bridging WebSocket messages to
  MixerEngine control (channel volume/pan/mute/solo/hpf, bus control,
  routing, state queries)
- 15 new WebSocket message handlers in PiPedalSocket.cpp for full
  mixer control surface

Integration:
- MixerEngine member added to PiPedalModel with Get/Set accessors
- SetMixerEngine propagates to AudioHost rt processing pipeline
- Socket handler auto-wires MixerEngine to MixerApi on connect

Messages implemented:
  mixerSetChannelVolume, mixerSetChannelPan, mixerSetChannelMute,
  mixerSetChannelSolo, mixerSetChannelLabel, mixerSetChannelHpf,
  mixerGetState, mixerAddChannel, mixerRemoveChannel,
  mixerSetBusVolume, mixerSetBusMute, mixerAddBus, mixerRemoveBus,
  mixerRouteChannelToBus
2026-06-20 14:15:37 -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
shawn df5a317ceb feat: add MixerEngine core — ChannelStrip, MixerBus, and MixerEngine for band-in-a-box digital mixer
MixerEngine architecture:
- MixerChannelStrip: per-input FX chain (Lv2Pedalboard reuse),
  volume, pan, mute, solo, HPF, aux sends, VU metering
- MixerBus: accumulation bus with volume, mute, VU. Supports
  master, subgroup, aux, and FX-return bus types
- MixerEngine: orchestrator managing channel→bus routing graph,
  bus→bus routing, solo override, and the full real-time audio
  processing cycle

All new code compiles cleanly with the existing C++20 build and
follows the existing PiPedal codebase conventions (namespaces,
error handling, buffer patterns). CPU-efficient real-time thread
processing with atomic control surface interaction.
2026-06-20 13:57:15 -04:00
shawn e1014462b4 fix: Restore missing P in OP LABS — path was truncated, only had O letter
CMake / build (push) Has been cancelled
CodeQL / Analyze (cpp) (push) Has been cancelled
2026-06-20 13:24:59 -04:00
shawn 4854b2fa22 fix: Working OP-Pedal logo SVGs with Arial/sans-serif text + PNG previews
CMake / build (push) Has been cancelled
CodeQL / Analyze (cpp) (push) Has been cancelled
2026-06-20 13:10:03 -04:00
shawn 4047a74dd5 fix: Revise OP-Pedal logos - OP LABS + OP PEDAL subtitle with per-letter spacing
CMake / build (push) Has been cancelled
CodeQL / Analyze (cpp) (push) Has been cancelled
2026-06-20 12:09:17 -04:00
shawn 236e1e2b3c feat: Add OP-Pedal branded logo variants (horizontal + square stack)
CMake / build (push) Has been cancelled
CodeQL / Analyze (cpp) (push) Has been cancelled
- Horizontal lockup: OP Labs icon + 'OP' (silver) + 'PEDAL' (blue)
- Square stack: icon above 'OP PEDAL' text
- Place in artifacts/ and vite/public/img/ for UI use
2026-06-20 12:05:29 -04:00
shawn ae13b3739d feat: Add OP Labs branding — favicon, PWA icons, manifest, UI logo
CMake / build (push) Has been cancelled
CodeQL / Analyze (cpp) (push) Has been cancelled
- OP Labs icon SVG as default app icon + favicon (SVG + ICO fallback)
- 192x192 and 512x512 PWA icons generated from OP Labs logo
- Updated manifest.json with SVG favicon + maskable icon support
- Updated index.html with SVG favicon link
- Replaced old ic_logo.svg with OP Labs icon mark
- Stored OP Labs logo assets (icon, horizontal, square) in artifacts/
- Removed old PiPedal20Thumb.jpg
2026-06-20 12:03:42 -04:00
shawn c028ad8cd6 fix: Rebrand systemd templates, polkit rules, and install scripts
CMake / build (push) Has been cancelled
CodeQL / Analyze (cpp) (push) Has been cancelled
- src/templates/pipedald.service.template — user/group pipedal_d → oppedal_d
- src/templates/pipedaladmind.service.template — WorkingDirectory /var/pipedal → /var/oppedal
- src/templates/pipedal_nm_p2pd.service.template — Description and WorkingDirectory
- src/templates/pipedal_p2pd.service.template — Description and WorkingDirectory
- src/templates/pipedal_p2pd.conf.template — p2p_model_name, manufacturer
- src/templates/jack.service.template — After=pipedald → After=oppedald
- src/templates/*.conf — PiPedal/pipedal-* → OP-Pedal/oppedal-* references
- src/polkit-1/rules/10-pipedal-networkmanager.rules — group pipedal_d → oppedal_d
- install.sh — pipedalconfig/oppedalconfig binary paths
- uninstall.sh — /etc/pipedal, /var/pipedal → /etc/oppedal, /var/oppedal
- run.sh — pipedald → oppedald, /etc/pipedal → /etc/oppedal
2026-06-20 12:02:39 -04:00
shawn 5e93cc1fb9 fix: Update system-level branding in PiPedalCommon (hotspot/ALSA names, service group, device name)
CMake / build (push) Has been cancelled
CodeQL / Analyze (cpp) (push) Has been cancelled
- WifiConfigSettings.hpp: default hotspot 'pipedal' -> 'op-pedal'
- WifiDirectConfigSettings.hpp: default hotspot 'pipedal' -> 'op-pedal'
- WifiDirectConfigSettings.cpp: default device name 'PiPedal' -> 'OP-Pedal'
- ServiceConfiguration.hpp: deviceName 'PiPedal' -> 'OP-Pedal'
- ServiceConfiguration.cpp: group name 'pipedal_d' -> 'oppedal_d'
- AlsaSequencer.cpp: ALSA client/port/queue names 'PiPedal' -> 'OP-Pedal' (5 occurrences)
2026-06-20 12:01:56 -04:00
shawn acfb8d15ab fix: Rebrand project from PiPedal to OP-Pedal
CMake / build (push) Has been cancelled
CodeQL / Analyze (cpp) (push) Has been cancelled
Updated branding across the project:
- CMakeLists.txt: project name, description, homepage, display version
- src/PiPedalVersion.cpp: server name string
- debian/control: package name, source, homepage, description
- vite/package.json: package name
- vite/index.html: title, meta description
- vite/public/manifest.json: name, short_name, description, URLs
- UI files: AboutDialog, AppThemed, MainPage, SettingsDialog,
  UpdateDialog, WifiConfigDialog, WifiConfigSettings,
  WifiDirectConfigSettings, Tone3000Downloader, Tone3000HelpDialog,
  WindowScale

Preserved upstream copyright/attribution and legal references.
2026-06-20 11:04:28 -04:00
shawn d01a7df03a chore: rebrand as OP-Pedal fork of PiPedal v2.0.107
CMake / build (push) Has been cancelled
CodeQL / Analyze (cpp) (push) Has been cancelled
2026-06-20 10:56:19 -04:00
Robin Davies 0db76000d4 Bad link in README.md
Signed-off-by: Robin Davies <rerdavies@gmail.com>
2026-06-18 09:28:15 -04:00
Robin Davies a552fb34f3 Merge pull request #516 from rerdavies/dev
v2.0.107 Dev Merge
2026-06-18 09:23:09 -04:00
Robin E.R. Davies d75a52bdac RE-add esbuild 2026-06-18 08:30:36 -04:00
Robin E.R. Davies b8cec3e1e8 Merge branch 'dev' of https://github.com/rerdavies/pipedal into dev 2026-06-18 08:18:51 -04:00
Robin E.R. Davies e71594000a Referesh vite dependencies in Prod build. 2026-06-18 08:18:48 -04:00
Robin E. R. Davies 5b644fe74c Merge branch 'dev' of https://github.com/rerdavies/pipedal into dev 2026-06-18 08:17:23 -04:00
Robin E. R. Davies 1cd9105f9a ToobAmp v1.3.82 aarch64 2026-06-18 08:16:40 -04:00
Robin E.R. Davies 3539ebcef3 Merge branch 'main' of https://github.com/rerdavies/pipedal into dev 2026-06-18 08:06:07 -04:00
Robin E.R. Davies 11a5c3e174 v2.0.107 2026-06-18 08:04:55 -04:00
Robin E.R. Davies a6a620ad55 Merge branch 'main' of https://github.com/rerdavies/pipedal 2026-06-18 07:58:36 -04:00
Robin E.R. Davies 52e7ea8ad0 ToobAmp v1.3.82 amd64 2026-06-18 07:58:32 -04:00
Robin Davies 7d611709b5 Update ReleaseNotes with contributor information
Added contributor names for minor features.

Signed-off-by: Robin Davies <rerdavies@gmail.com>
2026-06-17 14:18:18 -04:00
Robin E.R. Davies 4522200b3b Merge branch 'dev' of https://github.com/rerdavies/pipedal 2026-06-17 14:11:24 -04:00
Robin E. R. Davies 321fc792bb Release notes. 2026-06-17 12:38:40 -04:00
Robin E. R. Davies 8917889406 Correct release note credits. 2026-06-17 12:28:07 -04:00
Robin E.R. Davies e5fd55d505 Build fixes, promot Arch Linux build to alpha status. 2026-06-17 12:24:06 -04:00
Robin E.R. Davies d6ee400394 Must not install .so's from build dependencies. We should be using .a files instead. 2026-06-17 12:12:46 -04:00
Robin E.R. Davies 8bc43e76fd ToobAmp 1.3.81 amd64 2026-06-17 11:55:08 -04:00
Robin E.R. Davies ef28f2684d Do NOT install LIBZIP files. (we use the .a file) 2026-06-17 11:53:12 -04:00
Robin E. R. Davies 78bc3d1d1a Promote 2.0.106 to a release build. 2026-06-17 11:46:14 -04:00
Robin E.R. Davies 7e7f6d926c Include SQLLite build in ALL target. 2026-06-17 11:24:53 -04:00
Robin E.R. Davies 81395a66a4 Remove zlib and sqllite install dependencies. (use static libs) 2026-06-17 11:22:32 -04:00
Robin E. R. Davies f6bff2a682 Merge branch 'dev' of https://github.com/rerdavies/pipedal into dev 2026-06-17 10:36:05 -04:00
Robin E. R. Davies 859500a8ac Fix Catch2 build break on Debian 12 2026-06-17 10:35:57 -04:00
Robin Davies a752eac22c Merge pull request #508 from rerdavies/dependabot/npm_and_yarn/vite/npm_and_yarn-30ae9b537b
Bump esbuild from 0.25.2 to removed in /vite in the npm_and_yarn group across 1 directory
2026-06-17 09:37:22 -04:00
Robin Davies 56be988646 Merge pull request #511 from onirob/fix-alsa-midi-freeze
Fix MIDI input freeze under continuous CC input
2026-06-17 09:36:11 -04:00
Roberto Figliè 2703bfc221 Fix for midi freeze
Reset midiEventMemoryIndex in AlsaDriver.cpp when starting MIDI processing and when clearing midiEventCount to avoid stale index/state issues while using expression pedals.
2026-06-17 12:01:26 +02:00
Robin E. R. Davies f836ed5f98 TooBAmp 1.3.81 aarch64 2026-06-16 16:42:26 -04:00
Robin E. R. Davies eda38c376d v2.0.106-Experimental - Private release for internal development use (building additional Factory Presets).
Adds TooB Multi-Tap Delay
2026-06-16 16:16:27 -04:00
Robin E.R. Davies 57ce06cecd Copy/Paste for splits effects. 2026-06-16 03:39:50 -04:00
Robin E.R. Davies 0bd7cea73c Merge branch 'dev' of https://github.com/rerdavies/pipedal into dev 2026-06-15 09:30:57 -04:00
Robin E.R. Davies 84b9469896 Allow dragging of Splits 2026-06-15 09:30:52 -04:00
FoolHen 238810caf8 Add WIP notice about Arch instructions in docs 2026-06-14 17:11:30 +02:00
dependabot[bot] dd7fb7fb11 Bump esbuild in /vite in the npm_and_yarn group across 1 directory
Bumps the npm_and_yarn group with 1 update in the /vite directory: [esbuild](https://github.com/evanw/esbuild).


Removes `esbuild`

---
updated-dependencies:
- dependency-name: esbuild
  dependency-version:
  dependency-type: indirect
  dependency-group: npm_and_yarn
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-06-14 03:01:29 +00:00
Robin Davies 9c9096b984 Merge pull request #504 from rerdavies/dev_arch_cont
More Arch fixes
2026-06-11 18:51:08 -04:00
FoolHen 97234a352c Remove disable tests flag from Arch instructions in docs 2026-06-10 17:12:51 +02:00