aethersdr / aethersdr/AetherSDR
Add a AetherVoice preset dropdown to the Profile Switcher
Nobody has claimed this yet.
- Dominant language
- C++
- Stars
- 221
- Forks
- 117
- Avg merge
- 2d 9h
- Merged PRs (30d)
- 302
Description
Request preparation
- I used an AI assistant to help structure this request
- I checked for existing issues covering the same feature
What would you like?
Allow selecting and saving AetherVoice presets directly within the Profile Switcher Applet
What
Adds an AetherVoice preset selector drop-down directly into the Profile Switcher Applet (ProfileApplet / AppletPanel). Additionally, this allows saving and restoring the currently selected AetherVoice preset as part of global or transmit/mode radio profiles (e.g., binding a CW audio profile to CW mode, or a DX voice processing profile to SSB mode).
Why
Currently, switching AetherVoice audio processing presets requires opening the full AetherVoice panel or dialog. When switching operating modes or profiles (for example, moving from SSB ragchewing to CW or FT8), operators must manually navigate to AetherVoice to adjust or disable voice processing. Integrating preset selection into the Profile Switcher Applet streamlines the workflow, and linking preset selection to saved profiles eliminates repetitive manual adjustments during mode changes.
How Other Clients Do It
- SmartSDR for Windows: Links TX profiles directly to MIC / Equalizer / Processing settings so that selecting a profile (e.g., SSB vs CW vs DIGI) automatically restores the associated transmit audio pipeline state.
- SDR++ / GQRX: Provides quick audio pipeline dropdowns/presets in docking panels or integrates module configurations directly into profile management systems.
Suggested Behavior
- Profile Switcher Applet Integration (
ProfileApplet):- Add a combo box / dropdown menu within the
ProfileAppletwidget listing all configured AetherVoice presets alongside existing profile choices. - Changing the selection in the dropdown immediately applies that preset to AetherVoice without requiring the full AetherVoice window to be open.
- Add a combo box / dropdown menu within the
- Profile Association & Persistence:
- When creating or updating a profile (e.g., Transmit/Global Profile) via
ProfileApplet, capture the active AetherVoice preset ID/name into the profile state. - When loading or switching to a saved profile, automatically trigger the application of the stored AetherVoice preset.
- When creating or updating a profile (e.g., Transmit/Global Profile) via
Protocol Hints
- FlexLib API handling: Local AetherVoice client settings are stored in local application state (
SettingsManager/ nested JSON config key per Principle V). - Profile commands: Radios handle SmartSDR profiles via
profile global load "<name>"orprofile transmit load "<name>". Local client settings like AetherVoice state are tied to profile load signals inProfileManager/ProfileModel.
Acceptance Criteria
- AetherVoice preset dropdown is accessible directly within the Profile Switcher Applet (
ProfileApplet). - Selecting a preset from the Profile Switcher Applet applies the chosen AetherVoice processing settings instantly.
- Saving/updating a profile preserves the currently active AetherVoice preset.
- Loading a saved profile automatically restores its associated AetherVoice preset.
- Operating without AetherVoice or with no presets defined gracefully falls back without UI/profile errors.
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by tracing ProfileApplet and AppletPanel, then read ProfileManager and ProfileModel for profile load signals and SettingsManager for the local AetherVoice state. Verify how FlexLib profile commands are handled. Done means the dropdown applies presets, profile save/load preserves them, and missing AetherVoice or presets causes no UI or profile errors.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- cpp
- Domain
- desktop
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Active
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100