SHURE SW6000 CAA Name Sign Template User Manual

June 6, 2024
Shure

SW6000 User Manual
CAA Name Sign Template

Introduction

This document describes the format of name sign template markup language as used in SW6000 in ‘CAA|Setup|Configuration|Name sign templates’.
The name sign template format used in SW6000 is in fact the render format directly understood by the rendering engine in the name sign hardware. In SW6000, though, the template is split into a “Front” and “Rear” definition for easier handling, and then merged into one before sending to a name sign.
So a template in SW6000 is in its essence a name sign render JSON file for rendering the front and rear displays on a name sign.
On top of the basic template definition, SW6000 has a markup language which is embedded into the templates and which is evaluated by SW6000 when it renders the template for a specific name sign.
In this way e.g. participant information can be merged into the predefined name sign template before it is sent to a name sign.
What is covered in this document is the name sign template markup language defined for the CUI rendering of name sign content.

Template File

This chapter describes all tags used in a template file.

Object tags

The purpose of this chapter is to describe display object tags

Tao Type Description Example
‘BackgroundColor Optional number Color to use for global background.
Default color: OxFFFFFFFF
“ForegroundColor” Optional number Color to use for global text rendering.
Default color: OxFF000000
“Rotation’ Optional number Number describing the number of degrees the image

is to be rotated. Current support degrees are 0 and 180.
Default rotation is O.|
‘Content”| Optional array| This array contains a description of the content to be rendered.
If no content is available the screen is cleared.
Each item in the array shall include a unique ‘ID’.
Note: Conditional statement can be used in the content as well.
Refer to: ‘4 Conditional statements’|
‘Invert”| Optional
Boolean| Flag to signal content is to be inverted.
Default value “false”|
“Language”| Optional text| Language code (Locale Id).
Specifies the SW6000 language, from where the data is collected.
If no language code is specified or data is not available in the specified language, the ‘System language’ is used.
If the resulting language code in use, is not Included in the ‘MXC Global languages’ then the sign will use English (US), language code 1033.|
| Number| Identifies an object in the content array|

TextBox

This section describe objects which can be within a text box.
Note: A text box do not show any borders.

Tag Type Description Example
mandatory string value must be -Textbox”.
‘Font’ Optional string String containing name of font to use for text box.

Default font is based on language configuration, set by ‘Language’ tag.
Overrides the default font.|
‘size’| Optional number| Size of the font to use.
Default size is set to 72.|
| Optional
number| X / V start position of text box.
Default X / Y position is set to 0. Position Is calculated from upper left corner of the display|
‘width’ “Height”| Optional number| Width/height of text box
Default width is set to panel max-width (1904).
Default height is set to panel max height (464).|
Tag| Type| Description| Example
---|---|---|---
‘AlignH’
“AllgnV”| Optional stnng| Horizontal/vertical alignment of text within the text box.
If not set, “Center’ value is used. valid horizontal values:
“Left’
“Right”
“Center
valid vertical values:
“Top’
‘Bottom’ tenter|
“Text”| Mandatory string| UTF13 Encoded text.
The string can Include a text and/or a ‘command’ from SW6000 to insert a value.
For ‘commands’ refer to ‘3.1 List of commands|
‘BackgroundColor| Optional number| Color used to render background. Overrides global
“BackgroundColor’|
‘ForegroundColor’| Optional
number| Color to render text with. Overrides global
“ForegroundColor’ if used.|
‘Language”| Optional text| Language code (Locale Id).
Specifies the SW6000 language, from where the data is collected.
If a language code Is not specified, the ‘Language, which may be specified In ‘Object tag’ is used, else the ‘System language’ Is used.
If a language code is specified, but data is not available in that language, the ‘System language’ is used.
If the resulting language code in use, is not Included in the’l4Xf Global languages’ then the sign will use English (US), language code 1033.|
Tag| Type| Description| Example
---|---|---|---
| | The language code ‘default’ is also valid.|
As the data to show is taken from the language data in SW6000, data in different languages, if available, can be shown simultaneously in the sign.
In the example, the participant name shown on the top is the English name and in the bottom the Arabic name|
“Style”| Optional string| Specifies style of font.
Valid values are:
“Regular”
“Italic”
“Bold”
“Bold Italic”
Default is “Regular”. The font specified by “Font” must define a valid font for the style, or it will fall back to “Regular”| “ID” : 1,
“Type”: “TextBox”, “Style” : Bold,

Comments

The template format supports inserting comments using the following format:

