list of functions
{
  sin <num: value> - standard math function
  cos <num: value> - standard math function
  tan <num: value> - standard math function
  asin <num: value> - standard math function
  acos <num: value> - standard math function
  atan <num: value> - standard math function
  sinh <num: value> - standard math function
  cosh <num: value> - standard math function
  tanh <num: value> - standard math function
  abs <num: value> - standard math function: get absolute value
  log <num: value> - standard math function
  logabs <num: value> - standard math function: logarithm of absolute value
  log10 <num: value> - standard math function
  exp <num: value> - standard math function
  sqrt <num: value> - standard math function
  trunc <num: value> - standard math function: truncate to integer value
  round <num: value> - standard math function: round to integer value nearest to current value
  ceil <num: value> - standard math function: round to smallest integral value not less than current value
  floor <num: value> - standard math function: round to largest integral value not less than current value
  lin2db <num: value> - standard math function: convert linear amplitude value to value in decibel
  db2lin <num: value> - standard math function: convert value in decibel to linear amplitude value
  lin2cent <num: value> - standard math function: convert linear value to value in cent
  cent2lin <num: value> - standard math function: convert value in cent to linear value
  linscale <num: min_in> <num: max_in> <num: min_out> <num: max_out> - linear segment going from min_out to max_out for x between min_in and max_in
  exscale <num: min_in> <num: max_in> <num: min_out> <num: max_out> <num: base> - exponential scale going from min_out to max_out for x between min_in and max_in
  delta <num: min_in> <num: max_in> <num: min_out> <num: max_out> <num: midpoint> <num: width = 0> - delta shape with peak of given width at midpoint
  new <sym: class name> [<any: instantiation arguments> ...] - create object of given class
  int <num: arg> - convert to integer value
  i alias for 'int'
  float <num: arg> - convert to floating-point value
  f alias for 'float'
  symbol <sym: arg> - convert to symbol
  s alias for 'symbol'
  list [<obj|any: list args>...] - convert objects to list
  listhead [<any: list args> ...] - get list head
  listtail [<any: list args> ...] - get list tail
  listlen [<any: list args> ...] - get list size
  listnth <num: index> [<any: args> >...] - get nth list element (indices starting from 1)
  listelem <num: index> [<any: args> >...] - get list element
  listsub <num: index> <num: len> [<any: args> >...] - get sub-list
  l alias for 'list'
  lhead alias for 'listhead'
  ltail alias for 'listtail'
  llen alias for 'listlen'
  lnth alias for 'listnth'
  lelem alias for 'listelem'
  lsub alias for 'listsub'
  unique - generate unique integer number
  random [<num: min>] <num: max> - generate (float) random number (min <= x < max)
  clip <num: value> [<num: lower boundary>] <num: upper boundary> - clip value
  pow <num: base> <num: exponent> - power
  atan2 <num: x> <num: y> - principal value of the arc tangent of x/y, using the signs of both arguments to determine the quadrant of the return value
  gauss <num: x> <num: mu> <num: sigma> - Gaussian curve or normal distribution with mean mu and standard deviation sigma
  mod <num: num> <num: denum> - float modulo function
  min [<num: arg> ...] - find minimum
  max [<num: arg> ...] - find maximum
  mag [<num: arg> ...] - magnitude (sqrt of sum of squares)
  arg <num: real part> <num: imaginary part> - argument angle
  hz2midi <num: value in Hz> [<num: tuning frequency (for note # 69, def 440.)>] - convert to MIDI note number
  midi2hz <num: MIDI note number> [<num: tuning frequency (for note # 69, def 440.)>] - convert to frequency in Hz
  cat <any: item>... - concatenate to a single symbol
  basename <sym: filepath> - get filename part of filepath (last component)
  dirname <sym: filepath> - get directory part of filepath (or '.' if no path)
  extension <sym: filepath> - get extension part of filepath (after the last '.')
  stripext <sym: filepath> - remove extension from filepath (including the '.')
  not <num: linear value> - integer negation
  if <num: condition> <any: true value> <any: false value> - choose between two values (both conditional values are evaluated)
  case <num: index> [<any: value for index 1, 2 etc.> ...] - choose between multiple values (all conditional values are evaluated)
  typeof <any: arg> - get class/type name of value or object
  classof <any: arg> - get class/type of value or object
  getid <obj: reference> - get object id
  getobj <symbol: id> - get object by id
  obj <symbol: id> - get object by id
  class <sym: class name> - get class/type by name
  print print value or object
  aa <sym|any: arg> [<any: replacement if arg is #1, #2, etc> [<replacement if arg is 0>]] - replace abstraction argument by default value
  info <'classes'|'class'|'functions'> [<any: args>] [<mat: container>] - get info (post to console window or store into container if given)
  checkversion <num: major version> [<num: minor version> [<num: release>]] - check whether the running FTM corresponds to given version and release
  ftm <sym: FTM system function> <list: arguments>
  FTM alias for 'ftm'
  ftm version - get FTM version as symbol
  ftm exprerrcheck <0|'none'|1|'loose'|2|'normal'|3|'strict'> - set expression evaluation error checking level
  ftm exprerrcheck - get FTM expression evaluation error checking level
  ftm exterrors - post current errors of FTM externals
  version - get FTM version as symbol (deprecated)
}