jb.utilities, available to download below, are a group of 50 abstractions for the max/msp programming environment. They provide a closely related set of functions for performing awkward tasks in max/msp as well as streamlining more complex workflow problems.  They are divided into several categories: control, data, list-processing, numbers, pattr-family, statistics, strings, and user-interface.  Most perform multiple functions and are unbiased as to data type where possible.  The download contains help files.


jb.block :  block the next n items from an input stream

jb.delay :  delay for any kind of input, in ms or events

jb.pass :  allow a percetage of input to pass through

jb.uzi :  send out a fast-as-possible linear or non-linear count


jb.= , jb.!= :  test the equality of various data types

jb.change :  separate static and dynamic input

jb.decode, jb.encode : encode/decode data using index numbers

jb.match :pass input list if nth element(s) matches search term(s)

jb.multichange: "change" for any number of indexed variables

jb.sieve :  a dynamic data sieve

jb.skeptic :  don't "believe" input until it occurs n-times in a row


jb.iter :  iterate a list at a variable rate

jb.slice :  slice a list in a multitude of ways

jb.tandem :  iterate two lists in tandem

jb.unique :  remove duplicates items from a list (preserving order)

jb.weave :  weave two lists together using a variable pattern

jb.xerox : extend a list with copies of itself


jb.% :  modulo operator with integer quotient

jb.delta :  calculate difference between successive values

jb.fi : separate floats and ints, treat whole-number floats as ints

jb.float :  store and interally operate upon a floating-point value

jb.grid :  snap numerical input to a grid

jb.histo :  a histogram for floating-point numbers

jb.interp : linear interpolation between two numerical lists

jb.normalize :  return the normalized weights of a numerical list

jb.series :  perform basic operations a 12-element series

jb.split :  float/list version of 'split' object

jb.pattrgate : initiate pattrstorage recalls with no output

jb.pattr.mml : return min/max/length of pattr-enabled objects


jb.collstats : return statisics on a named coll

jb.meancalculate the mean of alist with n% trimmed

jb.medianreturn the median value of a numerical list

jb.modereturn the mode of a list

jb.range :  return the range of a list with n% trimmed

jb.sumreturn the sum of numerical list


jb.itoa : queue-based integer to ASCII conversion

jb.strinsertinsert a substring at the specified position

jb.strjoinjoin two strings

jb.strlen return the length of a string

jb.strrevreverse a string

jb.strsieve separate characters out of a string

jb.strsliceslice a string at the specified position(s)

jb.strsub : return the position(s) of a substring


jb.cellblockstorage mechanism for jit.cellblock

jb.labellabel objects with name or objectclass

jb.mmlreturn the min/max/length of named UI objects

jb.taptempobasic tap-tempo implementation