Telestra App Note
Radio Voicing Effects and Auto-Level Control in ACE (#100)
This application note is applicable to ACE software version 4.30 or later.
This application note describes the following ACE radio features:
Voicing effects create a realistic radio sound through a variety of signal processing techniques. Available effects include audio gating, expansion, compression, limiting, frequency filtering, and distortion.
Radio Voicing Features
- Audio frequency filtering to model specific microphones/radios
- Compression and limiting accurately model the input circuitry of specific radios
- Clipping and distortion effects to replicate the "grainy" sound of a radio at full modulation
- Effects are accurately introduced into the sidetone path (optional)
Different levels of control are available when adding voicing effects to a simulated radio, ranging from simply turning on pre-canned effects in the Comm plan to implementing custom effects using ACE signal processing components.
Voice Effects in the Comm Plan
Default voice effects are enabled on particular waveforms in the Comm plan editor. This applies low-pass, high-pass, and distortion filters to the transmit audio of the radio. This default configuration is a good starting point and provides differentiation between intercoms and radios.
To enable the default voice effects:
- Open the Comm plan.
- Expand the waveform folder.
- Select the waveform to apply the voicing effects.
- Under the "Voice Effects" column select "ON" and press "OK".
- Install the layout for the change to take effect.
Note: For additional control and customization of voice effects, use the transmit effects loop as discussed below.
Voice Effects in the Transceiver
To enable and customize voice effects in the Transceiver component, adjust the following parameters:
- SideFxEnable: When true the radio voice effects are heard in the sidetone in addition to the transmit audio.
- TxFxLoopEnable*: Enables the effects loop on the transmit audio stream. Filtering components should be connected to the 'TxFxLoopSend' and 'TxFxLoopReturn' of the Transceiver. Any one on the network listening to the radio will hear the applied radio voice effects.
- TxFxLoopSend: Outputs the transmit audio stream to a user-defined chain of filtering components. This and 'TxFxLoopReturn' form the transmit effects loop.
- TxFxLoopReturn: Receives the modified transmit audio stream. This and 'TxFxLoopSend' form the transmit effects loop.
* The default voice effects enabled in the Comm plan can operate simultaneously with the effects loop, since they are wired in series in the Transceiver. The effects loop is applied after the default voice effects.
Transmit Effects Loop
The transmit effects loop is used to implement custom radio voicing effects. The loop can consist of any chain of audio processing components. Commonly, the chain will include low-pass, high-pass, and distortion components to achieve a radio sound. More dramatic effects can be achieved by adding noise, delay, amplitude modulation, and so on. This flexibility allows the effects loop to be used for creating new radio sounds, customizing radio noise effects, or even voice disguise.
If the effects should vary based on modulation type (AM, FM, etc.), the Comm plan net number used by the RCU can drive parameters in the effects components. Likewise, controls from the host such as the radio frequency could be used to adjust the effects sound. Try using a math table to map parameters like the net or frequency to effect controls like filter frequencies or gains. See the example below.
Transmit Effects Loop Example
The effects loop is implemented in the Transceiver under 'Local Audio' using 'TxFxLoopSend' and 'TxFxLoopReturn'.
Auto-Level Control (ALC) adaptively compensates for volume differences between radios on the network. Both radio receptions and transmissions can be level controlled. Choosing to enable the receive or transmit ALC depends on the source of the problematic transmissions. If transmissions from a system need to be more even in volume, use transmit ALC. On the other hand, use receive ALC if a system receives transmissions with uneven volumes from other systems whose gains cannot be adjusted.
Auto-Level Control Features
- Intelligently boosts or cuts audio level to reach a target volume
- Precise control through tunable gain attack and decay rates
- Adjustable background noise threshold
- Apply to the transmit or receive radio audio, or both
Threshold and target level controls allow the ALC to be configured for optimal volume for any given communications model. An inline peak limiter prevents sounds from breaking a chosen maximum volume. ALC is enabled either in the Radio Helper or in the Transceiver for any radio.
Auto-Level Control in the Transceiver
To enable and customize ALC in the Transceiver component, adjust the following parameters:
- TxALCEnable: When true ALC is applied to the transmit audio stream. The ALC gain is applied after any voice effects in the signal chain.
- RxALCEnable: Enables ALC on the receive audio stream, leveling transmissions from both local and remote radios.
Contact ASTi for instructions on adjusting the detailed ALC parameters of attack, decay, threshold level, and target level.
Auto-Level Control in the Radio Helper
When using the Radio Helper to automatically build radio models, ALC controls are available in the 'Advanced' tab. Under "Auto Level Control" check the enable boxes for receive or transmit. Click update and install the layout for the changes to take effect.
The default threshold is -66 decibels (dB) and the default level is -24 dB. In this configuration, signals whose root-mean-square (RMS) level is greater than -66 dB will be boosted to the target level of -24 dB. Signals with a level greater than -24 dB will be reduced in volume. Note that the smaller (more negative) the level is, the quieter the volume. The difference between the level and the threshold is effectively the maximum amount of boost to be applied to quiet signals (40 dB in this case).
If you are not using the Radio Helper, receive and transmit ALC is enabled in the Transceiver component using the 'RxALCEnable' and 'TxALCEnable' inputs.