Skip to content

Add asymmetric CW filter shape control (independent left/right bandwidth) #1756

Description

@np3a17868-debug

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?

I did not find any existing issue describing asymmetric CW filter shaping (independent left/right bandwidth). No duplicate detected based on available issue data.

This is clearly a FEATURE REQUEST. Here’s a clean GitHub issue you can submit:

Add asymmetric CW filter shape control (independent left/right bandwidth)
What

Allow users to define asymmetric CW filter bandwidth by specifying independent widths on each side of the center frequency.

Instead of only selecting fixed symmetric filters (e.g., 500 Hz, 1 kHz), provide a way to define:

Left bandwidth (e.g., -100 Hz)
Right bandwidth (e.g., +3000 Hz)

Example:

[-100] Center [3000]

This results in a 3100 Hz total bandwidth, skewed to the right of the CW tone.

Why

CW operators often need non-symmetric filters for real-world operating:

Avoid strong adjacent signals on one side
Improve readability in pileups
Match personal pitch offset / sidetone preferences
Replicate behavior available in high-end DSP radios

Current symmetric filters are limiting, especially in crowded contest/DX conditions.

How Other Clients Do It
SmartSDR allows flexible filter positioning and passband shift (effectively asymmetric shaping via low/high cut controls).
GQRX and SDR++ expose low-cut / high-cut sliders, enabling asymmetric filters.
Many DSP radios implement this as “Lo Cut / Hi Cut” rather than fixed bandwidth.
Suggested Behavior
UI Interaction
User right-clicks a filter button (existing behavior)
In addition to bandwidth presets, show:
“Custom Filter…” option
Popup Dialog

Fields:

Low Cut (Hz) → negative or zero (e.g., -100)
High Cut (Hz) → positive (e.g., 3000)

Optional:

Visual mini-graph of passband
In UI (VfoWidget / RxApplet)

Display resulting filter as:

3.1 kHz (−0.1 / +3.0)
Allow quick adjustment via mouse wheel or drag handles (future enhancement)
Protocol Hints
FlexLib supports:
low and high filter parameters per slice

This feature likely maps directly to:

slice set low_cut
slice set high_cut
No protocol limitation expected
Acceptance Criteria
User can define independent low/high cut values
Filter updates immediately and affects RX audio
Values persist per slice/profile
UI reflects asymmetric filter clearly
No regression in existing preset filter behavior
Suggested Labels
enhancement
GUI
audio
spectrum

Metadata

Metadata

Assignees

No one assigned

    Labels

    CWCW keying, decode, and operationGUIUser interfaceenhancementImprovement to existing featuremaintainer-reviewRequires maintainer review before any action is takenpriority: lowLow priority

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions