VST 3 Examples VST 3.7 SDK for developing VST plug-in

Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
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. More...
| LogScale ()
| Default Constructor with [0, 0.5, 1] => [0, 0.1, 1]. More...
void | changeScaling (T srcMin, T srcMax, T destMin, T destMax, T inValue, T outValue)
| Applies a new scale setting. More...
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). More...
T | scale (T input) const
| Computes for one given value the scale. More...
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). More...
T | invscale (T input) const
| Computes for one given value the inverse scale. More...
T | invscaleCheck (T in) const
| Same than invscale with a check of the input. More...

## 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() [1/2]

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

Constructor.

## ◆ LogScale() [2/2]

LogScale

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

## Member Function Documentation

## ◆ changeScaling()

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.

## ◆ scale() [1/2]

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).

## ◆ scale() [2/2]

T scale | ( | T | input | ) | const

Computes for one given value the scale.

## ◆ invscale() [1/2]

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).

## ◆ invscale() [2/2]

T invscale | ( | T | input | ) | const

Computes for one given value the inverse scale.

## ◆ invscaleCheck()

T invscaleCheck | ( | T | in | ) | const

Same than invscale with a check of the input.

## ◆ setScaling()

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

## Member Data Documentation

## ◆ scaleFactor

T scaleFactor
| protected

## ◆ scaleFactorInv

T scaleFactorInv
| protected

## ◆ srcScale

T srcScale
| protected

## ◆ srcScaleInv

T srcScaleInv
| protected

## ◆ srcMin

T srcMin
| protected

## ◆ expo

T expo
| protected

## ◆ expoInv

T expoInv
| protected

## ◆ destMin

T destMin
| protected

Empty

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