aethersdr / aethersdr/AetherSDR

Add a VST plugin host for the TX audio chain (ESSB / custom DX audio shaping)

Open
#662 4 comments 1 reaction 0 assignees View on GitHub

Nobody has claimed this yet.

audio enhancement GUI maintainer-review New Feature priority: low
Dominant language
C++
Stars
221
Forks
117
Avg merge
2d 7h
Merged PRs (30d)
299

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?

Why: Many hams find that tailoring thier TX audio to a high degree is a fun and functional part of the hobby. Whether for unique DX audio style profiles or ESSB type "help me sound like a broadcast station" audio, this is a growing niche within the ham radio community, but to do it has required either a load of outboard gear or running one or multiple additional applications to add VST plugins to the audio path.

Goal: Create the first SDR client (Edit: at least for Flex) with native plugin hosting — eliminates the VoiceMeeter/Carla/Ardour external routing workaround that SmartSDR, SDRuno, SDR Console, and HDSDR all require today

  • TX-only audio plugin host** embedded directly in AetherSDR's EQ panel — no external DAW or virtual audio routing required
  • Powered by Carla's embeddable library** (libcarla-host-plugin) for multi-format support through a single integration point
  • VST3 required from V1**, with LV2, CLAP, and LADSPA also available out of the box via Carla
  • Drag-and-drop chain reordering** — slot order defines signal cascade (e.g., gate → EQ → compressor), and order matters
  • Per-plugin bypass** plus a master ON/OFF toggle that fully removes plugins from the audio callback to reclaim CPU
  • Plugin chain saves into P/CW mic profiles** — switch profiles and your entire plugin configuration (plugins, parameters, order, bypass states) loads automatically
  • No pre-populated plugins** — the panel ships empty, user loads their own from standard Linux plugin paths
  • Entirely client-side** — no FlexLib protocol involvement, inserts between mic capture and VITA-49 encoding in AudioEngine::onTxAudioReady()

AetherSDR-VST-Host-Feature-Request.md

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 at AudioEngine::onTxAudioReady() and read the attached AetherSDR-VST-Host-Feature-Request.md to understand the proposed insertion point and requirements. The work is done when the EQ panel hosts the requested plugin formats with ordering, bypass controls, profile persistence, and a master toggle that removes processing from the audio callback.

Written by the indexing model from the issue text.

Assessment

Tech stack
cpp, linux
Domain
audio-video-rtc, desktop
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Active
Clarity
Clearly specified
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.