Commit Graph

1231 Commits

Author SHA1 Message Date
Extremesecrecy 12ecf3c209 Housekeeping - documentation update.
Introduced a new dependency checking script that validates required apt packages before building the project

Documented the expanded package list and instructions for running the script within the build prerequisites documentation

Updated build system instructions to call the dependency checker prior to configuring with CMake
2025-07-24 08:20:24 -07:00
Extremesecrecy 1e9cd5eb13 UI Console Errors and Git Errors Fixes, + recommendations
Converted several variables to constants and removed unused function parameters in the AboutDialog component, addressing lint warnings

Introduced strict JSON interfaces in AlsaDeviceInfo to replace untyped “any” parameters and ensured returned arrays use constants

Simplified styling callbacks and defined props more strictly in App, while using constants for URL parsing

Updated the WithStyles helper to accept unknown argument lists and return types rather than “any”

Added a workflow step so CI runs npm run lint -- --fix inside the vite directory

Testing
2025-07-24 08:11:00 -07:00
Extremesecrecy b3853e1bdb CPU Usage Dive by Zero Issue (Chrome Console Error Reported)
Added explicit checks in “CpuUse::UpdateCpuUse” to avoid division by zero; CPU usage and overhead are forced to 0 when times are zero

Validated audio driver CPU usage in “AudioHost::getJackStatus”, replacing non‑finite results with 0
2025-07-24 07:50:33 -07:00
Extremesecrecy 43cc758d18 Revise device configuration logic and settings
The ALSA device scanner no longer inserts default sample rates when it cannot read them, preventing invalid frequency choices

Jack server settings now accept independent input and output devices during construction

The latency test utility was updated to handle separate input and output device parameters and display them accordingly

The help text for the latency tool documents the new usage with optional output device specification

Device lists in the configuration dialog are sorted to prefer devices supporting capture and playback, then USB devices, while refresh preserves existing selections
2025-07-24 07:45:02 -07:00
Robin E. R. Davies 1af5e0d1ca FAQ 2025-07-24 03:19:49 -04:00
Extremesecrecy 798a8c8708 Update PiPedalModel.tsx
Updated the error handling logic in PiPedalModel’s WiFi Direct configuration. The promise now rejects when the server call fails instead of resolving silently
2025-07-23 23:09:44 -07:00
Extremesecrecy f72533ec0c Update PiPedalModel.tsx
Modified the “setWifiDirectConfigSettings” method to resolve the promise only on success and reject on errors, matching the pattern used by “setWifiConfigSettings.”
2025-07-23 22:52:46 -07:00
Extremesecrecy 059922f71f Update PiPedalAlsa.cpp
Added error checks around ALSA rate queries so that if querying the minimum rate fails, a warning is logged and 48 kHz is used as a default

When querying the maximum rate fails, the code now warns and falls back to 48 kHz; otherwise it populates valid rates and ensures a fallback if none are found

Buffer size retrieval now occurs after handling rate queries, maintaining previous behavior while supporting the new fallback logic
2025-07-23 22:48:22 -07:00
Extremesecrecy 2b5f614625 Update PiPedalSocket.cpp
ntroduced helper functions to verify required fields in configuration structures, ensuring missing property names trigger a descriptive exception

Applied these checks when handling the “setJackServerSettings,” “setWifiConfigSettings,” and “setWifiDirectConfigSettings” messages to validate incoming data
2025-07-23 22:44:37 -07:00
Extremesecrecy 85c1e46350 Handle Empty SampleRates Cont
Prevents crashes when input/output devices report no sample rates by defaulting to the current rate or 48 kHz if needed

Provides a fallback option in the UI so the selected rate is visible even when the device list is empty
2025-07-23 22:14:31 -07:00
Extremesecrecy 69eeeca3fc Handle Empty Samplerates
Prevents crashes when input/output devices report no sample rates by defaulting to the current rate or 48 kHz if needed

