Digital Orchestra Toolbox
Authors: Joseph Malloch, Stephen Sinclair
This “toolbox” is a collection of Max/MSP objects that we have found useful in creating gesture processing patches for digital musical instruments. Each patch is accompanied with a help patch to demonstrate its use.
Download:
- dot_max4_20080917.zip - digital orchestra toolbox for Max4.x (148 KB)
- dot_max5_20080917.zip - digital orchestra toolbox for Max5 (235 KB)
Current Dependencies:
- Two objects from the Jamoma project
- jcom.oscroute
- jmod.change (Max4.x version only)
| Patch Name | Function |
|---|---|
| dot.3dpolar | Converts xyz to amplitude, angle, and elevation. |
| dot.addresscoll | A coll wrapper for storing and managing OSC addresses and associated properties. |
| dot.admin | Takes care of all mapping and network communications for the Digital Orchestra DMIs and synths. |
| dot.alloc | Using a shared bus, deliberate to allocate a unique identifier. |
| dot.appendaddr | Append text to the end of the first item of a list. |
| dot.atoi | Convert a symbol that starts with a decimal number to an integer. |
| dot.attackslope | Given two thresholds, determine the slope between the points at which they are crossed in the positive direction. (i.e., attack speed) |
| dot.autoexpr | User-definable expr-based scaling with autoscale and mapper-compatible output. |
| dot.autoscale | Rescales signals according to auto-detected maximum and minimum values. |
| dot.bitstobyte | Converts 8 bits into a single decimal byte. |
| dot.bytetobits | Converts a single decimal byte into 8 binary bits. |
| dot.centre | Automatically offsets input to re-centre signal around zero, with user-definable delay, ramp time, and time grain. |
| dot.channelthresh | Combines ID-tagged channels into lists using a delay threshold. Like “thresh,” but keeps channel information. |
| dot.clip | Clips a stream of numbers to a minimum, maximum, or both. |
| dot.combinote | Combines 8 input signals into a single value such that any given combination will be a unique number. |
| dot.dampedenvelope | Audio-rate envelope-generator with damping. |
| dot.debounce | Filters multiple messages. |
| dot.distance | Finds maximum or minimum distance between a scalar and a list. |
| dot.extrema | Outputs values of local maxima and minima. |
| dot.fraction | Looks at divisions of a list and outputs the highest value corresponding to nodes at 2 3 4 5 and 6 part divisions. Intended for use with dot.harmonicfilter. |
| dot.harmonicfilter | For damping gains in modal synthesis based on a harmonic series. Handles “string division” at 0.5, 0.3, 0.25, 0.2, 0.167 |
| dot.history | Outputs list of delayed samples: x[n], x[n-1], …, x[n-m]. |
| dot.index | Generates the lowest unused index (for coll storage). Argument sets maximum index. |
| dot.leakyintegrator | An accumulator with a hole in it. The leakiness is highly customizable. |
| dot.listinterpolate | Interpolates/extrapolates between two lists of equal length. |
| dot.listinterpolate4 | The same for four lists. |
| dot.listpipe | Delays a stream of input like pipe, but also works for lists. |
| dot.mappingcoll | A coll wrapper for storing and managing mapping information. |
| dot.median | Outputs median value of a user-definable sample size. |
| dot.midiout | Helper for quickly configuring MIDI output. |
| dot.namealloc | Using a multicast OSC bus, deliberate to allocate a unique device number with the given root. |
| dot.namespaceparse | A regexp-based function for reading device definitions formatted as XML and dumping them into a coll. |
| dot.oscroute | A wrapper for jmod.oscroute allowing multiple OSC addresses to be dynamically added and removed. |
| dot.playabsolute | Play files recorded by dot.recordabsolute. |
| dot.polar | Converts x/y into amplitude and angle. Change in agle with wrap-around correction is also calculated. |
| dot.portalloc | Using a multicast OSC bus, deliberate to allocate a unique port number. |
| dot.prependaddr | Prepend text to the beginning of the first item of a list. |
| dot.probgate | A probabilistic gate with remote control. |
| dot.properties | regexp wrapper for parsing tagged message properties expressed in the form @<label> <data>. Second outlet outputs number of backreferences. |
| dot.recordabsolute | Record an arbitrary number of datastreams with absolute timestamping. |
| dot.region | Outputs and centre of multiple selected areas of a list (binary). |
| dot.router | Performs OSC namespace translation, scaling, and clipping for an arbitrary number of mapping connections. |
| dot.slipdecode | Parses slip-encoded data with user-defined delimiter and escape character. |
| dot.slipencode | Encodes data using slip-coding with user-defined delimiter and escape character. |
| dot.slope | Output the slope between each successive point. |
| dot.smooth | Simple sample-averaging filter. |
| dot.squeuedlim | Limits the speed of messages passing through like speedlim, but queued like zl queue. |
| dot.thresh | A little hack to allow thresh to work with symbols. |
| dot.threshtrig | Output a value only once after passing the threshold in the positive or negative directions. |
| dot.timedsmooth | Downsampled audio-rate averaging filter. |
| dot.transfer | Table-based waveshaping with customizable transfer function. |
| dot.wrap | Simple offset with wrap-around. |
| dot.xmlread | A native-Max XML parser - no externals! |
| dot.xmlwrite | A native-Max XML parser - no externals! |