Skip to content

Volume Mapping

Marek Vajgl edited this page Jul 22, 2024 · 1 revision

Volume Multiplicating Transformation / Mapping

Note: This page explains the mapping procedure of the FS Volume into Windows volume. It expects a basic knowledge about mathematical functions.

As seen by tests, the real output volume of vPilot changes very slightly for the range of the output values between 20 % - 100 %. In when the output volume of the Windows-Process is adjusted in this range, the perceived volume changes only slightly.

Therefore, there is a non-linear mapping between FS Volume and Windows-Process Volume. This mapping can be adjust as a set of linear blocks between values creating a segments of function progress. This segments are defined as tuples of [input , output], where values are in percentages.

Eample of default mapping

The default definition in appsettings.json is:

...

"VolumeMapping": {
  "Map": [
    [ 0, 0 ],
    [ 20, 1 ],
    [ 40, 2 ],
    [ 60, 8 ],
    [ 80, 20 ],
    [ 90, 50 ],
    [ 100, 100 ]
  ],
  "MinimumThreshold": 0.55
},

...

This creates the following mapping:

Relation between input & output volume

X-axis represents input volume obtained from Flight Simulator. Y-axis represents output volume set to Windows Process. For example:

  • Volume 100% in FS means volume 100% in VPilot.
  • Volume 50% in FS means approximately volume 7% in VPilot.
  • Volume 25% in FS means aproximately volume 1.5% in VPilot.
  • Any volume below approx. 11% in FS means respective volume <0.55% in VPilot causing the VPilot volume is muted (see MinimumThreshold in the config file).

Disable mapping behavior

To disable mapping behavior, the volume mapping can be set as linear by updating the appsettings.json file as follows:

...

"VolumeMapping": {
  "Map": [
    [ 0, 0 ],
    [ 100, 100 ]
  ],
  "MinimumThreshold": 0.55
},

...

Adjusting the mapping

You can customize the mapping behavior by creating custom mapping segments. Remember, every segment definition contains two parts - input mapping value obtained from Flight Simulator and output mapping as the percentage of volume set to Windows Process. The mapping definitions are placed in VolumeMapping.Map key in the configuration file. The following rules holds:

  • When loaded all segments are ordered in the ascending order w.r.t. the input volume (the first value).
  • If there ale multiple definitions for the input values are set, the randomly chosen one is taken. Therefore, avoid multiple definitions for the same volume.
  • All volume values must be decimals in range 0 - 100.0.
  • You may customize minimal [0, ?] and maximal [100, ?] segments definitions. If they are not used, they are automatically added as the default ones: [0 , 0] at the beginning and [100 , 100] at the end.