PnP.Maxtools Library
The PnP.Maxtools Library is a set of objects designed for the real-time automation of control parameters within Max through the Max Package Manager. It is a set of filters, sound description tools, audio effects, and other objects that are designed to be used together to compose music or improvise without the use of external controllers or hardware. The PnP.Maxtools library is designed to take incoming audio from a microphone, analyze it, and use the analysis to automate changes to an audio effect on the incoming signal in real-time. Reflexive Automation is the term used to describe this analogous relationship between the audio content and the resulting musical transformations, and it enables control parameters to become more multifaceted and better able to serve the needs of artists.
Reflexive Automation
Something really cool happens whens you connect the output from MIR algorithms directly to the control inlet(s) of audio effects: the analysis creates an analogous and automatic response in the change to the audio effect that corresponds with a timbral change in the sound used for analysis. This reflex, or behavior, is similar to classification and regression used in real-time machine learning systems that respond in real-time to external stimuli, minus all of the training data. In order to achieve these interactions, you need to standardize the range of inputs and outputs for all objects. You also need a lot of objects. The PnP.Maxtools library uses a normalized range from 0-1 for all descriptors and effects and currently contains 43 objects. The image on the right is one possible configuration of each of these categories. Every object in each category can be used with others from their categories. Most objects also require no arguments to use. They are ‘plug and play.’

Music Information Retrieval
The sound description tools included in the PnP.Maxtools library are real-time music information retrieval algorithms created specifically for this library. Most of them have easily recognizable names, such as roughness, brightness, hardness, sharpness, etc. that correlate to the aural sensation felt while listening to a sound. The output from these descriptors range from 0-1, where 1 is corresponds to high perceived levels of that sensation. Both of these things allow for quick prototyping and implementation. Most of the objects in the library are subjective descriptors, meaning that the output subjectively describes the sound rather than objectively quantifies it. While the inner workings of each object calculate an objective measurement of incoming sounds, the correlation between the output from a descriptor and the perceived characteristic of that sound may vary from individual to individual. This is different than descriptors such as the spectral slope or skew measurements, for example, which measure the spectra of sounds with no consideration for how listeners actually perceive them.