Commit Graph

1051 Commits

Author SHA1 Message Date
Extremesecrecy d2e489cdf4 Reverted
Reverted errors. Tonex is not working becasue proprietary x86 plug‑ins such
  as **IK Multimedia ToneX**.
2025-07-26 12:31:56 -07:00
Extremesecrecy 54d47a8ded ...Default48 after trying best.
Added better fallback logic when computing the optimal sample rate. If no common sample rate is found, the code now defaults to 48 kHz or the desired rate when provided. The intersection list is sorted before evaluating the best match
2025-07-26 11:52:42 -07:00
Extremesecrecy be06a28798 Reference errors
Fixing reference errors.
2025-07-26 11:21:07 -07:00
Extremesecrecy 79c32b5dcd Freq Bug
Temporary default frequency causing crash when the frequency is not available.
2025-07-26 11:01:30 -07:00
Extremesecrecy c9e5e97b00 persistence again
Clean start worked but now the persisted is not working. Patching persistence.
2025-07-26 10:01:24 -07:00
Extremesecrecy 530277ed71 Wait going mad.
Pressing ok/apply/refresh all were starting a cascade o waits. A restart request now cleans up any previous restart thread so multiple restarts cannot overlap
2025-07-25 21:41:49 -07:00
Extremesecrecy 2ae24f0b32 Update PiPedalModel.cpp
Correcting typo while trying to figure out what to do when the audio does not start the first time.
2025-07-25 21:10:13 -07:00
Extremesecrecy 389ba70540 Settings sometime don't start fix
Apply immediately so the audio driver is
restarted with the chosen devices before
saving the settings.
2025-07-25 20:46:11 -07:00
Extremesecrecy c33c69899c Adding persist - T2
Adding model persist so that the apply can be used for testing. Previous did not  persist as intented.
2025-07-25 19:58:43 -07:00
Extremesecrecy bce2e68ee3 Update JackServerSettingsDialog.tsx
Apply button does not save settings, it is only used for testing. As per Robin on git. Ok button will save settings only. If the box is closed/cancelled, the settings revert to what they were before.
2025-07-25 18:42:50 -07:00
Extremesecrecy ccaadf1e38 Retain settings
When reopening the JACK server settings dialog, the selected settings now remain intact. The dialog only applies device defaults after ALSA information has loaded, preserving current values otherwise
2025-07-25 17:08:23 -07:00
Extremesecrecy 703e517baf RAM usage +
Introduced a new field to track memory usage in the backend status structure, allowing the server to report memory utilization as a percentage

Implemented a Linux-specific routine to read /proc/meminfo and calculate the memory usage percentage, and integrated this into the status query

Added serialization for the memory usage field so it is included in JSON responses

Updated the frontend class to deserialize and display memory usage alongside CPU usage on the status readout
2025-07-25 14:24:10 -07:00
Extremesecrecy 82e923486c Update JackServerSettingsDialog.tsx
No background on labels.
2025-07-25 13:33:35 -07:00
Extremesecrecy 1f8ee4bfd6 Update JackServerSettingsDialog.tsx
Only the capture/playback device information to display on Jack config file.
2025-07-25 13:07:04 -07:00
Extremesecrecy 5b09df0a0a Update PiPedalModel.tsx
vite/src/pipedal/PiPedalModel.tsx - For this file only!

Expected outcome is that the server may (or may not) reboot). The purpose of the catch handler (which would happen in the case of a socket disconnect) is to make sure that an error or abort does not get reported, since it is expected.

Changes to wifi configuration, where the handler code MUST NOT PROPAGATE AN EXCEPTION.

(1) just leave this function to rot in its shameful state of decay, but do NOT relay the error.
(2) Write the audio properties (specifically) without waiting for a response. The settings are propagated to other clients (and ourselves) with a on...changed notifications from the server, so there's no actual response from the server required.

Audio properties specified:
        const audioProps = [
            "http://two-play.com/plugins/toob-player#audioFile",
            "http://two-play.com/plugins/toob-player#loop",
            "http://two-play.com/plugins/toob-player#seek",
        ];
2025-07-25 12:52:58 -07:00
Extremesecrecy c983aabb19 Update uninstall.sh
Removed #!/usr/bin/sudo /usr/bin/bash.
File is as it was on original repo.
2025-07-25 12:31:02 -07:00
Extremesecrecy 1f6efd4da3 Update JackServerSettingsDialog.tsx
Changed the Apply action so that pressing “Apply” immediately sets and loads the selected devices, allowing the status display to confirm whether the configuration worked
2025-07-25 12:27:16 -07:00
Extremesecrecy b3534e0d1e Trying to follow the rest of the ui look
Added “whiteSpace: 'nowrap'” to input label styles so audio device labels remain on a single line without awkward wrapping

