VST 3 Examples: LogScale< T > Class Template Reference
Author: Steinberg

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

- Main Page
- Namespaces
- Classes
- Files

- Class List
- Class Index
- Class Hierarchy
- Class Members

All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Macros Groups Pages
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.
| 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.