sounds.ini (Episode)

From Moondust Wiki
Jump to navigation Jump to search

sounds.ini - Overriding rules to play custom sound effects while playing an episode or a level, or set-up the Sound FX to add a real-time stream effects applied per section on levels (for example, echoes in caves). It's a file named "sounds.ini", placed at the episode root directory to apply settings for the whole episode, or at level data directory to apply settings for the single level only.

Don't confuse with the configuration-package wide sounds.ini which has the different role.

Sound overriding

There are sections that can be used to override a sound effect with another.

This section is supported by the Moondust Engine, TheXTech, and the SMBX2.

Where the asterisk "*" in the section title, is the sound ID that you want to override by an episode/level-supplied sound file. For example, "sound-42".

[ sound-* ]
Parameter Allowed values Example value Description
name string name = "Jump" Title of sound effect.
file string file = "player-jump.ogg" File name of sound file, relative to the INI file itself. Possible to write relative paths like "subfolder/file1.ogg" or "../some/thing.ogg".

Sound FX

There are options which allows you to set up the real-time sound effects to make a richer atmosphere on your levels.

Notice Important note: This feature is exclusive for TheXTech engine and IS NOT AVAILABLE at Moondust Engine, SMBX2, or SMBX-38A.
Notice Note: World maps aren't supported yet.

FX entries

There are configs which defining a real-time effect settings that can be re-used many times.

Where the asterisk "*" in the section title, is the effect name. This is an unique name of the effect that gets referred to be assigned to a level section. For example, "fx-cave".

[ fx-* ]
Parameter Allowed values Example value Description
fx Enum fx = none Effect type. Allowed values:
  • none: No effects
  • echo: SPC-like echo effect
  • reverb: Common reverb implementation, based on the Freeverb module
spc-echo-off bool spc-echo-off = false Disable built-in echo of SPC files, making them sound plain. Use this option to avoid the messy sounding when echo effect gets applied twice.

Echo only: Settings related to the "echo" sound effect.
echo-on int (1/0) echo-on = 0 Enables the echo effect.
delay int (0...127) delay = 0 The maximum delay of the echo effect.
feedback int (0...127) feedback = 0 How long the echo will repeat.
main-volume-left int (0-127) main-volume-left = 96 The source volume level for left channel.
main-volume-right int (0-127) main-volume-right = 96 The source volume level for right channel.
echo-volume-left int (0-127) echo-volume-left = 96 The echo part volume level for left channel.
echo-volume-right int (0-127) echo-volume-right = 96 The echo part volume level for right channel.
fir-0 int (-127...127) fir-0 = 127 The value of the FIR filter 1st pass.
fir-1 int (-127...127) fir-1 = 127 The value of the FIR filter 2nd pass.
fir-2 int (-127...127) fir-2 = 127 The value of the FIR filter 3rd pass.
fir-3 int (-127...127) fir-3 = 127 The value of the FIR filter 4th pass.
fir-4 int (-127...127) fir-4 = 127 The value of the FIR filter 5th pass.
fir-5 int (-127...127) fir-5 = 127 The value of the FIR filter 6th pass.
fir-6 int (-127...127) fir-6 = 127 The value of the FIR filter 7th pass.
fir-7 int (-127...127) fir-7 = 127 The value of the FIR filter 8th pass.

Reverb only: Settings related to the "reverb" sound effect.
mode int 0, 1 mode = 0 Reverb mode: 0 - normal, 1 - freezing
room-size float 0.0...1.0 room-size = 0 The volume of room.
damping float 0.0...1.0 damping = 0 The time of damping.
wet-level float 0.0...1.0 wet-level = 0 The level of post-processed reverb part.
dry-level float 0.0...1.0 dry-level = 0 The level of not-procesed source reverb part.
width float 0.0...1.0 width = 0 Width of the room.

FX assignment

There are sections that being used to assign one of existing FX entries to the section of the level.

Where the asterisk "*" in the section title, is the 0-based Section Number. This is a section number being used to assign specific effect by name to the section. For example, "section-fx-0" to assign an effect to the first section, or "section-fx-20" to assign the effect to the 21'st section.

[ section-fx-* ]
Parameter Allowed values Example value Description
custom-fx string custom-fx = "cave" The name of effect entry to assign.

Links