Fruity Formula Controller

Fruity Formula Controller generates automation control data based on user-defined formulae. The Formula Controller will appear as an Formula ctrl - Out option in the Link dialog. It is just one of the many internal automation controllers available in FL Studio.

How to use:

  1. Load Fruity Formula Controller in a Mixer FX Slot. NOTE: Renaming the Formula Controller will help you find the correct automation source when more than one is used in a project.
  2. Enter a formula or select one from the plugin presets and make sure it compiles correctly.
  3. Link the target Synth, Effect or FL Studio interface control to the 'Formula ctrl - Out' option (or custom name used at step 1) from the Link Dialog > 'Link assignment' menu.
  4. Link other internal or external hardware controllers to variables A, B and C OR record A, B, C tweaks in real-time as the project is playing.


  • A/B/C - These knobs can be used as variables in your formulas. Enter them into your formula as a, b and c variables (see the list operators and functions below).
  • Formula - This is where you enter your formula. Press ENTER or Compile to compile to formula. If the formula is a valid mathematical expression, you will see a message 'Compiled ok' below the formula. If it's not, you will see a helpful error message. NOTE: The output of the formula must range between 0 to 1 in order to qualify as valid control data.
  • ? - Opens the Syntax, Objects and Functions table (see below).
  • Compile - Compiles the formula. Alternatively press ENTER when using the formula edit box.
  • Comments - Type comments here. If text exceeds the height of the window a scroll-bar will appear on the right side. Supports RTF text from WordPad. The formula Monitor graph also displays behind the text for your convenience.
  • Monitor - Shows the output from the formula in real-time. NOTE: Many formula will not display as a moving trace until you click Play on FL Studio's transport panel.

Syntax, Objects & Functions

The following syntax, functions and objects are supported by the Formula Controller:

Abbreviation Description Example
+ addition a+b
* multiplication a*b
- subtraction  a-b
/ division  a/b
^ power a^b
Abs absolute Abs(a)
ArcCos anticosine ArcCos(a)
ArcSin antisine ArcSin(a)
ArcTg antitangent ArcTg(a)
ATan2 arctangent angle/quadrant of a given number Atan2(a,b)
Case returns b if a=1, else returns c Case(a,b,c)
Cos cosine Cos(a)
CoSec cosecant CoSec(a)
Ctg cotangent Ctg(a)
Exp exponent Exp(a)
Frac fractional part Frac(a)
IfE returns 1 if a=b IfE(a,b)
IfG returns 1 if a>b IfG(a,b)
IfGE returns 1 if a>=b IfGE(a,b)
IfL returns 1 if a<b IfL(a,b)
IfLE returns 1 if a<=b IfLE(a,b)
Int integral part Int(a)
Inter returns 1 if a > b and a < c. If c < b, b & c values will be swapped Inter(a,b,c)
Internoswap as Inter but doesn't swap a & b Internoswap(a,b,c)
Ln logarithm base e Ln(a)
Log10 logarithm base 10 Log10(a)
Log2 logarithm base 2 Log2(a)
Max maximum Max(a,b)
Min minimum Min(a,b)
Neg negative Neg(a)
Pi pi Pi()
Rand random value (0..1) Rand()
Round round to nearest integer Round(a)
Sec secant Sec(a)
SeededRand controlled random value (0..1) SeededRand(Seed)
Sin sine Sin(a)
Sqrt square root Sqrt(a)
Sum sum of arguments Sum(a,b)
Tg tangent Tg(a)
Special (FL Studio-related)
a value of knob A a
b value of knob B b
c value of knob C c
SongTime song position, in quarters SongTime()
Time system time, in ms Time()
Tension Curves the line, positive or negtively depending on sign Tension(Value,Rate of change)
Date system date Date()
MouseX mouse cursor X position MouseX()
MouseY mouse cursor Y position MouseY()

Plugin Credits: Didier Dambrin, Andrew Tumashinov (RapidEvaluator)