Attribute names in the Inspector reveals whether it is saved in a patcher. If the attribute name is printed in italics, its value is not saved with the patcher. Attributes of user interface objects such as color and size are always saved in the patcher. Attributes of non-user-interface objects such as metro and Jitter objects such as jit.qt.movie are not saved in the patcher. Before the frozen attribute feature existed, if you want to initialize these attributes to specific values when loading a patcher, you had two choices:
- Use loadbang objects to send messages to the objects with initial values. This clutters up your patch and makes it difficult to debug.
- Add the attributes to the object box's typed-in arguments, using the @ syntax. This is neater, but if you have to initialize many attributes, it makes the patch difficult to read. Furthermore, each time you change the typed-in attribute values of an object, you need to re-instantiate the object, so all of its state is reset.
Frozen attributes offer an alternative to initializing attribute values. A frozen attribute has an assigned initial value, as if you typed it into the object box as an argument. After it is initialized, the attribute value can be changed, but if the patcher is saved again, its frozen value is stored in the file.
Freezing an attribute
- Make sure the attribute value of the object is set to a desired initial value.
- In the inspector window, click the name of the attribute you want to freeze to select it.
- Click the Freeze Attribute button in the inspector toolbar.
- The attribute setting name will turn blue to indicate it has been frozen, and will show the frozen value in braces
Unfreezing an attribute
- In the inspector window, click the name of the attribute you want to unfreeze to select it.
- Click the Unfreeze Attribute button in the inspector toolbar.
- The attribute setting name will turn back to black to indicate it is no longer frozen.
Note: if you duplicate objects with frozen attributes, the duplicated object will share the same frozen attribute values as the original, even though it may not share the same current attribute values.