{"name":"Arma 3: Sound: Sound Curves","title":"Arma 3: Sound: Sound Curves","type":"topic","url":"https://community.bistudio.com/wiki/Arma_3:_Sound:_Sound_Curves","revid":339200,"updated":"2023-04-27T16:20:25Z","aliases":["Arma 3 Sound: Sound Curves"],"markdown":"### Sound Curves\n\nSound curve is a simple set of points on 2D graph, which define the relationship between two variables (usually distance and volume).\n\nAll sound curves have to be configured in the base class **CfgSoundCurves** (or directly in curve parameter)\n\n> [!NOTE]\n> - In array of points `{ x, value }`, x values must be ascending.\n> - x values are rescaled to range, which means:\n>   using 0..1 values represent relative definition, while using meters represents absolute definition, but be sure that the highest x value is the same as range and the lowest x value is 0\n\n> [!IMPORTANT]\n> Some sound sources (from like `CfgAmmo`, e.g a mortar shell) beyond terrain view distance are not played.\n\n```cpp\nclass CfgSoundCurves\n{\n    class InverseSquare1Curve\n    {\n        points[] =\n        {\n            { 0.0, 0.9751 },\n            { 0.1, 0.6332 },\n            { 0.2, 0.4307 },\n            { 0.3, 0.3009 },\n            { 0.4, 0.2128 },\n            { 0.5, 0.1503 },\n            { 0.6, 0.1043 },\n            { 0.7, 0.0695 },\n            { 0.8, 0.0426 },\n            { 0.9, 0.0213 },\n            { 1.0, 0.0041 }\n        };\n    };\n};\n```\n\n**Example of configuration using curve class**\n\n```cpp\nclass CfgSoundSets\n{\n    // volumeCurve parameter using curve class\n    class Rifle_Shot1_SoundSet\n    {\n        soundShaders[] =\n        {\n            \"MX_closeShot_SoundShader\"\n        };\n        volumeCurve = InverseSquare1Curve;\n    };\n};\n```\n\n**Example of configuration using direct curve definition**\n\n```cpp\nclass CfgSoundSets\n{\n    //volumeCurve direct definition\n    class Rifle_Shot1_SoundSet\n    {\n        soundShaders[] =\n        {\n            \"MX_closeShot_SoundShader\"\n        };\n        volumeCurve[] =\n        {\n            { 0.0, 0.9751 },\n            { 0.1, 0.6332 },\n            { 0.2, 0.4307 },\n            { 0.3, 0.3009 },\n            { 0.4, 0.2128 },\n            { 0.5, 0.1503 },\n            { 0.6, 0.1043 },\n            { 0.7, 0.0695 },\n            { 0.8, 0.0426 },\n            { 0.9, 0.0213 },\n            { 1.0, 0.0041 }\n        };\n    };\n};\n```","sections":[{"heading":"Sound Curves","level":3,"markdown":"Sound curve is a simple set of points on 2D graph, which define the relationship between two variables (usually distance and volume).\n\nAll sound curves have to be configured in the base class **CfgSoundCurves** (or directly in curve parameter)\n\n> [!NOTE]\n> - In array of points `{ x, value }`, x values must be ascending.\n> - x values are rescaled to range, which means:\n>   using 0..1 values represent relative definition, while using meters represents absolute definition, but be sure that the highest x value is the same as range and the lowest x value is 0\n\n> [!IMPORTANT]\n> Some sound sources (from like `CfgAmmo`, e.g a mortar shell) beyond terrain view distance are not played.\n\n```cpp\nclass CfgSoundCurves\n{\n    class InverseSquare1Curve\n    {\n        points[] =\n        {\n            { 0.0, 0.9751 },\n            { 0.1, 0.6332 },\n            { 0.2, 0.4307 },\n            { 0.3, 0.3009 },\n            { 0.4, 0.2128 },\n            { 0.5, 0.1503 },\n            { 0.6, 0.1043 },\n            { 0.7, 0.0695 },\n            { 0.8, 0.0426 },\n            { 0.9, 0.0213 },\n            { 1.0, 0.0041 }\n        };\n    };\n};\n```\n\n**Example of configuration using curve class**\n\n```cpp\nclass CfgSoundSets\n{\n    // volumeCurve parameter using curve class\n    class Rifle_Shot1_SoundSet\n    {\n        soundShaders[] =\n        {\n            \"MX_closeShot_SoundShader\"\n        };\n        volumeCurve = InverseSquare1Curve;\n    };\n};\n```\n\n**Example of configuration using direct curve definition**\n\n```cpp\nclass CfgSoundSets\n{\n    //volumeCurve direct definition\n    class Rifle_Shot1_SoundSet\n    {\n        soundShaders[] =\n        {\n            \"MX_closeShot_SoundShader\"\n        };\n        volumeCurve[] =\n        {\n            { 0.0, 0.9751 },\n            { 0.1, 0.6332 },\n            { 0.2, 0.4307 },\n            { 0.3, 0.3009 },\n            { 0.4, 0.2128 },\n            { 0.5, 0.1503 },\n            { 0.6, 0.1043 },\n            { 0.7, 0.0695 },\n            { 0.8, 0.0426 },\n            { 0.9, 0.0213 },\n            { 1.0, 0.0041 }\n        };\n    };\n};\n```"}],"categories":["Arma 3: Sound"],"groups":["Configuration"]}