Slider Parameters in Final Cut Pro and Motion
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:
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:
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).
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:
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:
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.
