Struct Voice.Modulator

Namespace
SpessaSharp.Synthesizer.Engine.Voice
Assembly
SpessaSharp.dll
public readonly record struct Voice.Modulator : IEquatable<Voice.Modulator>
Implements
Inherited Members

Constructors

Modulator(Modulator, bool, bool, bool)

public Modulator(Modulator Base, bool IsEffectModulator, bool IsDefaultResonantModulator, bool IsModWheelModulator)

Parameters

Base Modulator

Indicates if the given modulator is chorus or reverb effects modulator. This is done to simulate BASSMIDI effects behavior:

  • defaults to 1000 transform amount rather than 200
  • values can be changed, but anything above 200 is 1000 (except for values above 1000, they are copied directly)
  • all values below are multiplied by 5 (200 * 5 = 1000)
  • still can be disabled if the soundfont has its own modulator curve
  • this fixes the very low amount of reverb by default and doesn't break soundfonts
IsEffectModulator bool
IsDefaultResonantModulator bool

The default resonant modulator does not affect the filter gain. Neither XG nor GS responded to cc #74 in that way.

IsModWheelModulator bool

If this is a modulation wheel modulator (for modulation depth range).

Properties

Base

Indicates if the given modulator is chorus or reverb effects modulator. This is done to simulate BASSMIDI effects behavior:

  • defaults to 1000 transform amount rather than 200
  • values can be changed, but anything above 200 is 1000 (except for values above 1000, they are copied directly)
  • all values below are multiplied by 5 (200 * 5 = 1000)
  • still can be disabled if the soundfont has its own modulator curve
  • this fixes the very low amount of reverb by default and doesn't break soundfonts
public Modulator Base { get; init; }

Property Value

Modulator

IsDefaultResonantModulator

The default resonant modulator does not affect the filter gain. Neither XG nor GS responded to cc #74 in that way.

public bool IsDefaultResonantModulator { get; init; }

Property Value

bool

IsEffectModulator

public bool IsEffectModulator { get; init; }

Property Value

bool

IsModWheelModulator

If this is a modulation wheel modulator (for modulation depth range).

public bool IsModWheelModulator { get; init; }

Property Value

bool

Methods

From(Modulator)

public static Voice.Modulator From(Modulator mod)

Parameters

mod Modulator

Returns

Voice.Modulator