How to build a recipe

A recipe is a text string with script settings that follows a specific syntax. It contains a number of settings, separated by a ; (semicolon) and an optional blank space for readability. All settings must always be specified and in the following order (the name of the setting in bold isn’t written in the recipe, only the value):

  1. fancy: If set to true, the script will simulate a scan with visible scan mask edges. If you like a cropped look, set this to false.
  2. artifacts: If set to true the script will add artifacts at the outside of the mask border, often seen with real film as a consequence of the scanning and editing process. Set it to false for a crisper look.
  3. mask_variant_35mm: The style of scanner mask to use with 2:3 images. The script comes with eight styles, numbered from 1 to 8.
  4. mask_variant_645: The style of scanner mask to use with 4:3 images. The script comes with five styles, numbered from 1 to 5.
  5. mask_variant_67: The style of scanner mask to use with 6:7 images. The script comes with three styles, numbered from 1 to 3.
  6. mask_variant_45: The style of scanner mask to use with 4:5 images. The script comes with two styles, numbered from 1 to 2.
  7. mask_variant_square: The style of scanner mask to use with square images. The script comes with three styles, numbered from 1 to 3.
  8. negative_variant_square: The look of the negative, where 1 has a look drawn from Rolleiflex square formats and 2 from Hasselblad square formats.
  9. negative_variant_645: The look of the negative, where 1 has a look drawn from Pentax 645 negatives and 2 from Contax 645 negatives.
  10. matted_crop: If set to true the script will add a white border around a cropped frame. If set to false no border will be added.
  11. border_width_35mm: Border width (whole number/integer value) for 35mm format, when fancy = false.
  12. border_width_645: Border width (whole number/integer value) for 645 format, when fancy = false.
  13. border_width_67: Border width (whole number/integer value) for 6x7 format, when fancy = false.
  14. border_width_45: Border width (whole number/integer value) for 4x5 format, when fancy = false.
  15. border_width_square: Border width for square format, when fancy = false.
  16. short_side_factor: Factor that changes the thickness of the short side of 2:3, 6:7 and square formats, when fancy = false. Given as a percentage, from 1 to 400.
  17. movement_min_long: Defines the floor (lowest value) for all possible image movements of the long edge from a centered position, given as a whole number from 0 to 100.
  18. movement_max_long: Defines the ceiling (highest value) for all possible image movements of the long edge from a centered position, given as a whole number from 0 to 100.
  19. movement_min_short: Defines the floor (lowest value) for all possible image movements of the short edge from a centered position, given as a whole number from 0 to 100.
  20. movement_max_short: Defines the ceiling (highest value) for all possible image movements of the short edge from a centered position, given as a whole number from 0 to 100.
  21. movement_direction: When set to random the script may move the image relative to the mask in all four directions (up/down/left/right). When set to bottomright it will only move it towards the bottom right and when set to topleft towards the top left.

The full geeky syntax for a recipe looks like this:

[true|false]; [true|false]; [1-8]; [1-4]; [1-3]; [1-2]; [1-3]; [1-2]; [1-2]; [true|false]; [1-300]; [1-99]; [1-99]; [1-99]; [1-99]; [0-100]; [0-100]; [0-100]; [0-100]; [random|bottomright|topleft]

An actual recipe for the default settings, ready to copy-and-paste into Poserframes, looks like this:

true; true; 1; 1; 1; 1; 1; 1; 1; true; 20; 20; 20; 20; 20; 100; 10; 100; 10; 100; random