Removed the “Please select all audio settings.” warning and now show only the device status in the dialog footer.
2025-07-25 11:46:11 -07:00
Extremesecrecy 7ae6647b62 Device Info on configuration
Display device info only on configuration.
2025-07-25 11:19:45 -07:00
Extremesecrecy 56d66ef7db Tabs and check script and dependency
Removed tabs (tabs to spaces). Remove the check_deps.sh. removed libwebsocketpp-dev from dependencies. BTW, this is in cmake.yml.
2025-07-24 20:31:40 -07:00
Extremesecrecy 225eddcf96 Update TheBuildSystem.md
Removed lines as per Robin.
2025-07-24 20:03:24 -07:00
Extremesecrecy 465b2a9edd Update README.md
Don't add to maintenance. Removed setup block. Kept the %nbsp fix.
2025-07-24 19:57:13 -07:00
Extremesecrecy 2fa19f6462 Update JackServerSettingsDialog.tsx
Not used...keep forgetting warning will stop build. Removing.
2025-07-24 19:44:02 -07:00
Extremesecrecy 874d859916 Email Changes - Backwards Compatibility
Introduce legacy alsaDevice_ field in JackServerSettings to preserve compatibility with older configs. Include this field in serialization to allow old config files to load. Add migration logic in Storage::GetJackServerSettings to copy the legacy device value to new separate input/output fields and clear the legacy value after migration.

Update frontend validation so that device selections are only validated when the user presses OK. Improve buffer selection logic to prioritize 32×4, then other x4, x3, or x2 options, falling back to 64×3 if none match.

Use standard MUI styling for device selectors. Labels stay above the field and no longer animate. Dropdown labels now use background padding to prevent underline overlap.

Add a compactWidth flag to adjust layout on narrow screens. Stack device selectors vertically in compact mode while keeping the refresh button on the right. Refreshing ALSA info sets unknown device IDs to a blank value.

Add real-time status updates with a polling timer. Separate Apply and OK handlers so settings can be tested without closing the dialog. Add an Apply button alongside Cancel and OK.

Update the UI summary logic to show “Input → Output” when devices differ and “Not selected” when config is incomplete. Filter out internal devices like HDMI and bcm2835 from the device list.

Retain the legacy alsaDevice_ field in the JSON for backward compatibility, with helper accessors and documentation for legacy constructor behavior. Update latency text calculation to show when sample rate and buffer size are defined, even if the config is invalid.

Removed libsdl2-dev from dependency checking and dependencies.
2025-07-24 19:27:39 -07:00
Extremesecrecy fb974f5af5 Legacy Modifications
Added legacy integration so that upon upgrade, the device does not fail.
2025-07-24 16:59:17 -07:00
Extremesecrecy 53282d11c9 Update JackServerSettingsDialog.tsx
only clear the ALSA device fields when you uncheck the box,

still refresh the device list (via requestAlsaInfo()) but

preserve the checkbox state (so it doesn’t get recalculated back to true)
2025-07-24 12:25:09 -07:00
Extremesecrecy de7b905ca2 Update JackServerSettingsDialog.tsx
Import warning caused build stop. Commenting it out.

Removed an unused import from the top of the JackServerSettingsDialog component to resolve the TypeScript build error
2025-07-24 11:07:18 -07:00
Extremesecrecy 77342f95fe Update AlsaDeviceInfo.tsx
Assumed the id was a number. Changed the interface ID to string
2025-07-24 10:47:11 -07:00
Extremesecrecy c112553766 Handling devices upon selection change and full screen on dialog to accommodate phone size.
Added responsive logic using ResizeResponsiveComponent so the device configuration dialog can switch to full screen on displays narrower than 420 px or shorter than 700 px

When toggling “use same device,” the previous device choices are cleared and device information is refreshed to reset the dropdowns

Buffer and sample‑rate options now remain disabled until the appropriate number of devices has been selected
2025-07-24 10:40:42 -07:00
Extremesecrecy 8fd86901e5 Testing trying to keep serialization through interface
More variables called through app, reversed to original. keep serialization through interface.
2025-07-24 10:32:11 -07:00
Extremesecrecy 98708821be Housekeeping BuildSystem update
Documented how to build only the command-line tool by running cmake --build build --target pipedalconfig in the build instructions
2025-07-24 10:09:09 -07:00
Extremesecrecy d02fe63cce UI Console Errors and Git Errors Fixes, + recommendations (Take 2, careful with const vs var)
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 10:03:57 -07:00
Extremesecrecy b82958d8e6 Revert "UI Console Errors and Git Errors Fixes, + recommendations"
This reverts commit 1e9cd5eb13.
2025-07-24 09:40:20 -07:00
Extremesecrecy 788bfad6ab Housekeepting - Shebangs and permisions (sudo)
Added an explicit host setting so Jekyll serves docs on all interfaces in debugDocs.sh

Documented the signing command for the release package in signPackage.sh

Inserted shebangs for various helper scripts such as makePackage.sh to ensure they run correctly as standalone scripts
2025-07-24 08:29:05 -07:00
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
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
Extremesecrecy 2f734ded40 Merge branch 'SplitIO' of https://github.com/extremesecrecy/pipedal into SplitIO 2025-07-23 19:09:15 -07:00