Slider Parameters in Final Cut Pro and Motion

Sliders provide the most basic form of parameter adjustment. Final Cut Pro and Motion differ substantially in how they treat sliders in the parameter inspector, and you should learn a few basic tricks to make sure that your plug-in is usable in both hosts.

It's all in the range

To put our discussion of sliders in context, let us look at a specific parameter inside the Dots plug-in (part of the FxFactory Pro pack). In version 1.0.6, the "Cell Size" parameter is defined as follows:

Cell size

The first thing you'll notice is a precision control. That lets you specify whether the user will be able to enter floating point (real) values such as 0.5, 0.123, etc. or simply integer values (1, 2, 3). At the time of this writing, Final Cut Pro 6 contains a bug which will make it ignore the precision setting: in Final Cut Pro 6, users can enter floating point values even for integer sliders.

The next thing you'll notice is that a slider parameter has two ranges: one is used for the user interface, the other is the absolute range. As the name implies, the absolute range indicates the minimum and maximum values that are legal for the parameter. Also important is the increment value, which tells the host that ever time the user adjusts the parameter it should attempt to adjust it by the given amount. The increment value is only a suggestion: the host may have reasons to increment the value differently, for instance if the space available for the user interface is limited.

Also important are the values displayed in gray next to the "Miminum value" and "Maximum value" text entry fields. Those values indicate the legal range as reported by the Quartz Composition. Your own values cannot fall outside the legal range advertised by the composition.

There are numerous differences between Motion and Final Cut Pro in how they handle the range and increment values. Motion even differs internally in how slider parameters are created in the parameter inspector and how they are created in the HUD (also known as the "Dashboard" window in Motion 2). For this reason, it is best to discuss each case separately.

Sliders in the Motion Parameter Inspector

When displaying the slider parameter in the parameter inspector, Motion will be very good about respecting your requests. It will use the values you enter as "Minumum value" and "Maximum value" as the range for the UI. Looking at the Cell Size parameter again, notice how the slider thumb lets you adjust the parameter between 4 and 200:

cellsize

Furthermore, the "Cell Size" parameter is specified to have an "Absolute maximum value" of 4000, which is way above the slider range. Because of this, Motion lets you enter values up to 4000 in the parameter value text field (it will also let you "scrub" the parameter up to 4000).


cellsize2

Finally, when Motion creates a parameter in the parameter inspector, it is quite good at respecting your request for a given parameter increment. In our example, it means that Motion will attempt to always increment the parameter value by 1.

Sliders in the Motion HUD

The Motion HUD (aka Dashboard in earlier versions) has a few substantial limitations when compared to the parameter inspector:

hud

When adding the same "Cell Size" parameter to the HUD, Motion will not let the user scrub or enter values outside the default range. The HUD is less obedient regarding the Increment value, and in many cases it will use integer increments even when the slider parameter is created with floating point precision.
The HUD was clearly designed for quick adjustments to the effect, and it is understandable that it does not provide the same fine-grained control as the parameter inspector.

Sliders in Final Cut Pro

Final Cut Pro happens to have the most severe limitations of either FxPlug hosts. Slider controls are not allowed to have separate ranges for the thumb control and for the text entry field.

To work around this limitation, FxFactory (starting with version 1.0.5) will create the slider using only the absolute range values:

fcp

Notice how the NI Dots plug-in's "Cell Size" parameter in Final Cut Pro has a slider range that goes from 4 to 4000. The advantage of this approach is that the user will be able to enter any legal value for the parameter. The disadvantage is that the slider's thumb will become far less useful for small tweaks. It is not hard to see that if a slider is supposed to go over a range of 4000 units, and there's only about 100 pixels of screen real estate for the thumb, the increments will be huge.

Conclusion

In general, you can ignore the peculiarities of each host for as long as the parameter linked to a slider has the same range for the UI and for legal values. In this simplest case, the slider will look and work roughly the same in the parameter inspector (and HUD) of either host.

But If you do need the parameter to have different ranges, keep in mind that the elegant features of Motion's parameter inspector are not available inside Final Cut Pro. Choose your Absolute range to maintain some degree of usability while letting the user access all the useful values for the effect.