{ "$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "properties": { "$schema": { "type": "string" }, "disable": { "type": "boolean", "description": "Disable all sounds.", "default": false }, "globalVolumeModifier": { "type": "number", "description": "Global volume modifier to increase or decrease the volume of all sounds. 1 is normal volume, 0.5 is half volume, 2 is double volume.", "default": 1 }, "items": { "type": "array", "items": { "type": "object", "properties": { "disable": { "type": "boolean", "description": "Disable this sound.", "default": false }, "regexes": { "type": "array", "items": { "type": "string", "description": "The lookup regex that triggers the sound. Example: 'git commit.*' => plays sound for 'git commit' or 'git commit -m \"message\"'." } }, "sounds": { "type": "array", "items": { "type": "object", "properties": { "audioFilePath": { "type": "string", "description": "The file path to the audio file. Path is relative to this config file.", "pattern": "^.+\\.(mp3|wav)$" }, "startOffset": { "type": "number", "description": "Optional start offset in milliseconds for the audio file. Defaults to 0.", "default": 0 }, "duration": { "type": "number", "description": "Optional duration in milliseconds. If specified, the sound will stop after this duration.", "default": 0 }, "disable": { "type": "boolean", "description": "Disable this random sound.", "default": false }, "chanceModifier": { "type": "number", "description": "If one item has a chanceModifer of 2 and another has 1, the first item will be twice as likely to be played.", "default": 1 }, "volumeModifier": { "type": "number", "description": "Volume modifier to increase or decrease the volume of the sound. 1 is normal volume, 0.5 is half volume, 2 is double volume. Multiplied by the globalVolumeModifier.", "default": 1 } }, "required": ["audioFilePath"], "additionalProperties": false }, "default": [], "additionalProperties": false } }, "required": ["regexes", "sounds"], "additionalProperties": false } } }, "required": ["items"], "additionalProperties": false }