Provides a fallback option in the UI so the selected rate is visible even when the device list is empty
2025-07-23 22:12:38 -07:00
Extremesecrecy d98c5c1ae0 Update JackServerSettingsDialog.tsx
Added a user-facing error hint in the audio configuration dialog that prompts users to select all audio settings when the OK button is disabled
2025-07-23 21:32:54 -07:00
Extremesecrecy 3c20668b07 Update JackServerSettingsDialog.tsx
Allowed the device selector row in JackServerSettingsDialog to wrap items with a small gap so input and output dropdowns no longer collide
2025-07-23 20:50:10 -07:00
Extremesecrecy 90b050bca4 Update JackServerSettingsDialog.tsx
Enhanced “same device” configuration to validate that the selected input device also supports playback, falling back to a device with both capabilities if necessary

Updated the “Use same device” change handler so it automatically picks a valid device that supports both capture and playback when enabled

Modified the input device label to display “Device” when using the same device for input and output, maintaining consistency with the configuration
2025-07-23 20:23:02 -07:00
Extremesecrecy dbeefe341f Update AlsaDriver.cpp
Set alsa_device_name according to the capture and playback device when configuring streams so error messages reference the correct device

Ensure the device name is assigned before opening each stream to accurately report any ALSA errors
2025-07-23 20:04:09 -07:00
Extremesecrecy ad22489be7 Same Device Con't
When “Use same device” is enabled, changing that setting now ensures the input device also supports playback, switching to the first bidirectional device if necessary

The input device dropdown hides devices lacking playback capability whenever the same-device option is active

The device change handlers now call “applyAlsaDevices” with the latest settings to recalculate latency and validation, ensuring UI state matches valid ALSA configurations

“applyAlsaDevices” accepts an optional same-device flag so callers can specify when input and output devices should be treated as identica
2025-07-23 19:37:11 -07:00
Robin E. R. Davies 7050710b76 SplitIO Uri.cpp fix. 2025-07-23 22:28:40 -04:00
Robin Davies abd3e97be5 Merge pull request #351 from rerdavies/revert-350-SplitIO
Revert "Split IO"
2025-07-23 22:25:33 -04:00
Robin Davies 77d8672ca6 Revert "Split IO" 2025-07-23 22:25:07 -04:00
Extremesecrecy 2f734ded40 Merge branch 'SplitIO' of https://github.com/extremesecrecy/pipedal into SplitIO 2025-07-23 19:09:15 -07:00
Extremesecrecy c8a80e5aaa Same Device Support
Updated the input and output device change handlers so new settings are validated through applyAlsaDevices, ensuring latency and OK status are refreshed
Added a new “useSameDevice” flag in the Jack server settings dialog state to track whether input and output devices are locked together

Initialized the flag based on whether the current configuration uses the same input and output device

Updated device handlers to mirror the input device into the output device when the toggle is enabled

Inserted a checkbox labeled “Use same device for input/output” into the dialog UI and hid the output selector when this option is active
2025-07-23 19:08:50 -07:00
Robin E. R. Davies 7ecd889f5b Merge branch 'dev' of https://github.com/rerdavies/pipedal into dev 2025-07-23 17:12:10 -04:00
Robin E. R. Davies 0808fd62c9 Add FAQ... 2025-07-23 17:12:04 -04:00
Robin Davies 7830b27bb2 Merge pull request #350 from extremesecrecy/SplitIO
Split IO
2025-07-23 17:09:30 -04:00
ExtremesecrecyOne 6ac8968583 Devices with only I or O Fix
Added new fields to track ALSA device capabilities, letting the application know whether a device supports capture or playback

Updated serialization to include the new flags in the JSON data exchanged with the UI

Modified the dummy driver so test devices always indicate capture and playback support

Adjusted the TypeScript model and dialog to filter device choices based on the new flags, ensuring only valid options appear in selectors
2025-07-23 12:18:19 -07:00
Robin E. R. Davies 94637afa55 v1.4.83 Versining 2025-07-23 15:16:51 -04:00
Robin E. R. Davies 9848adad10 Misc restrict declarations for fast-math 2025-07-23 15:06:28 -04:00
Robin E. R. Davies 090ffc9a9e Rework audio thread restart. 2025-07-23 15:06:06 -04:00
ExtremesecrecyOne fbd925caca Update JackServerSettingsDialog.tsx
Summary

