#Hola and happy new year! \:)
1 messages · Page 1 of 1 (latest)
Thanks for pointing this out @zinc remnant , however I am referring to the VON system, where I don't see anything such as SetSignalValue for the audio processing. The only thing I see is SCR_VonDisplay storing it in a variable m_fQuality for UI purposes? (huh?)
Speaking about signal quality, is there any documentation for how BaseTransceiver.c calculates signal quality? It appears it's all hidden behind the engine
/*!
Event invoked when component receives audio data for playback
\param playerId Senders PlayerId
\param isSenderEditor true if sender is active editor.
\param receiver Receiving transceiver
\param frequency Frequency in kHz, on which the transmission came from. Can be different from the frequency which transceiver have set. This is very questionable and could be changed in future.
\param quality Value in range <0,1> describing quality of the transmission
*/
event protected void OnReceive(int playerId, bool isSenderEditor, BaseTransceiver receiver, int frequency, float quality);
/*!```
The only instances I see signal value being set for transmission quality is for pre-made HQ radio messages SetSignalValue("TransmissionQuality") and likewise for Task Notifications, which uses a hardcoded 0.5
The whole Signal handling is done in GameCode, which you called "hidden behind the engine". The automatically generated script definitions are not GameCode, it's not visible.
Thanks for the info 🙂
Thanks for the info @zinc remnant . Understand that the code itself is hardcoded for the engine, but would you mind sharing what that calculation is? I assume it is either a factor of the transceiver ranges and/or a param of the radio class.
Overall, I am looking to extend the max receivable range for transmissions, but at the cost of lower quality. If I know how the engine makes the calculation, I can then edit the transceiver ranges and modify the acp to manipulate the quality input (most likely do a logarithm mod to create a wider/flatter curve), without needing access to the code itself
@hard raptor while working on my enhanced radio mod yesterday, I was doing a lot of testing, and found that this is the calculations for quality:
quality = 1.0 - (distance² / range²)
So at 0m → quality = 1.0, at max range → quality = 0.0. It's quadratic falloff, not linear.
If you want longer range with lower quality, just increase Transmitting_Range. The formula naturally gives worse quality at distance. For a flatter curve, you'd need to use a custom signal in your .acp since the engine overwrites TransmissionQuality on every transmission.