Tags:

What are tags?

Tags are the most important part of KM3 as they are what allow you to make fancy effects in little time at all. The majority of tags are functions, meaning they return a value. A lot of them also take parameters which can be user defined values or even other tags. Setting different values for these parameters will effect the final value returned.

What do tags look like?

All tags start with a '[' bracket and end in a ']' bracket. Missing one or more of these brackets will most likely cause undesired results in your karaoke or cause errors in other tags and won't be generated at all. After the opening bracket is the tag name. If the tag has parameters then they are seperated by a comma. For example:

[max,100,200,300]

'max' is the tag's name while the '100', '200', and '300' are the parameters. Some tags can have an infinite number of parameters while others will only accept certain amounts.

What tags are there?

  -! (Factorial)
  -% (Modulus)
  -alpha (Alpha)
  -bord (Border)
  -cc (Character Count)
  -cchar (Current Character)
  -ceiling (Ceiling)
  -cindex (Current Character Index)
  -cline (Current Line)
  -clip.bottom (Clip Bottom)
  -clip.left (Clip Left)
  -clip.right (Clip Right)
  -clip.top (Clip Top)
  -clip.x1 (Clip X1)
  -clip.x2 (Clip X2)
  -clip.y1 (Clip Y1)
  -clip.y2 (Clip Y2)
  -colour (Colour)
  -cos (Cosine)
  -cr (Choose Random)
  -cs (Choose Select)
  -csyll (Current Syllable)
  -dec (To Decimal)
  -end (End Time)
  -even (Is Even)
  -floor (Floor)
  -for (For Loop)
  -hcs (Hex Colour Sequence)
  -hex (To Hexadecimal)
  -hs (Hex Sequence)
  -if (If Statement)
  -invert (Invert)
  -isin (Is In)
  -k (K Time)
  -kleft (K Time Left)
  -kright (K Time Right)
  -len (Length)
  -log (Logorithm)
  -ln (Natural Logorithm)
  -max (Maximum)
  -mean (Mean)
  -median (Median)
  -min (Minimum)
  -mode (Mode)
  -nc (Character Duration)
  -ns (Syllable Duration)
  -odd (Is Odd)
  -pow (Power)
  -r (Random)
  -resx (Play Res X)
  -resy (Play Res Y)
  -round (Round)
  -rt (Remove Tags)
  -s (Syllable)
  -sc (Syllable Count)
  -sin (Sine)
  -shad (Shadow)
  -sleft (Syllable Left)
  -spc (Syllable Space)
  -sqrt (Square Root)
  -sright (Syllable Right)
  -start (Start Time)
  -style (Style)
  -substr (Sub String)
  -syl (Syllable No Space)
  -t (Time)
  -tan (Tangent)

  -integer (Time Offset)
  -pflag (Perseus Flag)


What constants are there?

  -PI
  -E



! (Factorial)

The factorial tag returns the factorial of a positive integer.

Use:

integer = [!,+integer]

Examples:

[!,5] = 120
[!,6] = 720

% (Modulus)

The modulus tag returns the remainder of the division of its 2 decimal parameters.

Uses:

integer = [%,integer,integer]
decimal = [%,decimal,decimal]

Examples:

[%,5,2] = 1
[%,5.0,2.2] = 0.6
[%,-5.2,2.0] = -1.2

alpha (Alpha)

The alpha tag returns the current line's primary, secondary, border, or shadow colour alpha values.

Uses:

alpha = [alpha]
alpha = [alpha,integer {0, 1, 2, 3}]
alpha = [alpha,string {primary, secondary, border, shadow}]

Examples: (Using the style "Style: Style3000,STALKER2,70,&H00FFFCF1,&H44ECACA2, &H236E281D,&HFA6E281D,-1,0,0,0,100,100,0.00,0.00,1,2.00,0.00,8,20,20,10,0".)

