Jump to content

Component: Scale (DSP Operators): Difference between revisions

From Flowcode Help
m Text replacement - "style="background-color:#EAE1EA; color:#4B008D;"" to "class="mtx-class-propfolder""
m Text replacement - "style="background-color:#EAE1EA;"" to "class="mtx-class-propfolder""
 
Line 204: Line 204:
| colspan="2" | Sets the data direction flow of the component 
| colspan="2" | Sets the data direction flow of the component 
|-
|-
| width="10%" align="center" style="background-color:#EAE1EA;" | [[File:Fc9-conn-icon.png]]
| width="10%" align="center" class="mtx-class-propfolder" | [[File:Fc9-conn-icon.png]]
| width="90%" class="mtx-class-propfolder" | Scaling
| width="90%" class="mtx-class-propfolder" | Scaling
|-
|-

Latest revision as of 14:37, 13 July 2026

Author Matrix Ltd
Version 1.1
Category DSP Operators


Scale component

Allows the values in a single buffer to be scaled uniformly. Functions include: Multiply, Divide, LeftShift, RightShift, Float Multiply, Float Divide

Component Source Code

Please click here to download the component source project: FC_Comp_Source_DSP_Scale.fcfx

Please click here to view the component source code (Beta): FC_Comp_Source_DSP_Scale.fcfx

Detailed description

No detailed description exists yet for this component

Examples

Here is an example which demonstrates variable scaling based on an analogue input.

Scale

Here are the traces as seen on the data recorder window.


The RightShift macro is a very efficient means of performing a division but only for values which are a power of 2.

The LeftShift macro is a very efficient means of performing a multiplication but only for values which are a power of 2.


LeftShift(1) = Multiply by 2 / RightShift(1) = Divide by 2

LeftShift(2) = Multiply by 4 / RightShift(2) = Divide by 4

LeftShift(3) = Multiply by 8 / RightShift(3) = Divide by 8

LeftShift(4) = Multiply by 16 / RightShift(4) = Divide by 16








Macro reference

Calculate

Calculate
Performs the selected scaling on a value from the input buffer and passes to the output buffer. 
- VOID Return


CalculateArray

CalculateArray
Performs the selected scaling on an entire buffer. 
- VOID Return


SetScalerFloat

SetScalerFloat
Sets the Float scaler to be used when calling the calculate function. 
- FLOAT Scaler
 
- VOID Return


SetScalerInteger

SetScalerInteger
Sets the Integer scaler to be used when calling the calculate function. 
- INT Scaler
 
- VOID Return


Property reference

Properties
Connect To
DSP component with output buffer to collect our data from. 
Buffer Size
Number of individual elements the buffer can store, default 1. 
Buffer Type
Sets the buffer data type. 
Direction
Sets the data direction flow of the component 
Scaling
Scale Type
Defines the type of calculation performed on the input buffer to obtain the output value. A left shift is essentially an optimised multiply with the multiplier being the 2^scaler A right shift is essentially an optimised divide with the divider being the 2^scaler  
Rollover
Allow the output buffer to rollover. For example 128 * 2 = 256 which would equate to 0 using an 8-bit buffer with rollover enabled. With rollover disabled the output would be set to 255 which is the max representable value. 
Initial Integer Scaler