๐ stewbeet.plugins.resource_pack.sounds
๐ Source Code: stewbeet/plugins/resource_pack/sounds/__init__.py ๐
๐ Source Code: stewbeet/core/utils/sounds.py ๐
๐ Dependencies
- โ
Required:
sounds_folderconfiguration in meta.stewbeet - ๐ Position: Should be able to run anywhere in the pipeline
(seebasic/beet.ymlfor an example) - ๐ Assets: Requires a sounds folder with audio files
๐ Overview
The sounds plugin automatically processes sound files and generates the sounds.json configuration for Minecraft resource packs.
It intelligently groups numbered sound variants and handles multithreading for optimal performance.
(This plugin requires the sounds_folder configuration to be set in meta.stewbeet.)
Features Showcase
Example of a sounds folder with .ogg files:

Files are copied to resource pack and sounds.json is created:

๐ฏ Purpose
- ๐ต Processes sound files from a designated sounds folder
- ๐ข Groups numbered sound variants (e.g., sound_01.ogg, sound_02.ogg)
- ๐ Generates sounds.json configuration automatically
- โก Utilizes multithreading for efficient file handling
- ๐ท๏ธ Creates appropriate subtitles for sound identification
โ๏ธ Configuration
๐ฏ Basic Example Configuration
pipeline: - ... - stewbeet.plugins.resource_pack.sounds - ... meta: stewbeet: sounds_folder: "assets/sounds" # Path to sounds directory
๐ Configuration Options
| Option | Type | Default | Description |
|---|---|---|---|
sounds_folder | string | Required | Path to the directory containing sound files. Must be set in meta.stewbeet.sounds_folder |
โจ Features
๐ต Sound File Processing
- ๐ Recursively scans the sounds folder for audio files
- โ
Only supports
.oggfile format for now - ๐งน Sanitizes filenames (removes spaces, converts to lowercase)
- ๐ Creates Sound objects with proper source paths and subtitles
๐ข Numbered Variant Grouping
Automatically groups sound variants with numbered suffixes:
dirt_bullet_impact_01.ogg๐ฏdirt_bullet_impact_02.ogg๐ฏdirt_bullet_impact_03.ogg๐ฏ
These become variants of the sound dirt_bullet_impact in sounds.json.
Supported numbering patterns:
name_01,name_02, etc. (with underscore)name1,name2, etc. (without underscore)
๐ Sounds.json Generation
- ๐ง Automatically creates or updates sounds.json thanks to the
add_soundfunction instewbeet.core.utils.sounds - ๐ท๏ธ Generates subtitles based on sound names
- ๐๏ธ Preserves sound properties (volume, pitch, weight, etc.)
- ๐ Uses project namespace for sound references
โก Multithreading Processing
- ๐ Processes multiple sound files simultaneously
- ๐ง Automatically optimizes worker count based on file quantity (max 32)
- โฑ๏ธ Includes execution time measurement for performance monitoring