Hex Description Example
// Used to insert comments or ‘disable’ a line.
Active until a line break.
/* …. Used to insert comments or ‘disable’ all in-between.

Important: Although the current template format supports inserting comments, this is not supported in standard json formats. This feature may be discontinued in future versions, and it is recommended to remove comments in the templates in use.

Template Command Format

The name sign template markup format rules:

  • All commands starts with an @-sign
  • Command arguments are passed in a pair of parentheses directly after the command (i.e. no white spaces between command and arguments)
  • If there are no arguments to the command, the argument parentheses can be omitted.
  • If a @-character is required in the template, it must be typed in as “@@” – the template renderer will render that sequence as a single @-character in the output.
  • Commands and arguments cannot span multiple lines. Both must be on the same line in the template.
List of commands

The markup language contains the following commands used for applying content.

Command Description
@SeatA Insert value from paired sets A
@SeatB Insert value from paired seat B
@Meeting Insert value from the started meeting
@Sign Insert value from name sign configuration
@Booth Insert value from booth configuration

The following sections describes the commands in more detail.

mseelA and SeatB cariunards

The @SeatA/B commands are used for accessing information about the seat paired with the name sign as either A or B seat.
The command takes one argument specifying which information to fetch from the seat

Argument Data Inserted when rendering Example
SeatNumber The seat number of the paired seat “Text”: “Seat

@SeatA(SeatNumber)”
“Seat 5” – providing the name sign has seat 5 as paired seat A
ParticipantName| The full name of the participant of the paired seat| “Text”: “@SeatB(ParticipantName)” “Peter Fessler” – providing the participant Peter Fessler is either logged in at, or assigned to, the seat paired as seat B on the name sign
ParticipantFirstName| The first name of the participant of the paired seat|
ParticipantLastName| The last name of the participant of the paired seat|
ParticipantShowName| The ‘show name’ of the participant of the paired seat. Show name is  onfigured in ‘CAA[Setup[Meeting role’| .
ParticipantTitle| The title of the participant of the paired seat|
ParticipantCustoml ParticipantCustom2 ParticipantCustom3 ParticipantCustom4| The “User Table 1-4” value of the participant of the paired seat|
GroupName| The group name of the participant of the paired seat|
GroupAbbreviation| The abbreviated group name of the participant of the paired seat|
Message| A message send to a participant| “Text”: “@SeatA(Message)”

Most values in the table above refer to “the participant of the paired seat”. This is the participant intended to be displayed on the name sign. First and foremost, this is the participant which is logged in at the seat. If no participant is logged in, and there is a seat assignment in the current meeting, the participant assigned to the seat will become “the participant of the paired seat”, providing the participant is not currently logged in at another seat.
If there is no participant for the paired seat, the participant-derived values will render as an empty string. All text values are fetched in the system default language for all name signs unless a font or a language code is specified.

Sign command

The @Sign command is used to access information about the name sign itself.
The command takes one argument specifying which information to fetch from the seat

Argument Data inserted when rendering Example
SerialNumber The serial number of the name sign “Text”: “SerialNo:

@Sign(SerialNumber)”
“SerialNo: 164.214.045” – providing the serial number of the name sign is 164.214.045
SeatA| Seat number of the seat paired as A seat on the name sign| “Text”: “Seat @Sign(SeatA)”
SeatB| Seat number of the seat paired as B seat on the name sign| “Text”: “Seat @Sign(SeatB)”

Meeting command

The @Meeting command is used to access information about the active meeting.
The command takes one argument specifying which information to fetch from the seat

Argument Data inserted when rendering Example
MeetingName The name of the active meeting Text: “@Meeting(MeetingName)”
ActiveSubject The title of the active subject Text: “@Meeting(Active

subject)”

@Booth command

The @Booth command is used to access information about interpreter booth.
The command takes one argument specifying which information to fetch from the booth.

Argument Data inserted when. rendering Example
BoothLanguage The A language associated with a booth “Text”:

“@Booth(BoothNumber) – @Booth(BoothLanguage) (@Booth(BoothLanguageAbbreviation))”
BoothLanguageAbbreviation| Abbreviation for the A language associated with a booth
BoothNumber| The booth number
BoothLanguageChannel| The number of the A channel associated with a booth|

Conditional Statements

The conditional statement can be achieved in two ways:

  • Conditional content in Text properties using @If
  • Conditional JSON sections using “If” objects

The following sections describes the conditional statements in details.

Conditional content in Text properties using @lf

The name sign conditional commands used as ‘Text’ arguments:

  • All commands starts with an @-sign
  • Command arguments are passed in a pair of parentheses directly after the command (i.e. no white spaces between command and arguments)
  • If there are no arguments to the command, the argument parentheses can be omitted.
  • If the first character after a command or command argument end parenthesis is a space, it is trimmed out when rendering a template. This allows the output of a markup command to line up with literal content in the template. (e.g. the template snippet “’@If(something) Yes@Else No” would evaluate to “Yes” or “No” when rendering – without skipping a space after a command it would yield “Yes” or “ No”, where No has a leading space, or would require empty parentheses after @Else to be able to put “No” right after the @Else to avoid the space)
  • If a @-character is required in the template, it must be typed in as “@@” – the template renderer will render that sequence as a single @-character in the output.
  • Commands and arguments cannot span multiple lines. Both must be on the same line in the template.
List of commands

The markup language contains the following commands

Command Description
@If Open a conditional section in the Text content
@Else Open the alternative section of a conditional section in the Text

content
@EndIf| Close a conditional section in the Text content

If…@Else…@EndIf commands
The @If, @Else, and @EndIf commands exists for conditional inclusion of sections in Text property values. Everything between an @If and its associated @Else command is rendered to the name sign by the CUI only if the condition argument to the @If command is true. Otherwise, the section between the @Else and its associated @EndIf command is rendered to the name sign. The @Else command can be excluded, in which case the section between the @If and @EndIf commands is rendered if the condition argument of the @If command is true. @If..@Else..@EndIf constructs can be nested for complex conditional template content. The @If command takes one of the following conditions as argument.

Argument Condition is true when
SeatAHasParticipant The seat paired as name sign seat A has a participant

assigned to it (i.e. a participant is to
be displayed on the name sign)
SeatBHasParticipant| The seat paired as name sign seat B has a participant assigned to it (i.e. a participant is to
be displayed on the name sign)

The @Else and @EndIf commands take no arguments.

Example using @If
The following examples includes some JSON formatting, since the @If…@Else…@EndIf command syntax is designed to include or exclude chunks of text data in the template.

Template snippet Output

 “Text”: “@If(SeatAHasParticipant) Participant A is here
@If(SeatBHasParticipant) with participant B
@EndIf
@Else
@If(SeatBHasParticipant) Participant B is here alone
@Else No one is here
@EndIf
@EndIf”,| No one is here
If no participant is assigned to either paired seat A or B.
Participant A is here
If a participant is assigned to paired seat A and no one is assigned to paired
seat B.
Participant B is here alone
If a participant is assigned to seat B and no one is assigned to seat A. Participant A is here with participant B
If both seat A and B has assigned participants.

Notes on white spaces
To limit the amount of data sent over the DCS LAN, the CUI will trim down the JSON of name sign templates. To save on processing this is done before the template is pre-parsed into literal text and markup commands.
The trimming down of the JSON involves removing all non-quoted spaces and line breaks. This will affect how the markup language is parsed after the trimming. If, for instance, you have the construct “@EndIf This is my text” it will be trimmed down to ”@EndIfThisIsMyText”, which will fail parsing, since there is no markup command named @EndIfThisIsMyText.
A workaround for such a situation would be to include the optional parantheses on @EndIf. This would result in the trimmed down “@EndIf()ThisIsMyText”, which is parsable.

Conditional JSON sections using “If” objects
Command Description
If Open a conditional section in the template
Condition Specified the condition
Then Open the conditional section in the template
Else Open an optional conditional section in the template

The condition command takes the same conditions as argument as the @If command.

Condition Condition is true when
SeatAHasParticipant The seat paired as name sign seat A has a participant

assigned to it (i.e. a participant is to
be displayed on the name sign)
SeatBHasParticipant| The seat paired as name sign seat B has a participant assigned to it (i.e. a participant is to
be displayed on the name sign)

Example with ’If, then, else’

Comparison between “Type”: “If and @If

The following template examples shown the two ways of using ‘If’ to constructs the display a “<” and “>” direction indicator if somebody is logged in at the A and B seat respectively, indicating the seating position of the displayed participant name.

Fonts

The font sizes supported are TTF fonts and all pt sizes are valid.
If an invalid font is specified in a template, the “Roboto Condensed Regular” font will be used.

Supported fonts including style availability

The next table shows the fonts available in the Namesign.

Font Regular Italic Bold Bold Italic
Roboto X x x x
RobotoCondensed X x x x
NotoSansThai X x
Kanit X x
NotoSansHebrew X x
NotoSansCJK X
NotoSansArabic X x
NotoNaskhArabic X x
MXC global languages

The table shows the default font selection for the MXC global languages. Each language is defined with a language code (locale id).

Language Language code (Locale Id) Supported by font
Arabic 1025 NotoNaskhArabic
Basque 1069 RobotoCondensed
Chinese Simple 2052 NotoSansCJK
Chinese Traditional 1028 NotoSansCJK
Catalan 1027 RobotoCondensed
Dutch 1043 RobotoCondensed
English 1033 RobotoCondensed
French 1036 RobotoCondensed
German 1031 RobotoCondensed
Indonesian 1057 RobotoCondensed
Italian 1040 RobotoCondensed
Japanese 1041 NotoSansCJK
Korean 1042 NotoSansCJK
Lithuanian 1063 RobotoCondensed
Portuguese 1046 RobotoCondensed
Russian 1049 RobotoCondensed
Spanish 3082 RobotoCondensed
Thai 1054 Kanit
Turkish 1055 RobotoCondensed
Fonts in use with SW6000

When the MXCSIGN is used with SW6000 and the language(s) used in SW6000 is not supported in the MXC global languages, the MXCSIGN will use the Language code (Locale Id) 1033 (RobotoCondensed font).
It is therefore not needed to change the ‘Language’ in any of the default templates in SW6000 if the used language is a language supported in the RobotoCondensed font.
The Roboto and RobotoCondensed fonts support Latin, Greek, and Cyrillic script and the following characters are supported:

Supported languages in Roboto and RobotoCondensed
The following languages are fully or partly supported in Roboto and RobotoCondensed fonts:

Afrikaans English Irish Rhaeto-Romanic
Albanian Esperanto Italian Russian
Bashkir Estonian Kayah li Scots
Basque Faroese Kazakh Scottish Gaelic
Belarusian Finnish Kurdish Southern Sami
Breton French Latin Spanish
Bulgarian Galician Leonese Swahili
Catalan German Luxembourgish Swedish
Chinese pinyin Greek Malay Tagalog
Corsican Hungarian Manx Tatar
Cyrillic Icelandic Norwegian Turkish
Czech Indonesian Occitan Ukrainian
Danish Internat. phonetic Polish Walloon
Dutch Irish Portuguese Welsh
Hebrew language

Hebrew is not supported in the MXC global language, but Hebrew is supported in the MXCSIGN:

Language Language code (Locale Id) Supported by font
Hebrew 1037 NotoSansHebrew

To use Hebrew, the Hebrew language has to be specified in the Object tags or in a TextBox in the template.

Grey Colors

Color format

The name sign support 16 levels of grey colors. The color format used is 0xAARRGGBB.
AA – 8bit Alpha channel.
RR – 8bit Red channel.
GG – 8bit Green channel.
BB – 8bit Blue channel

Any color selected that do not support native colors will be converted to nearest grey and dithered. The JSON only accepts the Hex [A, R, G, B] and Decimal formats.

Native colors supported
Hex [A,R,G,B] Decimal List
0xFF000000 4278190080 [255,0,0,0]
0xFF111111 4279308561 [255,17,17,17]
0xFF222222 4280427042 [255,34,34,34]
0xFF333333 4281545523 [255,51,51,51]
0xFF444444 4282664004 [255,68,68,68]
0xFF555555 4283782485 [255,85,85,85]
0xFF666666 4284900966 [255,102,102,102]
0xFF777777 4286019447 [255,119,119,119]
0xFF888888 4287137928 [255,136,136,136]
0xFF999999 4288256409 [255,153,153,153]
0xFFAAAAAA 4289374890 [255,170,170,170]
0xFFBBBBBB 4290493371 [255,187,187,187]
0xFFCCCCCC 4291611852 [255,204,204,204]
0xFFDDDDDD 4292730333 [255,221,221,221]
0xFFEEEEEE 4293848814 [255,238,238,238]

Name Sign Specifications

The MXCSIGN has the following specifications:

Image Size 1904 x 464 pixels
Screen Dimensions 380mm x 100 mm
Thickness 9mm
Width x Height 402mm x 113mm

The positions and size of an item are specified in pixels. The position of an item is counted from upper left corner of the display.
Font sizes are specified in pt.

United States, Canada, Latin
America, Caribbean:
Shure Incorporated 5800 West Touhy Avenue Niles, IL 60714-4608 USAPhone: +1 847 600 2000
Fax: +1 847 600 1212 (USA)
Fax: +1 847 600 6446
Email: info@shure.com| Europe, Middle East, Africa:

Shure Europe Gmbh
Jakob-Dieffenbacher-Str. 12
75031 Eppingen
Germany

Phone: +49 (0) 7262-9249-100
Fax: +49 (0) 7262-9249-114
Email: info@shure.de

| Asia, Pacific:

Shure Asia Limited 22/F, 625 King’s Road
North Point, Island East, Hong Kong

Phone: (+852) 2893-4290
Fax: (+852) 2893-4055
Email: info@shure.com.hk

---|---|---

www.shure.com

References

Read User Manual Online (PDF format)

Read User Manual Online (PDF format)  >>

Download This Manual (PDF format)

Download this manual  >>

Related Manuals