MidiPlayerTK.MPTKEffectSoundFont

A SoundFont contains parameters to apply three kinds of effects: low-pass filter, reverb, chorus.
These parameters can be specifics for each instruments and even each voices.
Maestro MPTK effects are based on FluidSynth algo effects modules. Furthermore, to get more liberty from SoundFont, Maestro can increase or decrease the impact of effects (from the inspector or by script). To summarize: More...

Inherits ScriptableObject, and ScriptableObject.

Public Member Functions

void DefaultAll ()
 Set all Unity effects to default value as defined with Unity. More...
 
void DefaultChorus ()
 
void DefaultFilter ()
 
void DefaultReverb ()
 

Public Attributes

float ChorusAmplify
 
float FilterFreqOffset
 
float ReverbAmplify
 

Properties

float ChorusDepth [get, set]
 
float ChorusLevel [get, set]
 
float ChorusSpeed [get, set]
 
float ChorusWidth [get, set]
 
bool EnableChorus [get, set]
 Apply chorus effect as defined in the SoundFont.
This effect is processed with the fluidsynth algo independently on each voices but with a small decrease of performace. More...
 
bool EnableFilter [get, set]
 
bool EnableReverb [get, set]
 Apply reverberation effect as defined in the SoundFont.
This effect is processed with the fluidsynth algo independently on each voices but with a decrease of performace. More...
 
float FilterQModOffset [get, set]
 
float ReverbDamp [get, set]
 
float ReverbLevel [get, set]
 
float ReverbRoomSize [get, set]
 
float ReverbWidth [get, set]
 

Detailed Description

A SoundFont contains parameters to apply three kinds of effects: low-pass filter, reverb, chorus.
These parameters can be specifics for each instruments and even each voices.
Maestro MPTK effects are based on FluidSynth algo effects modules. Furthermore, to get more liberty from SoundFont, Maestro can increase or decrease the impact of effects (from the inspector or by script). To summarize:

  • Effects are applied individually to each voices, yet they are statically defined within the SoundFont.
  • Maestro parameters can be adjusted to increase or decrease the default values set in the SoundFont.
  • These adjustments will be applied across the entire prefab, but the effect will depend on the initial settings defined in the SoundFont preset.
  • Please note that these effects require additional CPU resources. See more detailed information here https://paxstellar.fr/sound-effects/
    Version
    Maestro Pro
    Note
  • Effects modules are exclusively available with the Maestro MPTK Pro version.
  • By default, these effects are disabled in Maestro.
  • To enable them, you’ll need to adjust the settings from the prefab inspector (Synth Parameters / SoundFont Effect) or by script!
  • For enhanced sound quality, it’s often beneficial to add a low-filter effect.
    // Find a MPTK Prefab, will works also for MidiStreamPlayer, MidiExternalPlayer ... all classes which inherit from MidiSynth.
    MidiFilePlayer fp = FindFirstObjectByType<MidiFilePlayer>();
    fp.MPTK_EffectSoundFont.EnableFilter = true;
    fp.MPTK_EffectSoundFont.FilterFreqOffset = 500;
    Play a MIDI file from the MidiDB. This class must be used with the prefab MidiFilePlayer....
    Definition: MidiFilePlayer.cs:69

Member Function Documentation

◆ DefaultAll()

void MidiPlayerTK.MPTKEffectSoundFont.DefaultAll ( )

Set all Unity effects to default value as defined with Unity.

midiFilePlayer.MPTK_EffectUnity.DefaultAll();

◆ DefaultChorus()

void MidiPlayerTK.MPTKEffectSoundFont.DefaultChorus ( )

Set Chrous SoundFont default value as defined in fluidsynth.
FLUID_CHORUS_DEFAULT_N 3
FLUID_CHORUS_DEFAULT_LEVEL 0.6 but set to 0.9 (thank John)
FLUID_CHORUS_DEFAULT_SPEED 0.2
FLUID_CHORUS_DEFAULT_DEPTH 4.25
FLUID_CHORUS_DEFAULT_WIDTH 10 (can be modified with MPTK)
FLUID_CHORUS_DEFAULT_TYPE FLUID_CHORUS_MOD_SINE
WIDTH 10

Version
Maestro Pro

◆ DefaultFilter()

void MidiPlayerTK.MPTKEffectSoundFont.DefaultFilter ( )

Set Filter SoundFont default value as defined in fluidsynth.

Version
Maestro Pro

◆ DefaultReverb()

void MidiPlayerTK.MPTKEffectSoundFont.DefaultReverb ( )

Set Reverb SoundFont default value as defined in fluidsynth.
FLUID_REVERB_DEFAULT_ROOMSIZE 0.5f
FLUID_REVERB_DEFAULT_DAMP 0.3f
FLUID_REVERB_DEFAULT_WIDTH 0.8f
FLUID_REVERB_DEFAULT_LEVEL 0.7f

