Adding an Effect

This section will focus on how to add effects to the audio.

There are two set of audio effects supported by palace: ReverbEffect and ChorusEffect.

Reverb Effect

Reverb happens when a sound is reflected and then decay as the sound is absorbed by the objects in the medium. ReverbEffect facilitates such effect.

Creating a reverb effect can be as simple as:

with ReverbEffect() as effect:
    source.sends[0].effect = effect

Source.sends is a collection of send path signals, each of which contains effects and filter that describes it. Here we are only concerned about the former.

The above code would yield a generic reverb effect by default. There are several other presets that you can use, which are listed by reverb_preset_names. To use these preset, you can simply provide the preset effect name as the first parameter for the constructor. For example, to use PIPE_LARGE preset effect, you can initialize the effect like below:

with ReverbEffect('PIPE_LARGE') as effect:
    source.sends[0].effect = effect

These effects can be modified via their attributes.

effect.gain = 0.4
effect.diffusion = 0.65
late_reverb_pan = 0.2, 0.1, 0.3

The list of these attributes and their constraints can be found in the documentation of ReverbEffect.

Chorus Effect

ChorusEffect does not have preset effects like ReverbEffect, so you would have to initialize the effect attributes on creation.

There are five parameters to initialize the effect, respectively: waveform, phase, depth, feedback, and delay.

with ChorusEffect('sine', 20, 0.4, 0.5, 0.008) as effect:
    source.sends[0].effect = effect

For the constraints of these parameters, please refer to the documentation.