Phone/CW overview¶
The Phone/CW applet is a mode-aware transmit panel that provides microphone, processor, and monitor controls in voice modes, and automatically switches to CW controls when the active slice is in a CW mode. Open it to adjust transmit audio or set keying parameters.
How it works¶
The applet is always present in the Applet Panel on the right sidebar. Toggle it using the P/CW tray button. It contains two sub-panels managed by a stacked layout:
- Phone sub-panel β visible when the active slice is in a voice mode (SSB, AM, FM, and similar).
- CW sub-panel β visible when the active slice is in a CW mode.
AetherSDR switches between sub-panels automatically as you change the slice mode. You do not switch them manually.
Phone sub-panel¶
| Control | Kind | What it does |
|---|---|---|
| Level | Meter | Shows microphone input peak level in dBFS. Suppressed to -150 when met_in_rx is off and not transmitting. Mouse over the gauge to see the exact peak level in dB with one decimal place (#3936). |
| Compression | Meter | Shows speech compression amount in dB. Gated on the radio's interlock TRANSMITTING state and speech processor enable: reads 0 dB during RX to prevent confusing stale readings from the TX chain. In v26.5.3, the meter range is reversed: 0 = no compression, -25 = full compression. Mouse over the gauge to see the exact compression amount in dB (#3936). |
| Mic profile | Combo box | Loads the named mic processing profile from the radio's profile list. |
| Mic source | Combo box | Selects the microphone input source. When the radio is modulated by AetherSDR (host modulation active), this combo box is disabled and shows only "PC" as the available source, with a tooltip explaining the limitation. |
| Mic gain | Slider | Adjusts mic input level. When source is PC, the value is kept client-side (stored as PcMicGain). |
| +ACC | Toggle button | Enables the accessory mic input mix. |
| PROC | Toggle button | Toggles the speech processor. |
| NOR/DX/DX+ | Slider | Sets the speech processor level. Three positions: NOR (0), DX (1), DX+ (2). |
| DAX | Toggle button | Enables DAX as the TX audio source. |
| MON | Toggle button | Enables the sideband TX monitor. |
| Monitor volume | Slider | Sets the sideband monitor volume. |
| ALC (Phone panel) | Meter | Shows automatic level control reading from MeterModel::swAlcChanged (post-software-ALC SSB peak in dBFS, range -20 to 0 dBFS, red above -3). Fills right-to-left: empty at -20 dBFS, full at 0 dBFS. Mouse over the gauge to see the exact level in dBFS with one decimal place (#3936). Rewired from HWALC (RCA voltage) to SW ALC meter in v26.5.1 (#2552). In v26.5.3, the gauge initializes to -20 dBFS on construction. Mirrored by an identical gauge on the CW sub-panel. |
CW sub-panel¶
| Control | Kind | What it does | Default | Range / Options | Setting key |
|---|---|---|---|---|---|
| ALC (CW panel) | Meter | Shows automatic level control reading from MeterModel::swAlcChanged (post-software-ALC SSB peak in dBFS, range -20 to 0 dBFS, red above -3). Fills right-to-left: empty at -20 dBFS, full at 0 dBFS. Mouse over the gauge to see the exact level in dBFS with one decimal place (#3936). In v26.5.3, the gauge initializes to -20 dBFS on construction. Mirrors the Phone-panel ALC gauge identically. | β | -20 to 0 dBFS | β |
| Delay | Slider | Sets CW break-in delay in milliseconds. The adjacent QLineEdit accepts typed values (0β2000). When you type a value and press Enter, the slider updates to match. The slider does not snap back unexpectedly because the value is cached immediately (v0.9.8, #2428). | 500 | 0β2000 ms (step 10) | β |
| Speed | Slider | Sets CW keying speed. The adjacent QLineEdit accepts typed values (5β100). When you type a value and press Enter, the slider updates to match. | 20 | 5β100 WPM | β |
| Breakin | Toggle button | Toggles full break-in (QSK). With Breakin ON, key edges trigger TX and the break-in delay holds the relay. With Breakin OFF, keys are queued and the operator engages PTT manually. The previous auto-PTT envelope that masked Breakin OFF and interfered with QSK hang time has been removed in v0.9.7. | β | On / Off | β |
| Iambic | Toggle button | Toggles the iambic paddle keyer. | β | On / Off | β |
| Pitch < / > | Text field | QLineEdit with < / > buttons (CwTriBtn). Type a value (100β6000) or click the buttons to step by 10 Hz. Steps the CW sidetone and decode pitch. | 600 Hz | 100β6000 Hz (step 10) | β |
| Sidetone | Toggle button | Toggles both the radio CW sidetone monitor (DAX-fed) and the client-side low-latency CW sidetone generator in lockstep. In v26.5.3, the sidetone routes to the user-selected audio output instead of the default output (#2899). On Windows, the sidetone stream starts immediately on connect (#2105). | β | On / Off | β |
| Sidetone volume | Slider | Sets both the radio CW monitor volume (mon_gain_cw) and the client-side sidetone generator volume in lockstep. The adjacent QLineEdit accepts typed values (0β100). When you type a value and press Enter, the slider updates to match. | 50 | 0β100 | β |
| L / R pan (CW) | Slider | CW monitor pan position. Applies constant-power pan to both the radio monitor and the local sidetone generator. Double-click to recenter. | 50 | 0β100 | β |
Inline value editing (v0.9.8)¶
In v0.9.8 the four CW value labels (Delay, Speed, Sidetone Volume, Pitch) are now QLineEdit widgets with QIntValidator. Click any value and type a number directly, then press Enter. The slider or control updates to match the typed value. This provides SmartSDR parity for direct numeric entry. The editable fields are:
- Delay (CW) β accepts 0β2000
- Speed (CW) β accepts 5β100
- Sidetone volume β accepts 0β100
- Pitch < / > β accepts 100β6000
When you are actively editing a field, the slider stops updating that field's text until you finish editing, preventing visual conflicts.
Sidetone behaviour (v0.9.1+)¶
The Sidetone toggle and Sidetone volume slider control both the radio's DAX-fed monitor and the client-side low-latency CW sidetone generator (CwSidetoneGenerator, approximately 10 ms latency) in lockstep. In v26.5.3, the local sidetone routes to the user-selected audio output instead of the default output (#2899). There is no separate local sidetone toggle or volume slider. Pitch and pan always follow the radio's cw_pitch and mon_pan_cw settings automatically β no manual override is required or available.
The local sidetone is suitable for paddle, straight-key, and CWX-generated transmissions where network round-trip latency would make the radio's DAX-fed monitor unusable at higher speeds.
The sidetone bus is shared with Quindar tones. Sidetone and Quindar tones are mutually exclusive at the mode level.
Break-in behaviour (v0.9.7)¶
The CW keyboard and MIDI paths now fully honor the radio's break_in setting. With Breakin ON (QSK), key edges trigger TX and the break-in delay holds the relay open between elements. With Breakin OFF, keyed characters are queued and you engage PTT manually before sending. An auto-PTT envelope present in earlier versions that masked the Breakin OFF state and eliminated QSK hang time has been removed.
Level meter receive gate (v26.5.3)¶
In v26.5.3, the Level gauge suppression logic during receive was refactored into the dedicated applyLevelMeterReceiveGate() method. When met_in_rx is off and the radio is not transmitting, the Level gauge is suppressed to -150 dBFS regardless of the mic source. This method is called whenever the transmit state or MOX state changes, and also when RADE mode activates or deactivates.
ALC gauge initialization (v26.5.3)¶
In v26.5.3, both the Phone panel and CW panel ALC gauges now initialize to -20 dBFS on construction using setValueImmediate(). This ensures the gauges start empty when the applet first appears, rather than showing an undefined state until the first meter update arrives from the radio.
Compression gauge update (v26.5.3)¶
In v26.5.3, the Compression gauge interpretation was corrected. The MeterModel exposes COMPPEAK as a positive 0..25 dB compression amount. The P/CW gauge face is reversed: 0 = no compression, -25 = full compression. The gauge displays the negative of the compression value, so the needle or bar moves downwards as compression increases.
RADE mode interaction (v0.9.7)¶
When RADE mode is active, the Mic gain slider acts as a client-side RADE gain control rather than sending a mic level command to the radio. The slider value is stored under the PcMicGain setting, shared with the PC mic source path. The radio's mic level setting is not overwritten while RADE is active.
The Level gauge continues to show signal level during RX when RADE is active, regardless of the met_in_rx setting. When RADE deactivates, the gauge reverts to normal suppression behavior and is reset to -150 dBFS immediately.
VOX and keyboard shortcut behaviour (v0.9.3)¶
When VOX is toggled via a keyboard shortcut, the Phone panel now refreshes immediately to reflect the new VOX state (#2084). In earlier versions the panel did not update until some other UI event occurred.
CWX panel (v0.9.7)¶
The embedded CWX panel scopes its F1-F12 shortcuts to panel visibility (#2464, #2469) so DVK panel F-key bindings and CWX hotkeys no longer fire simultaneously. CWX macros also release TX automatically when the queue drains (#2450, #2507).
Host modulation mode (v26.7.4)¶
When the radio is being modulated directly by AetherSDR (host modulation active), the Mic source combo box is disabled and shows only "PC" as the available input. A tooltip explains that the other sources are physical FlexRadio jacks that are not available in this mode. This prevents confusion by eliminating the choice of nonexistent input sources.
Gauge hover readouts (v26.7.4)¶
In v26.7.4, all four gauges in the Phone/CW applet now display numeric readouts when you hover the mouse cursor over them:
- Level gauge β shows the exact microphone peak level in dB with one decimal place (e.g., "-12.5 dB")
- Compression gauge β shows the exact compression amount in dB with one decimal place (e.g., "8.3 dB")
- ALC gauge (Phone panel) β shows the exact level in dBFS with one decimal place (e.g., "-5.2 dBFS")
- ALC gauge (CW panel) β shows the exact level in dBFS with one decimal place (e.g., "-5.2 dBFS")
This allows you to read the precise value of each gauge without having to estimate against the scale markings.
Theme support (v26.6.1)¶
In v26.6.1, the Phone/CW applet was updated to use the Theme Manager for all visual styling. All slider handles, labels, and push buttons now derive their colors from the active theme's color scheme rather than hardcoded hex values. The compact CwXButton used in the CWX toolbar now uses theme-aware colors for its background, border, and pressed state (accent color).
When you change the application theme via View > Theme, the Phone/CW applet updates