[alpha] / [alpha,0] / [alpha,primary] = &H00&
[alpha,1] / [alpha,secondary] = &H44&
[alpha,2] / [alpha,border] = &H23&
[alpha,3] / [alpha,shadow] = &HFA&

bord (Border)

The bord tag returns the current line's border value.

Uses:

decimal = [bord]

Examples: (Using the style "Style: Style3000,STALKER2,70,&H00FFFCF1,&H44ECACA2, &H236E281D,&HFA6E281D,-1,0,0,0,100,100,0.00,0.00,1,2.00,0.00,8,20,20,10,0".)

[bord] = 2.00

ceiling (Ceiling)

The ceiling tag rounds a decimal number up to the nearest one.

Uses:

integer = [ceiling,decimal]

Examples:

[ceiling,2.2] = 3
[ceiling,2.8] = 3
[ceiling,-5.645] = -5

cc (Character Count)

The character count tag returns the number of characters in the current event line.

Uses:

integer = [cc]
integer = [cc,integer {0, 1}]
integer = [cc,string {"nospace", "space"}]

Examples: (Using the line "{\k28}ka{\k33}ze {\k44}ga {\k22}i{\k23}ro {\k26}ni {\k22}na{\k23}t{\k67}te".)

[cc] / [cc,0] / [cc,nospace] = 16
[cc,1] / [cc,space] = 20

cchar (Current Character)

The current character tag returns the index of the character currently being processed where zero is the first character of the first syllable.

Use:

integer = [cchar]
integer = [cchar,integer {0, 1}]
integer = [cchar,string {"nospace", "space"}]

Examples: (Using the line "{\k28}ka{\k33}ze {\k44}ga {\k22}i{\k23}ro {\k26}ni {\k22}na{\k23}t{\k67}te" while processing the first character of the fifth syllable "{\k23}ro ".)

[cchar] / [cchar,0] / [cchar,nospace] = 7
[cchar,1] / [cchar,space] = 9

cindex (Current Character Index)

The current character index tag returns the index of the character currently being processed where zero is the first character of the syllable currently being processed.

Use:

integer = [cindex]
integer = [cindex,integer {0, 1}]
integer = [cindex,string {"nospace", "space"}]

Examples: (Using the syllable "{\k23}i ro" while processing the third character "r".)

[cindex] / [cindex,0] / [cindex,nospace] = 1
[cindex,1] / [cindex,space] = 2

cline (Current Line)

The current line tag returns the index of the event line currently being processed where the first event line starts at zero.

Use:

integer = [cline]

Examples: (If the current event line being processed is the fifth line in the script.)

[cline] = 4

clip.bottom (Clip Bottom)

The clip bottom tag returns the y-coordinate of the bottom edge of the clip rectangle.

Use:

integer = [clip.bottom]

Examples: (Using the clip "clip = (0, 10, 640, 460);".)

[clip.bottom] = 460

clip.left (Clip Left)

The clip left tag returns the x-coordinate of the left edge of the clip rectangle.

Use:

integer = [clip.left]

Examples: (Using the clip "clip = (0, 10, 640, 460);".)

[clip.left] = 0

clip.right (Clip Right)

The clip right tag returns the x-coordinate of the right edge of the clip rectangle.

Use:

integer = [clip.right]

Examples: (Using the clip "clip = (0, 10, 640, 460);".)

[clip.right] = 640

clip.top (Clip Top)

The clip top tag returns the y-coordinate of the top edge of the clip rectangle.

Use:

integer = [clip.top]

Examples: (Using the clip "clip = (0, 10, 640, 460);".)

[clip.top] = 10

clip.x1 (Clip X1)

The clip X1 tag returns the x-coordinate of the top left point of the current clipped rectangle.

Use:

integer = [clip.x1]

Examples: (If the current clipped rectangle is "(4,10,6,12)".)

[clip.x1] = 4

clip.x2 (Clip X2)

The clip X2 tag returns the x-coordinate of the bottom right point of the current clipped rectangle.

