Page 1 of 1

Is there a method to have type and range for a keyword?

Posted: Thu Nov 26, 2015 4:03 pm
by renaud
Hi,
I'm looking for a way to query range and type for each keyword of Modul8
e.g. :
• ctrl_layer_alpha type is float/decimal and its range is 0.-1.
• ctrl_layer_pixelFX_lumaType is a integer/enum and its range is 0-4

I search both in the manual and in the forum, but I didn't found something about that.

Anyone has a clue?

cheers,

renaud

Re: Is there a method to have type and range for a keyword?

Posted: Thu Nov 26, 2015 6:46 pm
by renaud
I know there is this method to query the value of alpha on layer 1
modul8.getValue ('ctrl_layer_alpha',1)

I tried something like
print modul8.getRange ('ctrl_layer_alpha',1)
or
print modul8.getType ('ctrl_layer_alpha',1)

but these methods doesn't exists.

Re: Is there a method to have type and range for a keyword?

Posted: Fri Nov 27, 2015 6:37 pm
by Invisible Ray
For acceptable range of values, I use the Keywords browser while writing scripts. I don't know if there is a method to find this info via code.

for type of value, you can do this:
myType = modul8.getValue ('ctrl_layer_alpha',1)
print type(myType)

Re: Is there a method to have type and range for a keyword?

Posted: Fri Nov 27, 2015 8:53 pm
by renaud
Thank you for your input invisible ray.
But the problem with this workaround is I query about the actual value and not the keyword type.
e.g. :
if alpha of layer 1 is 1, I get a <int> as answer
if alpha of layer 1 is 0.5, I get a <float> as answer

What I want is to have the type and range for each value, because I want to be able to remote theses value with osc message. For exemple, I need to know that alpha for layers is a float between 0 and 1, and ctrl_layer_pixelFX_lumaType is a int/enum with a range 0-4

If this method is not documented, maybe I need to send this request to the modul8 support?
I posted here to be sure I didn't miss a documented method

Re: Is there a method to have type and range for a keyword?

Posted: Sat Nov 28, 2015 6:32 am
by Invisible Ray
Sorry, I misunderstood your request.

So, you already know you can get the value of a particular parameter with modul8.getValue('ctrl_layer_alpha', layer)
What I showed you is that you can get the type of value, like integer or float, with a script. However, just getting the value will show you what type of value it is.

The only thing I don't know how to get via script is the range of possible values for each parameter. If modul8 support answers your question, please share it here.

Re: Is there a method to have type and range for a keyword?

Posted: Sun Nov 29, 2015 9:12 pm
by Invisible Ray
OK, I understand your question better.

In the example you show, the default Alpha value of a layer is 1, not 1.0, and it reports that it is an integer type rather than float. However, if you adjust the alpha, it becomes a decimal value between 0.0 & 1.0, and reports that it is a float. So the type of value changes when the value itself changes. I just investigated, and found this is true with a number of different parameters, like ctrl_layer_color_additive and ctrl_layer_color_modulate.

I can see how this could be confusing if you are trying to programmatically control parameters.

I haven't worked with OSC, but in my scripts I have found that if a control could have a float value, you can initialize it with a float value and it works as expected. In other words, if you query modul8.getValue ('ctrl_layer_alpha',1), and the value is 1, you can define it as a float in your script and it will work the same. Any control with range between 0 and 1 can be expressed as a float, and any control with numeric value greater than 1 is an integer.

The only controls that don't follow this, as far as I know, are the position controls, where the values are floats, but are almost always greater than 1 or less than -1.

I agree that a programmatic way to find the range of a control could help.

Re: Is there a method to have type and range for a keyword?

Posted: Mon Nov 30, 2015 4:47 pm
by sigmasix
If you open the modul8.app bundle you can find the keyword browser content under Contents->Resources->English.lproj->keywords.string

From there maybe you can parse this document to create a dictionnary with what you need and use it in your script.

Good luck

Re: Is there a method to have type and range for a keyword?

Posted: Tue Dec 01, 2015 5:08 pm
by renaud
Thank you sigmasix for the tip.

I just had an answer for the support about querying type/.
Here is the code :

Code: Select all

Print type (modul8.getValue ('ctrl_layer_pixelFX_lumaType', 0)). __name__
print type(modul8.getValue('ctrl_layer_alpha', 0)). __name__
print type(modul8.getValue('ctrl_layer_hidden', 0)). __name__


I'm waiting for a confirmation that sadly there is no method for 'range'.

Re: Is there a method to have type and range for a keyword?

