# JW Freeware Plug-ins Wiki

### Site Tools

jwlua:enigmastrings

## Enigma Strings - General Syntax

An Enigma string is a string where commands can be inserted. A command starts with a caret (`^`). All commands ends with a `()` pair that for some commands contains parameters.

A double caret `^^` in an Enigma string will insert a single `^` to the printed text.

Only the text strings that support formatting are stored as Enigma strings in Finale. For example: a Staff name is an Enigma string, a Bookmark name is not.

## Examples

Full Enigma string might look like this:

 `^fontMus(Font0,0)^size(24)^nfx(0)F` “mf” (mezzoforte) text expression marking using the category's default font name. `^fontTxt(Times New Roman,4096)^size(12)^nfx(2)subito ^fontMus(Font0,0)^size(24)^nfx(0)p` “subito p” text expression (with font change before “p”) `^font(Times New Roman,4096)^size(12)^nfx(0)^title()` A text with a “title” text insert.

## Text Storage

Enigma strings are saved to different text pools depending on the object data that requires the string. Text blocks use a different storage pool compared to text expressions, for example.

## Fonts

#### ^font(string [,integer])

The `string` appears without quotes.

The `integer` contains a specific information about the font (such as the platform). For JW Lua scripts, this parameter can usually be skipped.

#### ^nfx(integer)

The font styles as a bit set coded as an integer. Use `FCFontInfo:CreateEnigmaStyleString()` to get the string to use from an existing style. The `FCFontInfo.EnigmaStyles` property can get/set the numerical style data directly in a FCFontInfo object.

`^nfx(0)` would mean a plain font style.

Other bit style numbers are:

1 0x01 Bold
2 0x02 Italic
4 0x04 Underline
32 0x20 Strikeout
64 0x40 Fixed font size
128 0x80 Hidden

#### ^size(integer)

The font size, where the integer value is in points.

## Special Text Expression Fonts

Text expressions support 3 special commands for font names that allow them to respond correctly to category changes. The syntax is the same as for the `^font` command listed above.

 `^fontMus` The category music font `^fontTxt` The category text font `^fontNum` The category number font

In addition to using traditional font names (such as `^fontTxt(Times New Roman, 0)`), these commands can also use a “special” font name called `Font0`, that would represent the default category font (such as `^fontTxt(Font0,0)`).

## Formatting

The Enigma strings support a couple of text formatting commands that can be inserted in the text.

 `^baseline(integer)` The baseline shift value. `^superscript(integer)` The superscript value. `^tracking(integer)` The tracking value.

## Text Inserts

These commands will insert special contents to the string. Some text inserts might not make sense for certain types of Enigma strings.

 `^arranger()` The arranger name text insert (defined in the File Info). `^composer()` The composer name text insert (defined in the File Info). `^copyright()` The copyright text insert (defined in the File Info). `^cprsym()` The copyright symbol. `^date(integer)` The current date. The `integer` parameter is the date format: 0 - short, 1 - long `^dbflat()` The double flat text insert. `^dbsharp()` The double sharp text insert. `^description()` The description text insert (defined in the File Info). `^fdate(integer)` The file date. The `integer` parameter is the date format: 0 - short, 1 - long `^filename()` The document's file name. `^flat()` The “flat” symbold text insert. `^lyricist()` The lyricist text insert (defined in the File Info). `^natural()` The “natural” symbol text insert. `^page(integer)` The page number with the added offset of the `integer` value. 0 as an offset would mean that the first page have page number 1. `^partname()` The score/part name for the score/part in scope. `^perftime(integer)` The playback/performance time text insert. The `integer` parameter is a time format specifier: 0 - m:ss, 1 - hh:mm:ss, 2 - hh:mm:ss.1000nds, 3 - hh:mm, 4 - m´ss´´, 5 - m `^rehearsal()` For text expressions only! Inserts a rehearsal figure in the text expression string. `^sharp()` A “sharp” symbol text insert. `^subtitle()` The subtitle text insert (defined in the File Info). `^title()` The title text insert (defined in the File Info). `^time(integer)` The current time. The `integer` parameter is a time format specifier, see the `perftime()` text insert. `^totpages()` The text insert for total number of pages in the current score/part.

## Misc.

There's also a ^url() command to format hyperlinks. Syntax currently unknown.