Tendency Masks & Vector-Based Amplitude Panning [Max/MSP]

Been thinking a bit about Koenig’s ‘Tendency Masks’ since reading more about them in Robert Rowe’s Machine Musicianship the other day. As a distribution method, they seem perhaps too random and arbitrary for generating or controlling pitch parameters (unless we’re talking grain pitch, or other techniques that benefit a more sporadic distribution?) To me, part of the interest in tendency masks lays in their gestural nature, and the possibility to relate this to other gestural behaviours. The patch here is a simple realisation of a tendency mask in Max, controlling some basic MIDI notes and [cycle], hooked up to Ville Pulke‘s vector-based amplitude panning object, [vbap] (just a 2D version at the moment, elevation not hooked up).

This demo is setup as a quadrophonic array using the [vbap]. In this setting, a narrower mask limits our signal to a single speaker location, whilst opening the mask up allows signal to move throughout the array more. Control of the system thereby comes from gesturally navigating narrower bands between speakers, and opening masks up to make full use of the array.

A nice little addition to the tendency mask outlined in Rowe (p.208) is the ability to control density as a separate breakpoint function, thereby changing over time (rather than even throughout). At the moment, my implementation of this is a little shaky at best (controlling the frequency of a [qmetro] object), but the result is there and gives a nice effect. Next steps with this include hooking up the [vbap]’s ‘elevation’ argument, cleaning up the mask density control, and linking it to loudspeaker spreading parameters.

Thanks to Chris Dobrain at the cycling74 forums for his advice on implementing the masks with [function].