Posted: Tue Dec 01, 2015 5:41 pm
by Invisible Ray
I took the advice of sigmasix and opened the keywords.string file.

I copied the contents, and reformatted it into keyword | min value | max value

Obviously, some of the keywords, like 'info_media_names' don't have a range of pre-defined values. Also, there are no ranges given for most of the particle-emitter keywords. I just removed all of the keywords that didn't have easily defined ranges in the descriptions.

ctrl_layer_activated min: False max: True
ctrl_layer_alpha min: 0.0 max: 1.0
ctrl_layer_auto_colorASpeed min: 0.0 max: 1.0
ctrl_layer_auto_colorAdditiveOn min: False max: True
ctrl_layer_auto_colorBSpeed min: 0.0 max: 1.0
ctrl_layer_auto_colorCurve min: 0 max: 9
ctrl_layer_auto_colorGSpeed min: 0.0 max: 1.0
ctrl_layer_auto_colorModulateOn min: False max: True
ctrl_layer_auto_colorOn min: False max: True
ctrl_layer_auto_colorRSpeed min: 0.0 max: 1.0
ctrl_layer_auto_moveCurve min: 0 max: 9
ctrl_layer_auto_moveOn min: False max: True
ctrl_layer_auto_moveSize min: 0.0 max: 1.0
ctrl_layer_auto_moveSize_factor min: 0.0 max: 8.0
ctrl_layer_auto_moveSpeed min: 0.0 max: 1.0
ctrl_layer_auto_moveStrob min: 0.0 max: 1.0
ctrl_layer_auto_moveXY min: 0 max: 2
ctrl_layer_auto_rotateOn min: False max: True
ctrl_layer_auto_rotateStrob min: 0.0 max: 1.0
ctrl_layer_auto_rotateXDirection min: False max: True
ctrl_layer_auto_rotateXSpeed min: 0.0 max: 1.0
ctrl_layer_auto_rotateYDirection min: False max: True
ctrl_layer_auto_rotateYSpeed min: 0.0 max: 1.0
ctrl_layer_auto_rotateZDirection min: False max: True
ctrl_layer_auto_rotateZSpeed min: 0.0 max: 1.0
ctrl_layer_auto_scaleCurve min: 0 max: 9
ctrl_layer_auto_scaleOn min: False max: True
ctrl_layer_auto_scaleSize min: 0.0 max: 1.0
ctrl_layer_auto_scaleSpeed min: 0.0 max: 1.0
ctrl_layer_auto_scaleStrob min: 0.0 max: 1.0
ctrl_layer_auto_scaleXY min: 0 max: 4
ctrl_layer_blendMode min: 0 max: 5
ctrl_layer_color_additiveB min: 0.0 max: 1.0
ctrl_layer_color_additiveG min: 0.0 max: 1.0
ctrl_layer_color_additiveR min: 0.0 max: 1.0
ctrl_layer_color_modulateB min: 0.0 max: 1.0
ctrl_layer_color_modulateG min: 0.0 max: 1.0
ctrl_layer_color_modulateR min: 0.0 max: 1.0
ctrl_layer_fieldOfView min: 0 max: 1.0
ctrl_layer_focused min: False max: True
ctrl_layer_hidden min: False max: True
ctrl_layer_media min: 0 max: 135
ctrl_layer_mediaSet min: 0 max: 8
ctrl_layer_movie_loopMode min: 0.0 max: 2.0
ctrl_layer_movie_playDirection min: 0.0 max: 1.0
ctrl_layer_movie_positionIn min: 0.0 max: 1.0
ctrl_layer_movie_positionOut min: 0.0 max: 1.0
ctrl_layer_movie_shuttle1 min: 0.0 max: 1.0
ctrl_layer_movie_shuttle2 min: 0.0 max: 1.0
ctrl_layer_movie_speedFactor min: 0.0 max: 1.0
ctrl_layer_pixelFX_blurLevel min: 0.0 max: 1.0
ctrl_layer_pixelFX_blurOn min: False max: True
ctrl_layer_pixelFX_blurType min: 0 max: 1
ctrl_layer_pixelFX_contrastBoost min: False max: True
ctrl_layer_pixelFX_contrastInverse min: False max: True
ctrl_layer_pixelFX_contrastLevel min: 0.0 max: 1.0
ctrl_layer_pixelFX_contrastOn min: False max: True
ctrl_layer_pixelFX_lightnessLevel min: 0.0 max: 1.0
ctrl_layer_pixelFX_lightnessOn min: False max: True
ctrl_layer_pixelFX_lightnessType min: 0 max: 1
ctrl_layer_pixelFX_lumaOn min: False max: True
ctrl_layer_pixelFX_lumaPreserveAlpha min: False max: True
ctrl_layer_pixelFX_lumaType min: 0 max: 4
ctrl_layer_pixelFX_noiseAlpha min: False max: True
ctrl_layer_pixelFX_noiseColored min: False max: True
ctrl_layer_pixelFX_noiseLevel min: 0.0 max: 1.0
ctrl_layer_pixelFX_noiseOn min: False max: True
ctrl_layer_pixelFX_noiseRGBOn min: False max: True
ctrl_layer_pixelFX_saturationBoost min: False max: True
ctrl_layer_pixelFX_saturationInverse min: False max: True
ctrl_layer_pixelFX_saturationLevel min: 0.0 max: 1.0
ctrl_layer_pixelFX_saturationOn min: False max: True
ctrl_layer_position_x min: -infinite max: +infinite
ctrl_layer_position_y min: -infinite max: +infinite
ctrl_layer_record_eraseOn min: False max: True
ctrl_layer_record_stopPlayRec min: False max: True
ctrl_layer_rotation_x min: 0.0 max: 1.0
ctrl_layer_rotation_y min: 0.0 max: 1.0
ctrl_layer_rotation_z min: 0.0 max: 1.0
ctrl_layer_scale_factorUniform min: 1.0 max: 20.0
ctrl_layer_scale_factorXYZ min: 1.0 max: 99.0
ctrl_layer_scale_normalizeOn min: False max: True
ctrl_layer_scale_uniform min: 0.0 max: 1.0
ctrl_layer_scale_x min: 0.0 max: 1.0
ctrl_layer_scale_y min: 0.0 max: 1.0
ctrl_layer_scale_z min: 0.0 max: 1.0
ctrl_layer_soundOutBalance min: 0.0 max: 1.0
ctrl_layer_soundOutLevel min: 0.0 max: 1.0
ctrl_layer_soundOutLinkToAlphaAndCrossfader min: False max: True
ctrl_layer_stackPosition min: 1 max: 10
ctrl_layer_transformer_matrix_deepSpace min: 0.0 max: 1.0
ctrl_layer_transformer_matrix_extrusionLevel min: 0.0 max: 1.0
ctrl_layer_transformer_matrix_flipXeYe min: False max: True
ctrl_layer_transformer_matrix_flipXeYu min: False max: True
ctrl_layer_transformer_matrix_flipXuYe min: False max: True
ctrl_layer_transformer_matrix_flipXuYu min: False max: True
ctrl_layer_transformer_matrix_planarSpace min: 0.0 max: 1.0
ctrl_layer_transformer_matrix_resize min: False max: True
ctrl_layer_transformer_matrix_xValue min: 1.0 max: 10.0
ctrl_layer_transformer_matrix_yValue min: 1.0 max: 10.0
ctrl_layer_transformer_matrix_zValue min: 1.0 max: 10.0
ctrl_layer_transformer_on min: False max: True
ctrl_layer_transformer_particle_alphaFadeIn min: False max: True
ctrl_layer_transformer_particle_alphaFadeOut min: False max: True
ctrl_layer_transformer_particle_applyLocalAngleOn min: False max: True
ctrl_layer_transformer_particle_scaleFadeIn min: False max: True
ctrl_layer_transformer_particle_scaleFadeOut min: False max: True
ctrl_layer_transformer_patch_colorOn min: False max: True
ctrl_layer_transformer_patch_dmapingAlphaOn min: False max: True
ctrl_layer_transformer_patch_fillMode min: 0 max: 2
ctrl_layer_transformer_patch_shapeType min: 0 max: 3
ctrl_layer_transformer_patch_soundInputVdelayOn min: False max: True
ctrl_layer_transformer_patch_subdivX min: 1.0 max: 200.0
ctrl_layer_transformer_patch_subdivY min: 1.0 max: 200.0
ctrl_layer_transformer_patch_thickness min: 0.0 max: 20
ctrl_layer_transformer_type min: 0 max: 2
ctrl_layer_transition_durationDelta min: 0 max: 2
ctrl_layer_transition_type min: 0.0 max: 1.0
ctrl_layerStack_focusPosition min: 1 max: 10
ctrl_master_TimeRecPosition min: 1 max: 10
ctrl_master_addColorB min: 1 max: 10
ctrl_master_addColorG min: 1 max: 10
ctrl_master_addColorR min: 1 max: 10
ctrl_master_alpha min: 1 max: 10
ctrl_master_backgroundColorB min: 1 max: 10
ctrl_master_backgroundColorG min: 1 max: 10
ctrl_master_backgroundColorR min: 1 max: 10
ctrl_master_crossfader_alphaGroupAOn min: 1 max: 10
ctrl_master_crossfader_alphaGroupBOn min: 1 max: 10
ctrl_master_crossfader_scaleGroupAOn min: 1 max: 10
ctrl_master_crossfader_scaleGroupBOn min: 1 max: 10
ctrl_master_crossfader_slider min: 1 max: 10
ctrl_master_flash min: False max: True
ctrl_master_invColor min: False max: True
ctrl_master_invColorB min: 1 max: 10
ctrl_master_invColorG min: 1 max: 10
ctrl_master_invColorR min: 1 max: 10
ctrl_master_layerSetGroupA min: 0 max: 7
ctrl_master_layerSetGroupB min: 0 max: 7
ctrl_master_scale min: 1 max: 10
ctrl_master_soundLevelCapture min: 1 max: 10
ctrl_master_soundOutLevel min: 1 max: 10
ctrl_master_speed min: 1 max: 10
ctrl_master_still min: False max: True
ctrl_master_traceLevel min: 0.0 max: 1.0
ctrl_ui_minimalizeMainWindow min: False max: True
ctrl_ui_previewWindowMode min: 0 max: 6
direct_globalMask_color_additiveB min: 0.0 max: 1.0
direct_globalMask_color_additiveG min: 0.0 max: 1.0
direct_globalMask_color_additiveR min: 0.0 max: 1.0
direct_globalMask_color_modulateA min: 0.0 max: 1.0
direct_globalMask_color_modulateB min: 0.0 max: 1.0
direct_globalMask_color_modulateG min: 0.0 max: 1.0
direct_globalMask_color_modulateR min: 0.0 max: 1.0
direct_globalMask_media min: 0 max: 135
direct_globalMask_movie_speedFactor min: 0.0 max: 1.0
direct_globalMask_position_x min: -infinite max: +infinite
direct_globalMask_movie_speedFactor min: 0.0 max: 1.0
direct_globalMask_position_y min: -infinite max: +infinite
direct_globalMask_scale_uniform min: 0.0 max: 1.0
direct_globalMask_scale_x min: 0.0 max: 1.0
direct_globalMask_scale_y min: 0.0 max: 1.0
direct_globalMask_show_inOutput min: 0 max: 1
direct_globalMask_show_inPreview min: 0 max: 1
direct_globalMask_surfaceBlend_Dest Possible values: ZERO, ONE, DST_COLOR, SRC_COLOR, INV_DST_COLOR, INV_SRC_COLOR, SRC_ALPHA, INV_SRC_ALPHA, DST_ALPHA, INV_DST_ALPHA, SRC_ALPHA_SATURATE
direct_globalMask_surfaceBlend_Src Possible values: ZERO, ONE, DST_COLOR, SRC_COLOR, INV_DST_COLOR, INV_SRC_COLOR, SRC_ALPHA, INV_SRC_ALPHA, DST_ALPHA, INV_DST_ALPHA, SRC_ALPHA_SATURATE
direct_layer_color_additiveB min: 0.0 max: 1.0
direct_layer_color_additiveG min: 0.0 max: 1.0
direct_layer_color_additiveR min: 0.0 max: 1.0
direct_layer_color_modulateA min: 0.0 max: 1.0
direct_layer_color_modulateB min: 0.0 max: 1.0
direct_layer_color_modulateG min: 0.0 max: 1.0
direct_layer_color_modulateR min: 0.0 max: 1.0
direct_layer_localPosition_x min: -infinite max: +infinite
direct_layer_localPosition_y min: -infinite max: +infinite
direct_layer_localPosition_z min: -infinite max: +infinite
direct_layer_media_timePosition min: 0 max: 1
direct_layer_position_x min: -infinite max: +infinite
direct_layer_position_y min: -infinite max: +infinite
direct_layer_position_z min: -infinite max: +infinite
direct_layer_rotation_x min: 0.0 max: 1.0
direct_layer_rotation_y min: 0.0 max: 1.0
direct_layer_rotation_z min: 0.0 max: 1.0
direct_layer_scale_x min: 0.0 max: infinite
direct_layer_scale_y min: 0.0 max: infinite
direct_layer_scale_z min: 0.0 max: infinite
direct_layer_transformer_particle_localColor min: 0.0 max: 1
direct_layer_transformer_particle_localColor_aditiveB min: 0.0 max: 1
direct_layer_transformer_particle_localColor_aditiveG min: 0.0 max: 1
direct_layer_transformer_particle_localColor_aditiveR min: 0.0 max: 1
direct_layer_transformer_particle_localColor_modulateA min: 0.0 max: 1
direct_layer_transformer_particle_localColor_modulateB min: 0.0 max: 1
direct_layer_transformer_particle_localColor_modulateG min: 0.0 max: 1
direct_layer_transformer_particle_localColor_modulateR min: 0.0 max: 1
direct_preview_position_z min: 0.0 max: 50
direct_soundInputLevel min: 0.0 max: 1.0

