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.
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. |
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.
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.
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:
Decimal | Hexadecimal | Font style |
---|---|---|
1 | 0x01 | Bold |
2 | 0x02 | Italic |
4 | 0x04 | Underline |
32 | 0x20 | Strikeout |
64 | 0x40 | Fixed font size |
128 | 0x80 | Hidden |
The font size, where the integer value is in points.
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)
).
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. |
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. |
There's also a ^url() command to format hyperlinks. Syntax currently unknown.