aethersdr / aethersdr/AetherSDR

Add a AetherVoice preset dropdown to the Profile Switcher

Open
#5,807 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

claude-active enhancement
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

  1. Profile Switcher Applet Integration (ProfileApplet):
    • Add a combo box / dropdown menu within the ProfileApplet widget 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.
  2. 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.

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>" or profile transmit load "<name>". Local client settings like AetherVoice state are tied to profile load signals in ProfileManager / 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

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.