TLevelParams

This structure holds the parameters for a channel. They're used both for final voice levels (voice levels+parent channel levels) and original voice levels. TLevelParams is used in TVoiceParams.

All of these parameters can go outside their defined range!

NOTE: In version 1.4 of the sdk, TLevelParams has been changed to have floating point fields for Pan and Pitch. The old version of TLevelParams has been renamed to TLevelParams_Old. Always use the new version for new plugins. For old projects, you can leave the FPF_NewVoiceParams out of the plugin flags (it's in the combo's by default).

Fields

Pan Panning (-1.0..1.0)
Vol Volume/velocity (0..1)
Pitch Pitch (in cents) (semitone=Pitch/100)
FCut Filter cutoff (0..1)
FRes Filter Q (0..1)

Declaration in FP_PlugClass (.pas / .h)

Delphi

TLevelParams=Record 
  Pan   :Single; 
  Vol :Single;
  Pitch :Single;
  FCut :Single; FRes :Single; End;
PLevelParams=^TLevelParams;

C++

typedef struct { 
    float Pan; 
float Vol;
    float Pitch;
    float FCut;
    float FRes;
} TLevelParams;
typedef TLevelParams *PLevelParams;

 

TVoiceParams

This is the type for the parameters for a voice. Normally, you'll only use FinalLevels. The final levels are the initial (voice) levels altered by the channel levels. But the initial levels are also available for, for example, note layering. In any case the initial levels are made to be checked once the voice is triggered, while the other ones are to be checked every time

Fields

InitLevels (TLevelParams)
FinalLevels (TLevelParams)

Declaration in FP_PlugClass (.pas / .h)

Delphi

TVoiceParams = Record 
  InitLevels,
  FinalLevels : TLevelParams;
End;
PVoiceParams = ^TVoiceParams;

C++

typedef struct { 
TLevelParams InitLevels;
    TLevelParams FinalLevels;
} TVoiceParams; typedef TVoiceParams *PVoiceParams;