Version
Maestro Pro

Member Data Documentation

◆ ChorusAmplify

float MidiPlayerTK.MPTKEffectSoundFont.ChorusAmplify

Chorus level is defined in the SoundFont in the range [0, 1].
This parameter is added to the the default SoundFont value (chorus_send).
Range must be [-1, 1]

Version
Maestro Pro

◆ FilterFreqOffset

float MidiPlayerTK.MPTKEffectSoundFont.FilterFreqOffset

Frequency cutoff is defined in the SoundFont for each notes.
This parameter increase or decrease the default SoundFont value. Range: -2000 to 3000 Hz

Version
Maestro Pro
midiFilePlayer.MPTK_EffectSoundFont.FilterFreqOffset = 10;

◆ ReverbAmplify

float MidiPlayerTK.MPTKEffectSoundFont.ReverbAmplify

Reverberation level is defined in the SoundFont in the range [0, 1].
This parameter is added to the the default SoundFont value (reverb_send).
Range must be [-1, 1]

Version
Maestro Pro

Property Documentation

◆ ChorusDepth

float MidiPlayerTK.MPTKEffectSoundFont.ChorusDepth
getset

Set the SoundFont chorus effect depth
Chorus depth [0, 256]

Version
Maestro Pro

◆ ChorusLevel

float MidiPlayerTK.MPTKEffectSoundFont.ChorusLevel
getset

Set the SoundFont chorus effect level [0, 10]
Default value set to 0.9 (was 2f, thank John)

Version
Maestro Pro

◆ ChorusSpeed

float MidiPlayerTK.MPTKEffectSoundFont.ChorusSpeed
getset

Set the SoundFont chorus effect speed
Chorus speed in Hz [0.1, 5]

Version
Maestro Pro

◆ ChorusWidth

float MidiPlayerTK.MPTKEffectSoundFont.ChorusWidth
getset

Set the SoundFont chorus effect width
The chorus unit process a monophonic input signal and produces stereo output controlled by WIDTH macro.
Width allows to get a gradually stereo effect from minimum (monophonic) to maximum stereo effect. [0, 10]

Version
Maestro Pro

◆ EnableChorus

bool MidiPlayerTK.MPTKEffectSoundFont.EnableChorus
getset

Apply chorus effect as defined in the SoundFont.
This effect is processed with the fluidsynth algo independently on each voices but with a small decrease of performace.

Version
Maestro Pro
midiFilePlayer.MPTK_EffectSoundFont.EnableChorus = true;

◆ EnableFilter

bool MidiPlayerTK.MPTKEffectSoundFont.EnableFilter
getset

Apply frequency low-pass filter as defined in the SoundFont.
This effect is processed with the fluidsynth algo independently on each voices but with a decrease of performace.

Version
Maestro Pro
midiFilePlayer.MPTK_EffectSoundFont.EnableFilter = true;

◆ EnableReverb

bool MidiPlayerTK.MPTKEffectSoundFont.EnableReverb
getset

Apply reverberation effect as defined in the SoundFont.
This effect is processed with the fluidsynth algo independently on each voices but with a decrease of performace.

Version
Maestro Pro
midiFilePlayer.MPTK_EffectSoundFont.EnableReverb = true;

◆ FilterQModOffset

float MidiPlayerTK.MPTKEffectSoundFont.FilterQModOffset
getset

Quality Factor is defined in the SoundFont for each notes.
This parameter increase or decrease the default SoundFont value. Range: -96 to 96.

Version
Maestro Pro

◆ ReverbDamp

float MidiPlayerTK.MPTKEffectSoundFont.ReverbDamp
getset

Set the SoundFont reverb effect damp [0,1].
Controls the reverb time frequency dependency. This controls the reverb time for the frequency sample rate/2
When 0, the reverb time for high frequencies is the same as for DC frequency.
When > 0, high frequencies have less reverb time than lower frequencies.

Version
Maestro Pro

◆ ReverbLevel

float MidiPlayerTK.MPTKEffectSoundFont.ReverbLevel
getset

Set the SoundFont reverb effect level.

Version
Maestro Pro

◆ ReverbRoomSize

float MidiPlayerTK.MPTKEffectSoundFont.ReverbRoomSize
getset

Set the SoundFont reverb effect room size. Controls concave reverb time between 0 (0.7 s) and 1 (12.5 s)

Version
Maestro Pro

◆ ReverbWidth

float MidiPlayerTK.MPTKEffectSoundFont.ReverbWidth
getset

Set the SoundFont reverb effect width [0,100].
Controls the left/right output separation.
When 0, there are no separation and the signal on left and right output is the same.This sounds like a monophonic signal.
When 100, the separation between left and right is maximum.

Version
Maestro Pro