Composing between moments
As a composer of new music, my goal is to have complexity without complication, a dramatic variety of dynamically related gestures, and an overall sense of continuity and direction. For new works which make use of the twelve-tone equal temperament system, I am developing a method of composition called “pantonal tensegrity”—a method which guides my self-referential weaving of harmony, melody, and select voice-leading traditions. Motivated by linear flow, this contrapuntal framework calls for the duple and triple paraphrase of individual musical instances, constrained by the whole.
This post describes how the focused creation of complex and unified progressions becomes possible, in spite of breaks in concentration, by contextually developing and constraining possible harmonic and melodic motions two or three instances at a time.
The concurrent pitches that comprise each musical instance, and the contrapuntal relationships between such instances, are represented by a data structure called a voice-leading tree. Completed trees are then converted into one or more musical works by selecting and manipulating other musical elements such as tempo, rhythm, phrasing, and dynamics.
Though my pitch selection is logical and deliberative, the remainder of the creative process intentionally explores the emotional and the instinctive, thus embracing (and hopefully conveying) both effortful and automatic human modes of thought.
Elaborating from within
To fully capture the expansion of individual instances though paraphrase, an evolving voice-leading tree is modelled as an ordered, directed tree structure. A tree begins as a root node—a single instance—then further expanded to a paraphrase of two or three leaf nodes that collectively include their parent’s pitch content. The leaves of the tree represent the surface progression (the foreground succession of musical instances), and this instance-by-instance elaboration of the surface progression continues by similarly paraphrasing any leaves in the tree structure. In each case, new nodes inherit, or are influenced by, the harmonic qualities of their parents, creating the comprehensive effect of a pantonal progression with directed, functional harmonies, built around the primary pitch set of the root node.
Voice-leading constraints help maintain linear interest and line independence. To determine the viability of a paraphrase solution, these rule-checks are applied to the progressions that arise from potential instances. Progressions (relevant successions of instances for analysis) are found by traversing and selecting related instances from the voice-leading tree. I use two traversal methods in particular, one which yields the surface progression, the other which returns a contextual progression for a particular instance.
The surface progression is found by returning the tree’s leaves through depth-first traversal (starting at the root node and exploring as far as possible along each branch before backtracking). By definition, potential instances are always leaves, and are invariably part of this progression.
Each leaf in the tree also exists within a functional context, best revealed by the shortest possible succession of instances required to understand the leaf as part of the whole. Providing both overview and detailed information at the same time, a contextual progression is created (starting at the leaf node in question) by traversing and returning the siblings of the top-most contiguously identical node, and then repeating the process with instances at least one generation closer to the root node—whether the adjacent leaves or (if necessary) their closest ancestors—in both directions until reaching the limits of the tree.
Constraining paraphrase solutions
Upon paraphrase, child instances also inherit the constraints applied to their parent, so initial global constraints are defined at the root node’s creation. However, as a dynamic constraint satisfaction problem, new constraints can be applied to leaves (before they are selected for paraphrase), and, as necessary, override pre-existing attributes of identical constraint types. Prior paraphrases which conflict with newly applied constraints are noted but left unchanged.
Both surface and contextual progressions must consistently delineate voicing that adheres to both linear and relational constraints. (Linear constraints effect the permitted series of pitches within voices; relational constraints effect the permitted relationships between voices.) Any number of voices can branch out or collapse into each other at any point. An often useful constraint specifically limits how much branching or collapsing of voices can be done at any one time, helping to avoid a “combinatorial explosion” of paraphrase solutions.
Constraints can have alternate conditions, categorized as melody and bass rule sets. They are applied to the pitches comprising the perceived outer voices of a progression, which is abstracted from the highest and lowest pitches of every instance (regardless of actual voicing). In addition, any pitches in a paraphrase can be arbitrarily designated as “melody”, with corresponding elements of further paraphrase solutions inheriting this voice designation by default. When necessary, the melody rule set overrides the bass.
Other inheritable voice designations are available, depending on circumstances. Designating a line of one or more pitches as “separate” cancels the application of relational constraints to those pitches. Pitch pairs within an instance can be designated as “parallel“, similarly cancelling applied relational constraints between the voices, while limiting further paraphrases to parallel motion between those voices. Pitches selected as “optional” require rule-checks against both progressions that include and exclude contiguous groups of pitches with this designation.
A mandatory constraint (applied to all progressions) is the rejection of identical adjacent instances, since a voice-leading tree is intended to delineate harmonic, rather than rhythmic, development. A mandatory yet mutable linear constraint defines the set of permitted melodic intervals within voices.
Melodic intervals greater than nine semitones, which inherently suggest a change of register through octave displacement, require that any relevant linear constraints be applied not only to the line as is, but also to both the line as if no displacement occurred within the paraphrase solution itself, and to the entire line without any displacement whatsoever.
Harnessing tensegrity arrays
Ultimately, by applying voice-leading constraints to both the surface and contextual progressions which arise from paraphrase, the voice-leading tree develops as a pantonal tensegrity array, lending a sense of harmonic stability to the surface progression by balancing counteracting forces of tension. These pervasive levels of tension (which inherently exist between all pitches in a musical work) become subject to a globally-integrated prestress—an equilibrium of tension made possible through the underlying relationships, regardless of whether or not identifiably tonal elements are used.
Then, confronted by a completed surface progression, the composer becomes a wayfarer: perceptually sustained through active engagement with a harmonic landscape, imprinting a perambulatory trail of gestural traces—reshaping a network of connected pitch-points into a multidimensional meshwork of entangled lines. In this way, I can ensure that my work enshrines both method and folly.
Working with computers
Though generally impractical to do by hand, an exhaustive consideration of potential paraphrase solutions includes relational checks between all possible linear combinations within all applicable progressions.
I could do (and have done) this process with nothing more than paper, pencil, and some sisu. However, living in an age when computers are uniquely suited as statistical/comparative tools, I choose to seek a means of automation for the low-level rule-violation checks required to efficiently and effectively create pantonal tensegrity arrays. Offloading this cognitive load will significantly speed up my process, and I will be free to think about new music in high-level abstraction. Unwilling to let computers make musical decisions, I only enlist their aid with dynamic constraint optimization, to compute exhaustive lists of paraphrase solutions which I can then explore.
My proposed custom software, called MeshWorks, will provide an information space to create, navigate, and expand voice-leading trees by solving for all possible paraphrases of a given leaf (first in terms of pitches, then voicing), while enabling the intelligent exploration of those solutions.
Sorting algorithms will be able to arrange possible paraphrases by user rankings (3 stars, 2 stars, 1 star, or no ranking), levels of dissonance, variety in harmonic motion (contrary, similar, parallel, and oblique motions), and similarity of contour to other content (compared to surface-progression instances within the current project, or even the complete history of prior selections across all projects authored by a particular user).
Selected filters will simultaneously narrow the solution set by the presence or absence of user rankings, branching, collapsing, voice crossing, false relations, and/or one or more pitches (abstract or concrete), pitch classes, or pitch-class sets. Instrumentation filters will also identify solutions which meet the physical limitations of a set of one or more instruments, while allowing for explicit differences in performer skill levels.
MeshWorks will operate in two states: navigation mode and paraphrase mode. In both cases, the bottom of the user interface will detail the surface progression of the tree. This horizontally scrolling area will consist of noteheads on a grand staff, displaying the selected instance in the centre, alongside a minimum of nine instances in either direction so it can be viewed as part of a local gesture. In paraphrase mode, all the progressions that arise from the current instance are visualized, as well.
To provide basic visual cues as to the underlying tree structure, a spectrum of shading will be applied to each notehead’s centre, to correspond to the depth of origin for that pitch. (Pitches originating from the root node will display as noteheads with white centres; pitches originating at the furthest leaf will display as noteheads with black centres.) Horizontal spacing between instances will be correlated with the distance of relation between adjacent leaves. The light grey background will fade to white in the presence of a notehead, resulting in a subtle notehead aura which renders minor differences of horizontal distance between instances as more visually acute.
Above the surface progression display, a detailed view offers constraint and voice designation for the pitches within the current instance, voice delineation with adjacent instances, as well as the selection tool (in paraphrase mode) for exploring and filtering paraphrase solutions for an instance.
Other information visualization toggles will highlight similar contours (steps/leaps going up/down), and draw attention to potential concerns for linear interest (apogee and perigee) and line independence (e.g., parallel motion, and nearby instances of simple/compound fifths and octaves).
Surviving alongside people
I worry that I should treat pantonal tensegrity, as well as the proposed MeshWorks software, as a trade secret. I have concerns that patrons and critics may be unlikely to differentiate between the use of computers for constraint optimization, versus the unappealing notion of letting computers compose for you. Some may assume that my role as an artist is diminished by computer use, despite developing the framework myself, selecting constraints from a customized and mutable set, and making contextually-specific and ultimately human decisions based upon my own musical and extra-musical experiences, expectations, understandings, preconceptions, and imaginings. Nevertheless, I am publicly describing my compositional method and proposed software here, under the impression that the vast majority will only be interested in the resultant intuitive, reactive, and emotional impact of my work, anyhow. The music will have to speak for itself, and this explanation of my compositional process will remain largely academic.
The matter of sharing my software with other composers raises the question of authorship. I can rest easy knowing the method and the resulting work are my own, but what of others who might use MeshWorks? Certainly expansion through paraphrase is nothing new, but constraints applied to contextual progressions is a unique idea that took time to develop. Providing a framework to check counterpoint is old news, but exploring constraint optimization to define and sort paraphrase solutions is fuelled by my own circumstances and character. I certainly consider even this preparatory document as part of the compositional process.
To share something useful with colleagues, without anyone being too concerned about authorship, I will design my program as a basic framework that accepts plug-ins which add specific abilities to the larger software application. In this way, the use of general contrapuntal constraints upon a surface progression can be shared, and both myself and fellow composers can have a working environment to create custom constraints and tree traversal methods.
The ideal design would involve a platform-independent, highly-automated, flexible, and modular structure that supports custom expansion. Abstracting the nature of voice-leading for a compositional aid does require a certain amount of my time and skill, but at least I wouldn’t be worried about the musical works of others mimicking my harmonic style. At worst, this program might encourage others to explore their own possibilities within the framework of duple and triple paraphrase—a scenario with which I would undoubtedly be pleased.