Aetherial TX Gate / Aetherial AGC-G (RX)¶
The AetherSDR client implements a downward expander / noise gate that runs entirely on the client side, with no round-trip to the radio. Two independent copies are created by the AppletPanel:
- Aetherial TX Gate β processes the transmit audio chain.
- Aetherial AGC-G (RX) β processes the receive audio chain (AGC stands for Automatic Gain Control β Gate variant).
The gate silences background noise between words (TX) or below a desired RX-audio floor by attenuating audio below a threshold. The user interface shows the static transfer curve with a live input ball, a cyan hysteresis-band overlay between (Thresh β Return) and Thresh, a 40 dB gain-reduction meter, and five tuning knobs: Thresh, Ratio, Return, Release, Floor.
Knob colors (background ring, foreground arc, pointer, label, and value text) follow the theme defined in the color.knob.* namespace. The applet container is registered as applet/gate for theme lookup, enabling per-applet color overrides such as the amber knob foreground specific to the gate/expander applet.
Controls¶
| Label | Kind | Default | Valid Range | Setting Key | Behavior | Notes |
|---|---|---|---|---|---|---|
| Transfer curve | indicator | β | β | β | Compact-mode ClientGateCurveWidget. Plots the expander's static transfer curve and a live ball at the current input level. | |
| Gain-reduction bar | meter | β | 0 to 40 dB GR | β | Horizontal amber strip, right-filled. Scale maxes at 40 dB (gates can cut very deep); a tick at -15 dB marks the soft-expander default floor. | |
| Thresh | knob | -40.0 dB | -80.0 to 0.0 dB | ClientGateTxThresholdDb (TX side)ClientGateRxThresholdDb (RX side) |
Linear mapping. Level below which the gate starts attenuating. | Inline edit: click the value text, type a new number, press Enter or click elsewhere to commit. |
| Ratio | knob | 2.0 | 1.0 to 10.0 | ClientGateTxRatio (TX side)ClientGateRxRatio (RX side) |
Linear mapping. Higher ratios give a harder, more gate-like cut; lower ratios act as a soft downward expander. | Label 'X.X:1'. Inline edit: click the value text, type a new number, press Enter or click elsewhere to commit. |
| Return | knob | 2.0 dB | 0.0 to 20.0 dB | ClientGateTxReturnDb (TX side)ClientGateRxReturnDb (RX side) |
Linear mapping (n * 20). Sets the hysteresis deadband: the gate opens above Thresh and doesn't close again until the input drops below Thresh β Return, preventing rapid chatter near the threshold. | Label 'X.XX dB'. The curve widget draws a soft-cyan vertical band between (Thresh β Return) and Thresh to make the sticky zone visible. Inline edit: click the value text, type a new number, press Enter or click elsewhere to commit. |
| Release | knob | 100 ms | 5 to 2000 ms | ClientGateTxReleaseMs (TX side)ClientGateRxReleaseMs (RX side) |
Exponential mapping (5 * 400^n). Sets how quickly the gate closes after input falls below Thresh β Return. | Label 'X.X ms' below 100, 'X ms' above. Inline edit: click the value text, type a new number, press Enter or click elsewhere to commit. |
| Floor | knob | -15.0 dB | -80.0 to 0.0 dB | ClientGateTxFloorDb (TX side)ClientGateRxFloorDb (RX side) |
Linear mapping. Maximum attenuation the gate is allowed to apply. | Inline edit: click the value text, type a new number, press Enter or click elsewhere to commit. |
Indicators¶
| Label | States | Meaning |
|---|---|---|
| Input ball | below threshold, above threshold | Shows whether the gate is currently open or closed. |
| Hysteresis band | absent (Return = 0), soft-cyan vertical band | Visualises the Return deadband on the transfer-curve input axis β the gate's sticky zone between (Thresh β Return) and Thresh. |
| Gain-reduction strip | empty, amber fill, -15 dB tick | Depth of attenuation while the gate is closed. |
Transfer Curve Widget¶
The ClientGateCurveWidget displays the static transfer curve. In compact mode (used within the Applet Panel) it uses a smaller 7-pixel font for axis labels. In full-size mode (floating editor) it uses a 9-pixel font and draws -dB grid labels at the major tick positions. Labels are pre-rendered as QStaticText objects for improved painting performance.
The curve widget reads theme colors from the active theme. The curve uses the color.accent.warning palette entry (amber), and all background, grid, and axis label colors are sourced from the color.background.* and color.text.* theme namespaces.
The transfer curve widget uses a meter-smoothing timer to reduce visual flicker. The timer runs at a high-precision interval and repaints only when the smoothed value changes or when the smoothing engine indicates a repaint is needed, minimising CPU usage during steady-state operation.
Inline Value Editing¶
Each knob supports direct numeric entry. Click the displayed value text to open an inline editor. The editor appears as a small text field with a subtle dark background and cyan border when focused. Type the desired value (e.g., "12.5 ms" or "-40.0 dB") and press Enter to commit, or click elsewhere on the screen. The value is automatically clamped to the knob's valid range. Press Escape to cancel the edit and revert to the previous value.
When a knob is in edit mode, mouse wheel events are forwarded to the knob so you can still adjust it by scrolling if preferred.
Bypass the Gate from the Chain¶
The CHAIN widget controls whether the Gate stage is active in the audio processing chain. Bypassing it lets you disable the TX or RX gate entirely without changing any of its tuning knobs, so you can compare gated and ungated audio or temporarily silence the stage.
Before you start¶
- Open the Aetherial Audio (TXDSP) parent container in the Applet Panel. The "Aetherial TX Gate" (TX) and "Aetherial AGC-G (RX)" sub-containers are hidden until the Gate stage is enabled via the CHAIN widget.
- Know which side you want to bypass β TX (affects your transmitted audio) or RX (affects received audio).
Steps¶
- Locate the CHAIN widget for the side you want to change β TX or RX β inside the Aetherial Audio (TXDSP) parent container in the Applet Panel.
- Single-click the GATE stage in the CHAIN widget to toggle the gate bypass on that side.
- When the stage is enabled, the "Aetherial TX Gate" or "Aetherial AGC-G (RX)" sub-container becomes visible at full opacity and the gate is active in the chain.
- When the stage is bypassed, the sub-container dims to reduced opacity (approximately 55 % of full brightness) and no gain reduction is applied.
- To re-enable the stage, single-click the GATE stage in the CHAIN widget again. The sub-container returns to full opacity.
The bypass state is persisted as ClientGateTxEnabled (TX side) or ClientGateRxEnabled (RX side) and restored on the next application launch.
Tips¶
- The dim effect when bypassed matches the visual treatment applied to the EQ curve when its stage is bypassed, giving a consistent visual cue across DSP stages.
- Bypassing from the CHAIN widget does not reset any of the five tuning knobs β Thresh, Ratio, Return, Release, and Floor values are preserved.
- To open the floating gate editor for detailed tuning without bypassing, double-click the GATE stage in the CHAIN widget instead of single-clicking.