cheers
Eric Krauter
(Invisible Ray)

Re: Is there a method to have type and range for a keyword?

Posted: Wed Dec 02, 2015 3:57 pm
by sigmasix
Wow, nice work!

It should definitely be used in an update of modul8!
Did you try to format it in a dictionnary and use it in your code?

Re: Is there a method to have type and range for a keyword?

Posted: Wed Dec 02, 2015 8:08 pm
by renaud
Nice !! Thank you Eric !!

Re: Is there a method to have type and range for a keyword?

Posted: Wed Dec 02, 2015 8:12 pm
by Invisible Ray
Haven't made it into a dictionary yet, but it would be an easy task with grep. I'll try to do that over the next few days.

Unless you have a better suggestion, I'll just do it like this:
keyMinMax = {'ctrl_layer_activated' : [False,True], 'ctrl_layer_alpha' : [0.0,1.0]…}

One question; do booleans have to be treated as strings with quotes around them in a list?

Re: Is there a method to have type and range for a keyword?

Posted: Thu Dec 03, 2015 4:08 pm
by sigmasix
That's how I would have done it.

then

Code: Select all

print type(keyMinMax['ctrl_layer_activated'][0])


or

Code: Select all

if type(keyMinMax['ctrl_layer_activated'][0]) is bool:
   print "yeah"


