Sounds.json

sounds.json is a file used by the sound system in resource packs and versions 1.7.2 and later. This file tells the sound system what sound files to play when a sound event is triggered by one or more in-game events. It is found at .minecraft\assets\virtual\legacy\sounds.json if 1.7.2 has been loaded. If 1.7.2 hasn't been loaded, it is found at .minecraft\assets\objects\fc\fce0bb3e14ade7b292a7c1d5fa785533d8106d82.

File Structure
This file is stored in JSON format, but is represented here using NBT (which is JSON-based).
 * The root Object.
 * A sound event. The name of this Object is the name of the sound event, which is usually patterned after its path (such as "random.break"). All valid sound events are listed in the table below.
 * : The category this sound event belongs to. Valid category names are "ambient", "weather", "player", "neutral", "hostile", "block", "record", "music", and "master". This String lets the sound system know what sound events belong to what category, so the volume can be adjusted based on what the sound options are set to for each category.
 * : true/false. Used only in resource packs. True if the sounds listed in sounds should replace the sounds listed in the default sounds.json for this sound event. False if the sounds listed should be added to the list of default sounds. May not exist. If it doesn't exist, the game acts as if it were present and set to "false". In versions prior to 1.7.6-pre1, this String is ignored due to a bug.
 * : The sound files this sound event uses. One of the listed sounds is randomly selected to play when this sound event is triggered. May not exist.
 * The path to a sound file from the "sounds" folder. Uses forward slashes instead of backslashes.
 * A sound file. This Object is used only when the sound requires additional Strings.
 * : The path to this sound file from the "sounds" folder. Uses forward slashes instead of backslashes. May also be the name of another sound event.
 * : The volume this sound will be played at. Value is a decimal between 0 and 1. May not exist. If it doesn't exist, the game acts as if it were present and set to 1.
 * : The chance that this sound will be selected to play when this sound event is triggered. Value is decimal between 0 and 1. May not exist. If it doesn't exist, the weight is calculated by using the formula (1-w)/n, where 'w' is the combined weight of all sounds that have this tag specified and 'n' is the number of sounds that don't have this tag specified.
 * : true/false. True if this sound should be streamed from its file. It is recommended that this is set to "true" for sounds that have a duration longer than a few seconds to avoid lag. Used for all sounds in the "music" and "record" categories (except Note Block sounds), as (almost) all the sounds that belong to those categories are over a minute long. May not exist. If it doesn't exist, the game acts as if it were present and set to "false".
 * : Only known value is "event". If name is the name of another sound event and this String has "event" as its value, all the sounds from that sound event will be added to this sound event's list. May not exist.

Sound Events
A sound event is linked to one or more in-game events. Two sound events may share the same sound file, but correspond to different in-game events and/or belong to different sound categories. A few valid sound events aren't included in sounds.json, while others don't have an in-game event associated with them. Any sound event that lacks an in-game event can be played only with. All valid sound events, the sounds they use, the category they belong to, and the in-game events they are triggered by are listed in the following table.

Block Sound Categories
The sound system divides all blocks into categories to determine which sounds play when a block is placed, destroyed, or walked on.