Added imports for the new refresh button in the JACK settings dialog, enabling quick reloading of ALSA devices without closing the dialog

Inserted an IconButton next to the audio device selectors so users can refresh the list on demand
2025-07-23 11:35:22 -07:00
Robin E. R. Davies d5ec594957 Merge remote-tracking branch 'origin/main' into dev 2025-07-23 14:19:25 -04:00
Robin Davies 5ff6930c13 Merge pull request #349 from jardous/fastmath
add -ffast-math to speed up the execution
2025-07-23 14:14:12 -04:00
ExtremesecrecyOne c6aec562b0 Update JackServerSettingsDialog.tsx
The dialog now disables the device selectors and shows a “Loading…” placeholder until ALSA devices are available, preventing runtime errors during the initial render
2025-07-23 07:58:23 -07:00
Jiri Popek e22493b4ae add -ffast-math to speed up the execution
+ src/CMakeLists whitespace cleanup
2025-07-23 15:07:26 +02:00
ExtremesecrecyOne 7fc2ca7cdf Typos
Corrected typos.
2025-07-22 21:01:57 -07:00
Robin E. R. Davies 052aa681a1 v1.4.82 versioning 2025-07-22 22:51:28 -04:00
ExtremesecrecyOne 1ca0973833 Fixes to Changes.
Added helper functions to combine and intersect ALSA device capabilities, ensuring validation works across separate input and output devices

Updated buffer handling logic to use both selected devices and compute min/max sizes appropriately

Revised validation to check both ALSA input and output devices when enabling the OK button

Simplified rendering logic to intersect sample rates and buffer options for the chosen devices

AlsaDriver single device err calls fixed.

Added guidance on using USB audio interfaces or Raspberry Pi audio HATs and choosing separate ALSA input and output devices during setup

Clarified that the Audio Device Settings dialog allows independent configuration of input and output devices, with updated instructions for selecting audio channels
2025-07-22 17:51:33 -07:00
ExtremesecrecyOne 54926871fc Uri Change
Summary

Ensured that checking for a query key now returns true when the key is found, allowing accurate existence checks

Added “&” separators when reconstructing query strings so that URIs are properly formatted with multiple parameters
2025-07-22 16:44:09 -07:00
ExtremesecrecyOne d8043d2041 Separate IO
Initial separation of input and output devices. Assisted by our super friend ChatGpt.
2025-07-22 16:20:30 -07:00
Robin E. R. Davies f93fcccb4e Selection problems when altering structure. 2025-07-22 17:03:32 -04:00
Robin E. R. Davies ea134b46a8 Worker thread per plugin instance. 2025-07-22 16:02:37 -04:00
Robin E. R. Davies 7ffbee16cf Updated selectedPlugin when loading a new Plugin. 2025-07-22 02:53:29 -04:00
Robin E. R. Davies 884eb31619 Release notes copyedit. 2025-07-21 14:27:55 -04:00
Robin E. R. Davies e0efced2f7 Crashguard: anticipate power-off resets on Pi 4. 2025-07-21 14:09:39 -04:00
Robin E. R. Davies 3bbba23ea6 Release notes copyedit. 2025-07-21 12:36:07 -04:00
Robin Davies 486a9f356f Merge pull request #344 from rerdavies/dev-modui
v1.4.68
2025-07-21 12:22:16 -04:00
Robin E. R. Davies 5de8307625 Relese not for same. 2025-07-21 12:17:02 -04:00
Robin E. R. Davies 7f8b272504 Crash guard: prevent loading of preset if it has caused crashes. 2025-07-21 12:09:27 -04:00
Robin E. R. Davies b60fbd18f0 Merge branch 'dev-modui' of https://github.com/rerdavies/pipedal into dev-modui 2025-07-21 02:07:05 -04:00
Robin E. R. Davies f6ac684d97 toobamp_1.1.64_amd64 2025-07-21 02:06:22 -04:00
Robin E. R. Davies d768883a9b v1,4,68 versioning and relese notes. 2025-07-21 01:10:52 -04:00