and you have everything you need

Re: Is there a method to have type and range for a keyword?

Posted: Tue Dec 08, 2015 2:18 am
by Invisible Ray
Here are the params in dictionary form.

Note a few variations from the [min,max] construction:
'direct_globalMask_surfaceBlend_Dest' : ['ZERO','ONE','DST_COLOR','SRC_COLOR','INV_DST_COLOR','INV_SRC_COLOR','SRC_ALPHA','INV_SRC_ALPHA','DST_ALPHA','INV_DST_ALPHA','SRC_ALPHA_SATURATE']
'direct_globalMask_surfaceBlend_Src' : ['ZERO','ONE','DST_COLOR','SRC_COLOR','INV_DST_COLOR','INV_SRC_COLOR','SRC_ALPHA','INV_SRC_ALPHA','DST_ALPHA','INV_DST_ALPHA','SRC_ALPHA_SATURATE']
'direct_layer_position_x' : ['(float)-infinite','(float)+infinite'] #these 6 examples are really a description of the type and range of values allowed
'direct_layer_position_y' : ['(float)-infinite','(float)+infinite']
'direct_layer_position_z' : ['(float)-infinite','(float)+infinite']
'direct_layer_scale_x' : [0.0,'(float)infinite']
'direct_layer_scale_y' : [0.0,'(float)infinite']
'direct_layer_scale_z' : [0.0,'(float)infinite']

