User Tools

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:

Decimal Hexadecimal Font style
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.

jwlua/enigmastrings.txt · Last modified: 2014/11/30 10:26 by jariw