Use:

integer = [clip.x2]

Examples: (If the current clipped rectangle is "(4,10,6,12)".)

[clip.x2] = 6

clip.y1 (Clip Y1)

The clip Y1 tag returns the y-coordinate of the top left point of the current clipped rectangle.

Use:

integer = [clip.y1]

Examples: (If the current clipped rectangle is "(4,10,6,12)".)

[clip.y1] = 10

clip.y2 (Clip X2)

The clip Y2 tag returns the y-coordinate of the bottom right point of the current clipped rectangle.

Use:

integer = [clip.y2]

Examples: (If the current clipped rectangle is "(4,10,6,12)".)

[clip.y2] = 12

colour (Colour)

The colour tag returns the current line's primary, secondary, border, or shadow colour.

Uses:

colour = [colour]
colour = [colour,integer {0, 1, 2, 3}]
colour = [colour,string {primary, secondary, border, shadow}]

Examples: (Using the style "Style: Style3000,STALKER2,70,&H00FFFCF1,&H00ECACA2, &H006E281D,&H006E281D,-1,0,0,0,100,100,0.00,0.00,1,2.00,0.00,8,20,20,10,0".)

[colour] / [colour,0] / [colour,primary] = &HFFFCF1&
[colour,1] / [colour,secondary] = &HECACA2&
[colour,2] / [colour,border] = &H6E281D&
[colour,3] / [colour,shadow] = &H6E281D&

cos (Cosine)

The cosine tag returns the cosine of a decimal.

Use:

decimal = [cos,integer]
decimal = [cos,decimal]
decimal = [cos,integer,integer {0, 1}]
decimal = [cos,decimal,integer {0, 1}]
decimal = [cos,integer,string {"radians", "degrees"}]
decimal = [cos,decimal,string {"radians", "degrees"}]

Examples:

[cos,2] / [cos,2,0] / [cos,2,radians] = -0.416146836547142
[cos,2,1] / [cos,2,degrees] = 0.999390827019096

cr (Choose Random)

The choose random tag returns a random parameter.

Use:

* = [cr,*]

Examples:

[cr,1,2,3,4,5] = 1
[cr,1,2,3,4,5] = 4
[cr,{\fscx100},{\fscx150},{\fscx200}] = {\fscx200}

cs (Choose Select)

The choose select tag returns the parameter with the index of the first parameter's value starting at zero. If the first parameter's value is greater then or equal to the number of other parameters, it will look back to the beginning and repeat.

Use:

* = [cs,+integer,*]

Examples:

[cs,3,0,1,2,3] = 3
[cs,1,{\fscx100},{\fscx150},{\fscx200}] = {\fscx150}
[cs,6,{\fscx100},{\fscx150},{\fscx200}] = {\fscx100}

csyll (Current Syllable)

The current syllable tag returns the index of the syllable currently being processed where the first syllable starts at zero.

Use:

integer = [csyll]
integer = [csyll,integer {0, 1}]
integer = [csyll,string {"nopause", "pause"}]

Examples: (Using the line "{\k28}ka{\k33}ze {\k34}{\k44}ga {\k27}{\k22}i{\k23}ro {\k26}ni {\k22}na{\k23}t{\k67}te" while processing the fifth syllable "{\k23}ro ".)

[csyll] / [csyll,0] / [csyll,nopause] = 4
[csyll,1] / [csyll,pause] = 6

dec (To Decimal)

The to decimal tag converts a hex string into a decimal integer.

Use:

integer = [dec,string]

Examples:

[dec,FF] = 255
[dec,1A] = 26

end (End Time)

The end time tag returns the end time of the the current event line in milliseconds.

Use:

integer = [end]

