VST 3 Examples  VST 3.7
SDK for developing VST plug-in
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Macros Groups Pages
LogScale< T > Class Template Reference

LogScale class. More...

#include <logscale.h>

Public Member Functions

 LogScale (T srcMin, T srcMax, T destMin, T destMax, T inValue=0.5, T outValue=0.1)
 Constructor.
 
 LogScale ()
 Default Constructor with [0, 0.5, 1] => [0, 0.1, 1].
 
void changeScaling (T srcMin, T srcMax, T destMin, T destMax, T inValue, T outValue)
 Applies a new scale setting.
 
void scale (T *pIn, T *pOut, int32 nSamples)
 Computes the scale from pIn input buffer to pOut output buffer (pIn and POut could be the same buffer).
 
T scale (T input) const
 Computes for one given value the scale.
 
void invscale (T *pIn, T *pOut, int32 nSamples)
 Computes the inverse scale from pIn input buffer to pOut output buffer (pIn and POut could be the same buffer).
 
T invscale (T input) const
 Computes for one given value the inverse scale.
 
T invscaleCheck (T in) const
 Same than invscale with a check of the input.
 

Protected Member Functions

void setScaling (T srcMin, T srcMax, T destMin, T destMax, T inValue, T outValue)
 

Protected Attributes

T scaleFactor
 
T scaleFactorInv
 
T srcScale
 
T srcScaleInv
 
T srcMin
 
T expo
 
T expoInv
 
T destMin
 

Detailed Description

template<class T>
class Steinberg::Vst::LogScale< T >

LogScale class.

Scales [srcMin srcMax] to [destMin destMax]

Scaling curve is defined by given outValue for given inValue

Example for stretched lower range

LogScale myLogScale (0, 1, 0, 1, 0.5, 0.1);
means: input and output ranges are the same, but myLogScale.scale (0.5) is 0.1 ([0, 0.5, 1] => [0, 0.1, 1])

Example for compressed lower range

LogScale myLogScale (0, 1, 0, 1, 0.5, 0.9);
means: input and output ranges are the same, but myLogScale.scale (0.5) is 0.9 ([0, 0.5, 1] => [0, 0.9, 1])

Example for filter frequency range

LogScale myLogScale (0, 1, 80, 22000, 0.5, 2000);
means: input range is between 0 and 1 and output range is between 80 and 22000 and myLogScale.scale (0.5) is 2000 ([0, 0.5, 1] => [80, 2000, 22000])

Constructor & Destructor Documentation

LogScale ( T  srcMin,
T  srcMax,
T  destMin,
T  destMax,
T  inValue = 0.5,
T  outValue = 0.1 
)

Constructor.

LogScale ( )

Default Constructor with [0, 0.5, 1] => [0, 0.1, 1].

Member Function Documentation

void changeScaling ( T  srcMin,
T  srcMax,
T  destMin,
T  destMax,
T  inValue,
T  outValue 
)

Applies a new scale setting.

Note that destMin should be different than destMax! The same for srcMin and srcMax.

void scale ( T *  pIn,
T *  pOut,
int32  nSamples 
)

Computes the scale from pIn input buffer to pOut output buffer (pIn and POut could be the same buffer).

T scale ( T  input) const

Computes for one given value the scale.

void invscale ( T *  pIn,
T *  pOut,
int32  nSamples 
)

Computes the inverse scale from pIn input buffer to pOut output buffer (pIn and POut could be the same buffer).

T invscale ( T  input) const

Computes for one given value the inverse scale.

T invscaleCheck ( T  in) const

Same than invscale with a check of the input.

void setScaling ( T  srcMin,
T  srcMax,
T  destMin,
T  destMax,
T  inValue,
T  outValue 
)
protected

Member Data Documentation

T scaleFactor
protected
T scaleFactorInv
protected
T srcScale
protected
T srcScaleInv
protected
T srcMin
protected
T expo
protected
T expoInv
protected
T destMin
protected
Empty

Copyright ©2024 Steinberg Media Technologies GmbH. All Rights Reserved. This documentation is under this license.