Besides the above, every item has {key : [min,max]}

Enjoy!

keyMinMax = {'ctrl_layer_activated' : [False,True], 'ctrl_layer_alpha' : [0.0,1.0], 'ctrl_layer_auto_colorASpeed' : [0.0,1.0], 'ctrl_layer_auto_colorAdditiveOn' : [False,True], 'ctrl_layer_auto_colorBSpeed' : [0.0,1.0], 'ctrl_layer_auto_colorCurve' : [0,9], 'ctrl_layer_auto_colorGSpeed' : [0.0,1.0], 'ctrl_layer_auto_colorModulateOn' : [False,True], 'ctrl_layer_auto_colorOn' : [False,True], 'ctrl_layer_auto_colorRSpeed' : [0.0,1.0], 'ctrl_layer_auto_moveCurve' : [0,9], 'ctrl_layer_auto_moveOn' : [False,True], 'ctrl_layer_auto_moveSize' : [0.0,1.0], 'ctrl_layer_auto_moveSize_factor' : [0.0,8.0], 'ctrl_layer_auto_moveSpeed' : [0.0,1.0], 'ctrl_layer_auto_moveStrob' : [0.0,1.0], 'ctrl_layer_auto_moveXY' : [0,2], 'ctrl_layer_auto_rotateOn' : [False,True], 'ctrl_layer_auto_rotateStrob' : [0.0,1.0], 'ctrl_layer_auto_rotateXDirection' : [False,True], 'ctrl_layer_auto_rotateXSpeed' : [0.0,1.0], 'ctrl_layer_auto_rotateYDirection' : [False,True], 'ctrl_layer_auto_rotateYSpeed' : [0.0,1.0], 'ctrl_layer_auto_rotateZDirection' : [False,True], 'ctrl_layer_auto_rotateZSpeed' : [0.0,1.0], 'ctrl_layer_auto_scaleCurve' : [0,9], 'ctrl_layer_auto_scaleOn' : [False,True], 'ctrl_layer_auto_scaleSize' : [0.0,1.0], 'ctrl_layer_auto_scaleSpeed' : [0.0,1.0], 'ctrl_layer_auto_scaleStrob' : [0.0,1.0], 'ctrl_layer_auto_scaleXY' : [0,4], 'ctrl_layer_blendMode' : [0,5], 'ctrl_layer_color_additiveB' : [0.0,1.0], 'ctrl_layer_color_additiveG' : [0.0,1.0], 'ctrl_layer_color_additiveR' : [0.0,1.0], 'ctrl_layer_color_modulateB' : [0.0,1.0], 'ctrl_layer_color_modulateG' : [0.0,1.0], 'ctrl_layer_color_modulateR' : [0.0,1.0], 'ctrl_layer_fieldOfView' : [0,1.0], 'ctrl_layer_focused' : [False,True], 'ctrl_layer_hidden' : [False,True], 'ctrl_layer_media' : [0,135], 'ctrl_layer_mediaSet' : [0,8], 'ctrl_layer_movie_loopMode' : [0.0,2.0], 'ctrl_layer_movie_playDirection' : [0.0,1.0], 'ctrl_layer_movie_positionIn' : [0.0,1.0], 'ctrl_layer_movie_positionOut' : [0.0,1.0], 'ctrl_layer_movie_shuttle1' : [0.0,1.0], 'ctrl_layer_movie_shuttle2' : [0.0,1.0], 'ctrl_layer_movie_speedFactor' : [0.0,1.0], 'ctrl_layer_pixelFX_blurLevel' : [0.0,1.0], 'ctrl_layer_pixelFX_blurOn' : [False,True], 'ctrl_layer_pixelFX_blurType' : [0,1], 'ctrl_layer_pixelFX_contrastBoost' : [False,True], 'ctrl_layer_pixelFX_contrastInverse' : [False,True], 'ctrl_layer_pixelFX_contrastLevel' : [0.0,1.0], 'ctrl_layer_pixelFX_contrastOn' : [False,True], 'ctrl_layer_pixelFX_lightnessLevel' : [0.0,1.0], 'ctrl_layer_pixelFX_lightnessOn' : [False,True], 'ctrl_layer_pixelFX_lightnessType' : [0,1], 'ctrl_layer_pixelFX_lumaOn' : [False,True], 'ctrl_layer_pixelFX_lumaPreserveAlpha' : [False,True], 'ctrl_layer_pixelFX_lumaType' : [0,4], 'ctrl_layer_pixelFX_noiseAlpha' : [False,True], 'ctrl_layer_pixelFX_noiseColored' : [False,True], 'ctrl_layer_pixelFX_noiseLevel' : [0.0,1.0], 'ctrl_layer_pixelFX_noiseOn' : [False,True], 'ctrl_layer_pixelFX_noiseRGBOn' : [False,True], 'ctrl_layer_pixelFX_saturationBoost' : [False,True], 'ctrl_layer_pixelFX_saturationInverse' : [False,True], 'ctrl_layer_pixelFX_saturationLevel' : [0.0,1.0], 'ctrl_layer_pixelFX_saturationOn' : [False,True], 'ctrl_layer_position_x' : ['(float)-infinite','(float)+infinite'], 'ctrl_layer_position_y' : ['(float)-infinite','(float)+infinite'], 'ctrl_layer_record_eraseOn' : [False,True], 'ctrl_layer_record_stopPlayRec' : [False,True], 'ctrl_layer_rotation_x' : [0.0,1.0], 'ctrl_layer_rotation_y' : [0.0,1.0], 'ctrl_layer_rotation_z' : [0.0,1.0], 'ctrl_layer_scale_factorUniform' : [1.0,20.0], 'ctrl_layer_scale_factorXYZ' : [1.0,99.0], 'ctrl_layer_scale_normalizeOn' : [False,True], 'ctrl_layer_scale_uniform' : [0.0,1.0], 'ctrl_layer_scale_x' : [0.0,1.0], 'ctrl_layer_scale_y' : [0.0,1.0], 'ctrl_layer_scale_z' : [0.0,1.0], 'ctrl_layer_soundOutBalance' : [0.0,1.0], 'ctrl_layer_soundOutLevel' : [0.0,1.0], 'ctrl_layer_soundOutLinkToAlphaAndCrossfader' : [False,True], 'ctrl_layer_stackPosition' : [1,10], 'ctrl_layer_transformer_matrix_deepSpace' : [0.0,1.0], 'ctrl_layer_transformer_matrix_extrusionLevel' : [0.0,1.0], 'ctrl_layer_transformer_matrix_flipXeYe' : [0,3], 'ctrl_layer_transformer_matrix_flipXeYu' : [0,3], 'ctrl_layer_transformer_matrix_flipXuYe' : [0,3], 'ctrl_layer_transformer_matrix_flipXuYu' : [0,3], 'ctrl_layer_transformer_matrix_planarSpace' : [0.0,1.0], 'ctrl_layer_transformer_matrix_resize' : [False,True], 'ctrl_layer_transformer_matrix_xValue' : [1,10], 'ctrl_layer_transformer_matrix_yValue' : [1,10], 'ctrl_layer_transformer_matrix_zValue' : [1,10], 'ctrl_layer_transformer_on' : [False,True], 'ctrl_layer_transformer_particle_alphaFadeIn' : [False,True], 'ctrl_layer_transformer_particle_alphaFadeOut' : [False,True], 'ctrl_layer_transformer_particle_applyLocalAngleOn' : [False,True], 'ctrl_layer_transformer_particle_cutOffAngleX' : [0.0,1.0], 'ctrl_layer_transformer_particle_cutOffAngleY' : [0.0,1.0], 'ctrl_layer_transformer_particle_gravity' : [0.0,1.0], 'ctrl_layer_transformer_particle_life' : [0.0,1.0], 'ctrl_layer_transformer_particle_localScale' : [0.0,1.0], 'ctrl_layer_transformer_particle_particlesPerSec' : [0.0,1.0], 'ctrl_layer_transformer_particle_radiusSource' : [0.0,1.0], 'ctrl_layer_transformer_particle_scaleFadeIn' : [False,True], 'ctrl_layer_transformer_particle_scaleFadeOut' : [False,True], 'ctrl_layer_transformer_particle_speed' : [0.0,1.0], 'ctrl_layer_transformer_patch_colorOn' : [False,True], 'ctrl_layer_transformer_patch_dmapingAlphaOn' : [False,True], 'ctrl_layer_transformer_patch_dmappingLevel' : [0.0,1.0], 'ctrl_layer_transformer_patch_fillMode' : [0,2], 'ctrl_layer_transformer_patch_noiseLevel' : [0.0,1.0], 'ctrl_layer_transformer_patch_shapeType' : [0,3], 'ctrl_layer_transformer_patch_soundInputValue' : [0.0,1.0], 'ctrl_layer_transformer_patch_soundInputVdelayOn' : [False,True], 'ctrl_layer_transformer_patch_subdivX' : [1,50], 'ctrl_layer_transformer_patch_subdivY' : [1,50], 'ctrl_layer_transformer_patch_thickness' : [1,20], 'ctrl_layer_transformer_type' : [0,2], 'ctrl_layer_transition_durationDelta' : [0,2], 'ctrl_layer_transition_type' : [0.0,1.0], 'ctrl_layerStack_focusPosition' : [1,10], 'ctrl_master_TimeRecPosition' : [1,10], 'ctrl_master_addColorB' : [1,10], 'ctrl_master_addColorG' : [1,10], 'ctrl_master_addColorR' : [1,10], 'ctrl_master_alpha' : [1,10], 'ctrl_master_backgroundColorB' : [1,10], 'ctrl_master_backgroundColorG' : [1,10], 'ctrl_master_backgroundColorR' : [1,10], 'ctrl_master_crossfader_alphaGroupAOn' : [1,10], 'ctrl_master_crossfader_alphaGroupBOn' : [1,10], 'ctrl_master_crossfader_scaleGroupAOn' : [1,10], 'ctrl_master_crossfader_scaleGroupBOn' : [1,10], 'ctrl_master_crossfader_slider' : [1,10], 'ctrl_master_flash' : [False,True], 'ctrl_master_invColor' : [False,True], 'ctrl_master_invColorB' : [1,10], 'ctrl_master_invColorG' : [1,10], 'ctrl_master_invColorR' : [1,10], 'ctrl_master_layerSetGroupA' : [0,7], 'ctrl_master_layerSetGroupB' : [0,7], 'ctrl_master_scale' : [1,10], 'ctrl_master_soundLevelCapture' : [1,10], 'ctrl_master_soundOutLevel' : [1,10], 'ctrl_master_speed' : [1,10], 'ctrl_master_still' : [False,True], 'ctrl_master_traceLevel' : [0.0,1.0], 'ctrl_ui_minimalizeMainWindow' : [False,True], 'ctrl_ui_previewWindowMode' : [0,6], 'direct_globalMask_color_additiveB' : [0.0,1.0], 'direct_globalMask_color_additiveG' : [0.0,1.0], 'direct_globalMask_color_additiveR' : [0.0,1.0], 'direct_globalMask_color_modulateA' : [0.0,1.0], 'direct_globalMask_color_modulateB' : [0.0,1.0], 'direct_globalMask_color_modulateG' : [0.0,1.0], 'direct_globalMask_color_modulateR' : [0.0,1.0], 'direct_globalMask_media' : [0,135], 'direct_globalMask_movie_speedFactor' : [0.0,1.0], 'direct_globalMask_position_x' : ['(float)-infinite','(float)+infinite'], 'direct_globalMask_movie_speedFactor' : [0.0,1.0], 'direct_globalMask_position_y' : ['(float)-infinite','(float)+infinite'], 'direct_globalMask_scale_uniform' : [0.0,1.0], 'direct_globalMask_scale_x' : [0.0,1.0], 'direct_globalMask_scale_y' : [0.0,1.0], 'direct_globalMask_show_inOutput' : [0,1], 'direct_globalMask_show_inPreview' : [0,1], 'direct_globalMask_surfaceBlend_Dest' : ['ZERO','ONE','DST_COLOR','SRC_COLOR','INV_DST_COLOR','INV_SRC_COLOR','SRC_ALPHA','INV_SRC_ALPHA','DST_ALPHA','INV_DST_ALPHA','SRC_ALPHA_SATURATE'], 'direct_globalMask_surfaceBlend_Src' : ['ZERO','ONE','DST_COLOR','SRC_COLOR','INV_DST_COLOR','INV_SRC_COLOR','SRC_ALPHA','INV_SRC_ALPHA','DST_ALPHA','INV_DST_ALPHA','SRC_ALPHA_SATURATE'], 'direct_layer_color_additiveB' : [0.0,1.0], 'direct_layer_color_additiveG' : [0.0,1.0], 'direct_layer_color_additiveR' : [0.0,1.0], 'direct_layer_color_modulateA' : [0.0,1.0], 'direct_layer_color_modulateB' : [0.0,1.0], 'direct_layer_color_modulateG' : [0.0,1.0], 'direct_layer_color_modulateR' : [0.0,1.0], 'direct_layer_localPosition_x' : ['(float)-infinite','(float)+infinite'], 'direct_layer_localPosition_y' : ['(float)-infinite','(float)+infinite'], 'direct_layer_localPosition_z' : ['(float)-infinite','(float)+infinite'], 'direct_layer_media_timePosition' : [0,1], 'direct_layer_position_x' : ['(float)-infinite','(float)+infinite'], 'direct_layer_position_y' : ['(float)-infinite','(float)+infinite'], 'direct_layer_position_z' : ['(float)-infinite','(float)+infinite'], 'direct_layer_rotation_x' : [0.0,1.0], 'direct_layer_rotation_y' : [0.0,1.0], 'direct_layer_rotation_z' : [0.0,1.0], 'direct_layer_scale_x' : [0.0,'(float)infinite'], 'direct_layer_scale_y' : [0.0,'(float)infinite'], 'direct_layer_scale_z' : [0.0,'(float)infinite'], 'direct_layer_transformer_particle_localColor' : [0.0,1], 'direct_layer_transformer_particle_localColor_aditiveB' : [0.0,1], 'direct_layer_transformer_particle_localColor_aditiveG' : [0.0,1], 'direct_layer_transformer_particle_localColor_aditiveR' : [0.0,1], 'direct_layer_transformer_particle_localColor_modulateA' : [0.0,1], 'direct_layer_transformer_particle_localColor_modulateB' : [0.0,1], 'direct_layer_transformer_particle_localColor_modulateG' : [0.0,1], 'direct_layer_transformer_particle_localColor_modulateR' : [0.0,1], 'direct_preview_position_z' : [0.0,50], 'direct_soundInputLevel' : [0.0,1.0, ]}