Examples: (If the current event line's end time is "0:00:01.00".)

[end] = 1000

even (Is Even)

The is even tag returns true if the first parameter is an even number; otherwise false.

Use:

boolean = [even,integer]

Examples:

[even,2] = true
[even,1] = false

floor (Floor)

The floor tag rounds a decimal number down to the nearest one.

Uses:

integer = [floor,decimal]

Examples:

[floor,2.2] = 2
[floor,2.8] = 2
[floor,-5.645] = -6

for (For Loop)

The for loop tag returns a statement repeatedly until a specified condition evaluates to false. The for loop iterates from one value to another, storing the current value as a variable. This variable can be aceesed within the loop's second parameter which is returned each iteration.

Uses:

* = [for,bool *,*]

* The first parameter of a for loop is a special conditional statement in the form of "(name = a; a <Logical Operator> b; a <Arithmetic Operator> c)". In certain cases "c" can be omitted.

Examples:

[for,(num = 0; num <= 5; num += 1),[num]] = 012345
[for,(num = 0; num <= 5; num ++),[num]] = 012345
[for,(time = 0; time < 400; time += 100),{\t([time],<[time]+100>,\bord[r,1,3])}] = {\t(0,100,\bord2)}{\t(100,200,\bord1)}{\t(200,300,\bord3)}

hcs (Hex Colour Sequence)

The hex colour sequence returns a colour of a specified index between the sequence of one colour to another and of a set size.

Uses:

string = [hcs,integer,integer,string,string]
string = [hcs,integer,integer,string,string,integer {0, 1} *]
string = [hcs,integer,integer,string,string,string {"gradient", "repeat"} *]
colour = [hcs,integer,integer,colour,colour]
colour = [hcs,integer,integer,colour,colour,integer {0, 1} *]
colour = [hcs,integer,integer,colour,colour,string {"gradient", "repeat"} *]

* The extra fifth parameter specifies the way the seuqence should continue if the index is greater then the total size of the sequence. "gradient" or "0" specifies that the sequence reverses itself each time it reaches its end (123321) and is the default. "repeat" or "1" specifies that the sequence repeats itself in the same order (123123).

Examples:

[hcs,0,2,000000,FFFFFF] = 000000
[hcs,1,2,000000,FFFFFF] = 808080
[hcs,2,2,000000,FFFFFF] = FFFFFF
[hcs,3,2,000000,FFFFFF] = FFFFFF
[hcs,3,2,000000,FFFFFF,1] = 000000

hex (To Hexadecimal)

The to hexadecimal tag converts a decimal integer into a hexidecimal string.

Use:

string = [hex,integer]

Examples:

[hex,255] = FF
[hex,26] = 1A

hcs (Hex Sequence)

The hex sequence tag is mostly the same as the hex colour sequence tag. The only difference is it's a sequence of one hex value instead of three.

Uses:

string = [hs,integer,integer,string,string]
string = [hs,integer,integer,string,string,integer {0, 1}]
string = [hs,integer,integer,string,string,string {"gradient", "repeat"}]
alpha = [hs,integer,integer,alpha,alpha]
alpha = [hs,integer,integer,alpha,alpha,integer {0, 1}]
alpha = [hs,integer,integer,alpha,alpha,string {"gradient", "repeat"}]

Examples:

[hs,0,2,00,FF] = 00
[hs,1,2,00,FF] = 80
[hs,2,2,00,FF] = FF
[hs,3,2,00,FF] = FF
[hs,3,2,00,FF,1] = 00

if (If Statement)

The if statement tag returns the value of the frist true statement found. An infinite amount of statements can be added with "else if" and a default return value for when none of the statements are true can be specified with "else".

Uses:

* = [if,bool,*]
* = [if,bool,*,else if,bool,*]
* = [if,bool,*,else,*]
* = [if,bool,*,else if,bool,*,else,*]

Examples: (If the current event line being processed is the fifth line in the script.)

[if,([cline] == 1),{pos(10,10)},else,{pos(320,10)}] = {pos(320,10)}
[if,([cline] == 1 || [cline] == 5),{pos(10,10)},else,{pos(320,10)}] = {pos(10,10)}
[if,([cline] == 1),{pos(10,10)},else if,([cline] == 5),{pos(40,10)},else,{pos(320,10)}] = {pos(40,10)}

invert (Invert)

The invert tag returns the inverse of the alpha or colour value specified.

Uses:

alpha = [invert,alpha]
colour = [invert,colour]

Examples:

[invert,&HFF&] = &H00&
[invert,&H221133&] = &HDDEECC&

isin (Is In)

The is in tag returns true if the first parameter is equal to any of the other parameters; otherwise false.

Uses:

bool = [isin,string,*]

Examples: (If the current syllable is "ko".)

[isin,3,1,2,3,4] = true
[isin,5,1,2,3,4] = false
[isin,[s],ko,to,ba,ri] = true

k (K Time)

The k time tag returns the current syllables k tag with time.

Uses:

string = [k]
string = [k,integer {"0", "1", "2", "3"}]
string = [k,string {"k", "kf", "K", "ko"}]

Examples: (Using the line "{\k28}ka{\k33}ze {\k34}{\k44}ga {\k27}{\k22}i{\k23}ro {\k26}ni {\k22}na{\k23}t{\k67}te" while processing the fifth syllable "{\k23}ro ".)

[k] / [k,0] / [k,k] = {\k23}
[k,1] / [k,kf] = {\kf23}
[k,2] / [k,K] = {\K23}
[k,3] / [k,ko] = {\ko23}

kleft (K Time Left)

The k time left tag returns the a k tag with the total time of all previous syllables.

Uses:

string = [kleft]

Examples: (Using the line "{\k28}ka{\k33}ze {\k34}{\k44}ga {\k27}{\k22}i{\k23}ro {\k26}ni {\k22}na{\k23}t{\k67}te" while processing the fifth syllable "{\k23}ro ".)

[kleft] = {\k188}

kright (K Time Right)

The k time right tag returns the a k tag with the total time of all proceeding syllables.

Uses:

string = [kright]

Examples: (Using the line "{\k28}ka{\k33}ze {\k34}{\k44}ga {\k27}{\k22}i{\k23}ro {\k26}ni {\k22}na{\k23}t{\k67}te" while processing the fifth syllable "{\k23}ro ".)

[kright] = {\k138}

len (Length)

The length tag returns the number of characters in a string.

Uses:

integer = [len,string]

Examples:

[len,perseus] = 7
[len,0324] = 4

log (Logorithm)

The logorithm tag returns the log of a specified base (base 10 if not specified) of a specified decimal.

Uses:

decimal = [log,+integer]
decimal = [log,+decimal]
decimal = [log,+integer,+integer]
decimal = [log,+decimal,+decimal]

Examples:

[log,3] = 0.477121254719662
[log,3,10] = 0.477121254719662
[log,3,2] = 1.58496250072116
[log,3.8,2.5] = 1.58496250072116

ln (Natural Logorithm)

The natural logorithm tag returns the log of base E (2.71828182845905) of a specified decimal.

Uses:

decimal = [ln,+integer]
decimal = [ln,+decimal]

Examples:

[ln,5] = 1.6094379124341
[ln,17] = 2.83321334405622

max (Maximum)

The maximum tag returns the highest value of a group of numbers.

Uses:

integer = [max,*integer]
decimal = [max,*decimal]

Examples:

[max,5,4,5,2,3,1,-3] = 5
[max,17.4,-23,3.4,3,23.1] = 23.1

mean (Mean)

The mean tag returns the average of a group of numbers.

Uses:

integer = [mean,*integer]
decimal = [mean,*decimal]

Examples:

[mean,1,2,3,4,5] = 3
[mean,-2,-1,0,1,2] = 0
[mean,0.3,1.5,3.2,2] = 1.75

median (Median)

The median tag returns the middle number of a group of numbers. If there are two middle numbers, then the average of the two is returned.

Uses:

integer = [median,*integer]
decimal = [median,*decimal]

Examples:

[median,1,2,3,4,5] = 3
[median,-5,-1,2,-3,3] = -1
[median,3.3,1.6,2.3,5.3,7.2,3.5] = 3.4

min (minimum)

The minimum tag returns the lowest value of a group of numbers.

Uses:

integer = [min,*integer]
decimal = [min,*decimal]

Examples:

[max,5,4,5,2,3,1,-3] = -3
[max,17.4,-23,3.4,3,23.1] = -23

mode (Mode)

The mode tag sets the referenced array to the number(s) that repeat the most within a group of numbers.

Uses:

void = [mode,ref Array,*integer]
void = [mode,ref Array,*decimal]

Examples: (Using the Array "md".)

[mode,&md,1,2,3,3,4] ... [md,0] = 3
[mode,&md,-5,-1,-1,3,3] ... [md,0] = -1, [md,1] = 3
[mode,2.5,2.5,2.7,2.7,2.4,2.7,2.3] ... [md,0] = 2.7

nc (Character Duration)

The current character duration tag returns the duration in miliseconds of the current character. If set to "nospace" spaces will not be included in the calculation and zero will be returned if the current character is a space.

Uses:

integer = [nc]
integer = [nc,integer]
integer = [nc,integer {"0", "1"},integer]
integer = [nc,string {"nospace", "space"},integer]

Examples: (Using the syllable "{\k32}kyu " while processing the third character "u".)

[nc] = 100
[nc,0] = 110
[nc,1] = 110
[nc,2] = 100
[nc,3] = 0
[nc,1,0] / [nc,1,1] / [nc,1,2] / [nc,1,3] = 80

ns (Syllable Duration)

The current syllable duration tag returns the duration in miliseconds of the current syllable or a syllable of a specified index.

Uses:

integer = [ns]
integer = [ns,integer]
integer = [ns,integer {"0", "1"},integer]
integer = [ns,string {"nopause", "pause"},integer]

Examples: (Using the line "{\k28}ka{\k33}ze {\k34}{\k44}ga {\k27}{\k22}i{\k23}ro {\k26}ni {\k22}na{\k23}t{\k67}te" while processing the fifth syllable "{\k23}ro ".)

[ns] = 230
[ns,1] / [ns,0,1] / [ns,nopause,1] = 330
[ns,2] / [ns,0,2] / [ns,nopause,2] = 440
[ns,1,1] / [ns,pause,1] = 330
[ns,1,2] / [ns,pause,2] = 340

odd (Is Odd)

The is odd tag returns true if the first parameter is an odd number; otherwise false.

Use:

boolean = [odd,integer]

Examples:

[odd,2] = false
[odd,1] = true

pow (Power)

The power tag returns a specified number raised to a specified power.

Uses:

integer = [pow,integer,integer]
decimal = [pow,decimal,decimal]

Examples:

[pow,2,2] = 4
[pow,2,4] = 16
[pow,2.3,5.3] = 82.6337631255409

r (Random)

The random tag returns a random number between or equal to two specified numbers.

Uses:

integer = [r,integer,integer]
decimal = [r,decimal,decimal]

Examples:

[r,1,10] = 3
[r,233,3423] = 2347
[r,2.3,5.3] = 4.6

resx (Play Res X)

The play res x tag returns the "PlayResX:" value of the script's "Script Info" section.

Uses:

integer = [resx]

Examples: (If the "PlayResX:" value of the loaded script is "1280".)

[resx] = 1280

resy (Play Res Y)

The play res y tag returns the "PlayResY:" value of the script's "Script Info" section.

Uses:

integer = [resy]

Examples: (If the "PlayResY:" value of the loaded script is "720".)

[resy] = 720

round (Round)

The round tag rounds a specified number to a specified number of decimal places or a default of zero decimal places.

Uses:

decimal = [round,decimal,decimal]

Examples:

[round,2.46] = 2
[round,7.5] = 8
[round,3.234,2] = 3.23

rt (Remove Tags)

The remove tags tag removes all ASS scripting tags from a specified string.

Uses:

string = [rt,string]

Examples:

[rt,{\alpha&H77&}ro] = ro

s (Syllable)

The syllable tag returns the current syllable surrounded by specified start and end tags. If in line per character mode the syllable tag will return the current character instead.

Uses:

string = [s]*
string = [s,string]
string = [s,string,string]

*When in line per character mode, only [s] is usable as [s,string] and [s,string,string] would be redundant.

Examples: (Using the line "{\k28}ka{\k33}ze {\k34}{\k44}ga {\k27}{\k22}i{\k23}ro {\k26}ni {\k22}na{\k23}t{\k67}te" while processing the fifth syllable "{\k23}ro ".)

[s] = ro 
[s,{\bord4}] = {\bord4}r{\bord4}o{\bord4}
[s,{\bord4},{\bord2}] = {\bord4}r{\bord2}{\bord4}o{\bord2}{\bord4} {\bord2}

sc (Syllable Count)

The syllable count tag returns the number of syllables in the line.

Uses:

integer = [sc]
integer = [sc,integer {0, 1}]
integer = [sc,string {"nopause", "pause"}]

Examples: (Using the line "{\k28}ka{\k33}ze {\k34}{\k44}ga {\k27}{\k22}i{\k23}ro {\k26}ni {\k22}na{\k23}t{\k67}te".)

[sc] / [sc,0] / [sc,nopause] = 9
[sc,1] / [sc,pause] = 11

sin (Sine)

The sine tag returns the sine of a decimal.

Use:

decimal = [sin,integer]
decimal = [sin,decimal]
decimal = [sin,integer,integer {0, 1}]
decimal = [sin,decimal,integer {0, 1}]
decimal = [sin,integer,string {"radians", "degrees"}]
decimal = [sin,decimal,string {"radians", "degrees"}]

Examples:

[sin,2] / [sin,2,0] / [sin,2,radians] = 0.909297426825682
[sin,2,1] / [sin,2,degrees] = 0.034899496702501

shad (Shadow)

The shad tag returns the current line's shadow value.

Uses:

decimal = [shad]

Examples: (Using the style "Style: Style3000,STALKER2,70,&H00FFFCF1,&H44ECACA2, &H236E281D,&HFA6E281D,-1,0,0,0,100,100,0.00,0.00,1,2.00,0.00,8,20,20,10,0".)

[shad] = 0.00

sleft (Syllable Left)

The syllable left tag returns all characters to the left of "[s]".

Use:

string = [sleft]
string = [sleft,string]
string = [sleft,string,string]

Examples: (Using the line "{\k28}ka{\k33}ze {\k34}{\k44}ga {\k27}{\k22}i{\k23}ro {\k26}ni {\k22}na{\k23}t{\k67}te" while processing the fifth syllable "{\k23}ro ".)

[sleft] = kaze ga i
[sleft,{\alpha&H00&},{\alpha&HFF&}] = {\alpha&H00&}kaze ga i{\alpha&HFF&}*

*If [sleft] equals nothing then "{\alpha&H00&}" and "{\alpha&HFF&}" will not be added.

spc (Syllable Space)

The syllable space tag returns a space if the last character of the current syllable is one, otherwise it will return nothing.

Use:

string = [spc]

sqrt (Square Root)

The square root tag returns the square root of a specified number.

Uses:

decimal = [sqrt,integer]
decimal = [sqrt,decimal]

Examples:

[sqrt,4] = 2
[sqrt,16] = 4
[sqrt,2.3] = 1.51657508881031

sright (Syllable Right)

The syllable right tag returns all characters to the right of "[s]".

Use:

string = [sright]
string = [sright,string]
string = [sright,string,string]

Examples: (Using the line "{\k28}ka{\k33}ze {\k34}{\k44}ga {\k27}{\k22}i{\k23}ro {\k26}ni {\k22}na{\k23}t{\k67}te" while processing the fifth syllable "{\k23}ro ".)

[sright] = ni natte
[sright,{\alpha&H00&},{\alpha&HFF&}] = {\alpha&H00&}ni natte{\alpha&HFF&}*

*If [sright] equals nothing then "{\alpha&H00&}" and "{\alpha&HFF&}" will not be added.

start (Start Time)

The start time tag returns the start time of the the current event line in milliseconds.

Use:

integer = [start]

Examples: (If the current event line's start time is "0:00:01.00".)

[start] = 1000

style (Style)

The style tag returns the style of the the current event line.

Use:

string = [style]

Examples: (If the current event line's style is "Default".)

[style] = Default

substr (Sub String)

The sub string tag returns the sub string of a specified string starting at a specified index for a specified length.

Use:

string = [substr,string,integer]
string = [substr,string,integer,integer]

Examples:

[substr,hello,2] = llo
[substr,hello,2,2] = ll

syl (Syllable No Space)

The syllable no space tag returns the current syllable only without any trailing spaces.

Use:

string = [syl]*
string = [syl,string]
string = [syl,string,string]

*When in line per character mode, only [syl] is usable as [syl,string] and [syl,string,string] would be redundant.

Examples: (Using the line "{\k28}ka{\k33}ze {\k34}{\k44}ga {\k27}{\k22}i{\k23}ro {\k26}ni {\k22}na{\k23}t{\k67}te" while processing the fifth syllable "{\k23}ro ".)

[s] = ro
[s,{\bord4}] = {\bord4}r{\bord4}o
[s,{\bord4},{\bord2}] = {\bord4}r{\bord2}{\bord4}o{\bord2}

t (Time)

The time tag returns by default the total time in miliseconds of the event line currently being processed, or if specified the total time of all karaoke tags present in the line.

Use:

integer = [t]
integer = [t,integer {"0", "1"}]
integer = [t,string {"event", "ktags"}]

Examples: (Using the line "{\k28}ka{\k33}ze {\k34}{\k44}ga {\k27}{\k22}i{\k23}ro {\k26}ni {\k22}na{\k23}t{\k67}te" with a start time of "0:00:00.00" and an end time of "0:00:02.93".)

[t] / [t,0] / [t,event] = 2930
[t,1] / [t,ktags] = 3490

tan (Tangent)

The sine tag returns the tangent of a decimal.

Use:

decimal = [tan,integer]
decimal = [tan,decimal]
decimal = [tan,integer,integer {0, 1}]
decimal = [tan,decimal,integer {0, 1}]
decimal = [tan,integer,string {"radians", "degrees"}]
decimal = [tan,decimal,string {"radians", "degrees"}]

Examples:

[tan,2] / [tan,2,0] / [tan,2,radians] = -2.18503986326152
[tan,2,1] / [tan,2,degrees] = 0.0349207694917477


integer (Time Offset)

The time offset tag returns the time, in miliseconds, of a specified syllable relative to the current syllable.

Use:

integer = [integer]
integer = [integer,integer {0, 1}]
integer = [integer,string {nopause, pause}]

Examples:(Using the line "{\k28}ka{\k33}ze {\k34}{\k44}ga {\k27}{\k22}i{\k23}ro {\k26}ni {\k22}na{\k23}t{\k67}te" while processing the second syllable "{\k33}ze ".)

[0] = 280
[1] / [1,1] / [1,pause]= 610
[1] / [1,0] / [1,nopause]= 950*
[-1] = 0

*When set to "nopause" the time of the pause will be added to the previous syllable's time.

pflag (Perseus Flag)

No documentation is available for this tag at this time.

Use:

bool = [pflag,integer]


PI

Use:

[PI] = 3.14159

E

Use:

[E] = 2.71828