Phone/CW Applet¶
The Phone/CW applet is a mode-aware transmit panel. It shows Phone (mic/processor/monitor) controls in voice modes and automatically switches to CW controls (delay, speed, sidetone, iambic, pitch) when the active slice is in a CW mode.
An ALC gauge appears on both the Phone and CW sub-panels, both driven by the software ALC meter. In v0.9.8 the four CW value labels (Delay, Speed, Sidetone Volume, Pitch) became QLineEdit widgets with QIntValidator — click any value and type a number directly. The single Sidetone toggle and volume slider drive both the radio's DAX-fed monitor and the client-side low-latency sidetone in lockstep — pitch and pan always follow the radio's cw_pitch and mon_pan_cw settings automatically.
Before you start¶
- AetherSDR must be connected to the radio. The Phone/CW applet shows controls only when a radio connection is active.
- The active slice must be in a CW mode for the CW sub-panel to display. The CW sub-panel replaces the Phone sub-panel automatically when CW is selected on the active slice.
Accessing the applet¶
- Locate the P/CW tray button in the right sidebar and confirm the applet is visible. If the applet is not visible, click the P/CW tray button to show it.
- Confirm the correct sub-panel is displayed:
- Phone controls display when the active slice is in a voice mode (LSB, USB, AM, FM, etc.).
- CW controls display when the active slice is in CW, CWU, or CWL mode. A Flex reports bare "CW"; an Icom and an HL2 spell the same mode CWU, and CWL is the reverse-side one. All three drive this applet.
What each control does¶
Phone sub-panel¶
| Control | Description | Valid range |
|---|---|---|
| Level gauge | Shows microphone input peak level in dBFS. Suppressed to -150 when met_in_rx is off and not transmitting. |
-40 to +10 dBFS (red > 0) |
| Compression gauge | 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. Driven via the new updateCompression() slot, independent of the mic level path. | -25 to 0 dB (reversed fill) |
| ALC (Phone panel) | Shows automatic level control reading from MeterModel::swAlcChanged (post-software-ALC SSB peak in dBFS). Fills right-to-left: empty at -20 dBFS, full at 0 dBFS. Starts at -20 dBFS on initialization (#2687). Hover over the gauge to see the exact dBFS reading with one decimal place (#3936). | -20 to 0 dBFS (red > -3). Rewired from HWALC (RCA voltage) to SW ALC meter in v26.5.1 (#2552). Mirrored by an identical gauge on the CW sub-panel. |
| Mic profile | Loads the named mic processing profile; calls TransmitModel::loadMicProfile. | Populated from radio micProfileList() |
| Mic source | Selects microphone input source; calls TransmitModel::setMicSelection. When the radio is modulated by AetherSDR (host modulation active), only PC is shown and the combo box is disabled. A tooltip explains the limitation. | MIC, BAL, LINE, ACC, PC (plus any from micInputList()). Disabled when host modulation is active. |
| Mic gain | Adjusts mic input level. For 'PC' source uses local PcMicGain persistence. | 0-100 |
| +ACC | Enables the accessory mic input mix; calls TransmitModel::setMicAcc. | On / Off |
| PROC | Toggles the speech processor; calls TransmitModel::setSpeechProcessorEnable. | On / Off |
| NOR/DX/DX+ | Three-position processor level; calls TransmitModel::setSpeechProcessorLevel. | 0 (NOR), 1 (DX), 2 (DX+) |
| DAX | Enables DAX as the TX audio source; calls TransmitModel::setDax. | On / Off |
| MON | Enables TX sidetone monitor; calls TransmitModel::setSbMonitor. | On / Off |
| Monitor volume | Sets sideband monitor volume; calls TransmitModel::setMonGainSb. | 0-100 |
CW sub-panel¶
| Control | Description | Valid range |
|---|---|---|
| Delay (CW) | Sets CW break-in delay; calls TransmitModel::setCwDelay. The adjacent QLineEdit accepts typed values (0-2000). The QLineEdit uses QIntValidator to restrict input to the valid range. | 0-2000 ms (step 10) |
| Speed (CW) | Sets CW keying speed; calls TransmitModel::setCwSpeed. The adjacent QLineEdit accepts typed values (5-100). | 5-100 WPM |
| Sidetone | Toggles CW sidetone monitor; calls TransmitModel::setCwSidetone. Also enables/disables the client-side low-latency CwSidetoneGenerator in lockstep. Both the radio's DAX-fed monitor and the local PortAudio sidetone are controlled by this single button. The sidetone now routes to the user-selected audio output instead of the default output (#2899). | On / Off |
| Sidetone volume | Sets CW monitor volume; calls TransmitModel::setMonGainCw. Also sets the local sidetone generator volume in lockstep. The adjacent QLineEdit accepts typed values (0-100). | 0-100 |
| L / R pan (CW) | Sets CW monitor stereo pan; calls TransmitModel::setMonPanCw and also applies constant-power pan to the local sidetone generator. Double-click recenters to 50 (centre). | 0-100 |
| Breakin | Toggles full break-in (QSK). With Breakin ON, key edges trigger TX and the break-in delay holds the relay before returning to receive. With Breakin OFF, keyed characters are queued and the operator engages PTT manually. | On / Off |
| Iambic | Toggles iambic paddle keyer; calls TransmitModel::setCwIambic. | On / Off |
| Pitch < / > | QLineEdit with < / > buttons (CwTriBtn). Type a value (100-6000) or click the buttons to step by 10 Hz. Calls TransmitModel::setCwPitch. | 100-6000 Hz (step 10) |
| ALC (CW panel) | Mirrors the Phone-panel ALC gauge; both read from MeterModel::swAlcChanged for consistent readings across voice and CW. Uses HGauge::setFillFromRight mode: empty at -20 dBFS, fills leftward toward 0 dBFS. Starts at -20 dBFS on initialization (#2687). Hover over the gauge to see the exact dBFS reading with one decimal place (#3936). | -20 to 0 dBFS (red > -3) |
Tips¶
- A delay of 0 ms with Breakin enabled gives full QSK operation. Increase the delay to reduce relay wear during fast sending.
- The Delay (CW) slider steps in 10 ms increments. For fine adjustment, click the slider track and use the arrow keys (if keyboard shortcuts are enabled under
View > Keyboard Shortcuts). - The value displays for Delay, Speed, Sidetone Volume, and Pitch are editable QLineEdit widgets. Click any value to type a precise number, then press Enter. The slider will move to match.
- Hover over any gauge (Level, Compression, or ALC) to see the exact numerical reading with one decimal place in a popup tooltip. This avoids needing to estimate the value from the bar alone.
- When the radio is being modulated by AetherSDR (host modulation active), the Mic source combo box automatically switches to and locks at PC. The other hardware input jacks are not available in this mode.
Notes for v26.8.4¶
- Mic source narrowed when radio input is not client-selectable: On radios whose transmit audio comes from this computer (host modulation), the Mic source combo box now shows only PC — the other entries (MIC, BAL, LINE, ACC) are removed rather than greyed out. A greyed-out entry still reads as "this radio has a mic input we could use," which is misleading when the radio is listening to its network port. The model is told the selection is PC so downstream tools (such as radiocert) don't warn that transmit audio capture is not running. A tooltip explains: "This radio takes transmit audio from this computer. Its own input selection is made on the radio." When the radio's input is client-selectable, the full list returns and the combo is re-enabled.
- The DAX button hides when not configurable: The DAX toggle is hidden on radios where DAX as a TX source cannot be configured from the client. When hidden, the button is forced to an unchecked state.
- Mic gain emit gated by source ownership: The mic gain value is emitted to the rest of the client only when the client actually owns the gain — that is, when RADE is active, or when the radio's mic input is client-selectable and the current source is PC. This prevents stale or misleading gain values from propagating outside the applet.
Notes for v26.7.4¶
- Mouse-over readout on gauges: All four gauges (Level, Compression, ALC Phone, ALC CW) now display an exact numerical value in a popup when you hover over them with the mouse. The Level and Compression gauges show values in dB with one decimal place. The ALC gauges show values in dBFS with one decimal place (#3936).
- Host modulation mic source locking: When the radio enters host modulation mode (modulated by AetherSDR), the Mic source combo box automatically clears all entries except PC, sets that entry as current, and disables the combo box. A tooltip explains that the other sources are FlexRadio hardware jacks and are unavailable. When host modulation ends, the combo box returns to its normal behavior and is re-enabled.
Notes for v26.6.1¶
- Theme-aware styling: All sliders in the Phone/CW applet now use an
applyPrimarySliderStyle()function that respects the active theme instead of a hardcoded stylesheet. The CwTriBtn toggle buttons and QLabel labels (Delay, Speed) also useThemeManager::applyStyleSheet()for theme-aware coloring. ThekSliderStyleconstant has been removed. The applet container usestheme::setContainer()for theme support. - Theme accent color: The CwTriBtn pressed state now uses the theme accent color (
{{color.accent}}) instead of a hardcoded#00b4d8.
Notes for v26.5.3¶
- CW sidetone audio output routing: The CW sidetone generated by the low-latency CwSidetoneGenerator now routes to the user-selected audio output instead of the default output device (#2899). When configuring audio output, the sidetone will follow the selected device.
- Compression gauge scaling corrected: The Compression gauge now expects a positive 0-25 dB compression amount from the MeterModel. The gauge face is reversed: 0 represents no compression, and -25 represents full compression. This corrects a previous issue where the gauge showed the wrong direction (#2692).
- Level meter receive gate applied consistently: The level meter suppression during receive is now handled through a dedicated
applyLevelMeterReceiveGate()method. This ensures the gauge is properly suppressed to -150 dBFS in all scenarios whenmet_in_rxis off and the radio is not transmitting, regardless of the mic source or RADE activation state. - ALC gauge initialization: Both ALC gauges (Phone and CW panels) now start at -20 dBFS on initial load, providing a clean empty state before any meter updates arrive (#2687).
Notes for v26.5.1¶
- SW ALC meter replacement: Both ALC gauges (Phone panel and CW panel) now read from MeterModel::swAlcChanged, which provides post-software-ALC SSB peak in dBFS. This replaces the previous HWALC (RCA voltage) path that produced meaningless readings. The new gauges use a -20 to 0 dBFS range with fill-from-right display and a red threshold at -3 dBFS.
- Dual-panel ALC mirroring: The Phone panel now has its own ALC gauge (m_alcGaugePhone) that mirrors the CW-panel ALC gauge (m_alcGaugeCw). Both gauges receive the same data from the single updateAl