sdf PhD





Exploring visual representation of sound
in computer music software through
programming and composition



Selected content from
a thesis submitted with a portfolio of works to the University of Huddersfield in partial fulfilment of the requirements for the degree of Doctor of Philosophy

December 2013

Samuel David Freeman

Minor amendments
April–June 2014

5.3 CirSeq Zero

The work presented here in §5.3, CirSeq Zero, has been described as both a working prototype, and as a software composition. It was created as an exploration, and demonstration, of an idea, but in its final state brought back the question of what may constitute a 'piece' of music. In this case it is the software configuration, embodied as a collection of maxpat (and supporting) files, that is taken to be the piece named CirSeq Zero.

The piece comprises an implementation of the CirSeq circular sequencer concept to control a set of sinusoidal oscillators. There are at least four different ways to interact with the soundmaking aspect of the piece – or in other words to perform it – the most passive of which is to click the toggle labeled 'run random decide cascade', though in this case, still, the performer may wish to change the cycle duration, either before or during the performance. The performer must decide when and how to stop, and there are a great many other possibilities for variation of the piece within each performance. The software configuration may equally be thought of as something other than a composition per se; but surely the questionable-interpretation-of-what-the-thing-is is itself suggestive that it is a 'work of art' of some kind, else why question it?

This section is structured as follows: an overview of CirSeq Zero is provided in §5.3.1, and §5.3.2 gives an explanation of its technical workings, including details of how one may interact with the piece. The random decide cascade aspect is discussed in §5.3.3 under the heading: Making decisions to organise the soundmaking. Because that cascade is an example of automated decision making, there is discussion, also in §5.3.3, of further choices that are to be made in performance of the piece. To conclude this section of the document, §5.3.4 provides an example of how CirSeq Zero can be performed via meta-patch control; the exploration of CirSeq Zero through the meta-patch described, there, becomes the basis for discussion in §5.4.

5.3.1 Playing (with) the piece: an overview of CirSeq Zero

(5.3.1.a) The CirSeq Zero patch

[…] CirSeq_Zero.maxpat […] is a slightly edited copy of cirseq_021c.maxpat – a patch that is also included, and was last modified September 2010 – just four cosmetic changes were made to it for its presentation here.[n5.4]

[n5.4]   The only changes made to the patch were: (1) to hide the sub-patch windows; (2) to set presentation mode as the default view of the top-level patch; (3) to resize the window of the same; and (4) to make green the 'on colour' of the ezdac~ object.

When CirSeq_Zero.maxpat is loaded it will look as shown in Figure 5.9 (minus the numbered annotation areas with which the image of the patch is here augmented). The annotation areas depicted shall be referred to as: (1) the output section; (2) master phase; (3) lcd-GUI; (4) cycle duration settings; (5) system selection section; (6) set all messages; (7) toggle to run random decide cascade.

maxpat with overlay
Figure 5.9: CirSeq_Zero_0a

(5.3.1.b) CirSeq Zero patch annotation

  1. The output section includes a scrolling sonogram display of the audio output, and a gain~ object, as well as an ezdac~ object. The master output level is initialised at a value of 64 on the gain~ object; depending on the soundmaking settings a more nominal gain value of 110 is recommended.

  2. The master phase display is a scope~ object connected, as shown in Figure 5.10, to the phasor~ object that drives the patch.[n5.5] As time passes and the output of the phasor~ loops zero to one over and again, the angle representing now in the time-space representation of the period is shown on the scope~; the +~ 0.75 object offsets the phase value in order to let the period representation start/end at the twelve o'clock position.

    [n5.5]   Note that the position of the phasor~ object within the patch has been changed for the purposes of this illustration.

    Figure 5.10: masterPhase

  3. The lcd-GUI is the visual focus of the piece; it is where the interactive visual representation of the CirSeq concept is manifest. The coloured nodes of the all six quantisation systems are visible in Figure 5.11 below, with a pattern of non-zero amplitude spiroidial settings also shown. The visual manifestation of each spiroidial is allowed to overlap with those nearby because it is only the node at the centre that is clickable. The colouration of the nodes has been made to follow the same logic that was expressed as differently shaped dots during illustration of the CirSeq inception as given above (§5.2).

    The spiroidial widgets (described in §4.4.2) can be moused at any time, though it is easier to locate them in the time-space when the nodes are visible (see annotation five, below). The currently selected node is framed by a green square, and its values are displayed in the top left corner of the lcd-GUI; click in empty space, within the lcd-GUI, to deselect. The parameter dimension of the spiroidial that is active for adjustment during click-and-drag is indicated by the display of an ASCII character beside the parameter name on lcd-GUI; see table:

    Indication char Short name Parameter name
    | amp Amplitude (linear)
    < pC pitch-class
    > pH pitch-height[n5.6]

    [n5.6]   Note the discrepancy of the term 'pitch-height' being used as opposed 'octave-level' that is more common in my work; and, also, that this value is not integer quantised.

    Figure 5.11: CirSeq_Zero_1

  4. The cycle duration settings make use of the 'Global Transport' aspect in the MaxMSP environment; the 'bpm' tempo value can thus be set from any patch active within the environment. Below the 'bpm' number box are messages for eight note-values given in the native format where 1n is a semibreve, 2n a minim, 4n a crotchet, and so on; the currently selected duration value is displayed with the millisecond value of the period.

  5. This section of the patch comprises a set of three plus two clickable messages and a group of check-boxes for selecting which of the six quantisation systems will be shown on the lcd-GUI. The word system is used often within this project as a whole, and its meaning is generally clear from the context of its use; its specific use as a term within this piece, however, adds an unfortunate complication to discussions – that which is a 'quantisation system' in CirSeq Zero has been described above as the set of quantisation points found along a 45 degree square line path in the CirSeq conception. Within this section the word system is used in this specific tense, to refer to those sets of nodes.

    There are six quantisation systems, and these are the nodes created by the hypothetical circles of radii one, two, three, four, six, and eight; these are described, at the check-boxes, in terms of their CMN note duration values in the environment's native notation of 4n, 8n, 8nt, 16n, 16nt, and 32n. The omission of those systems that would be found at radius five and radius seven is a clear example of permitting influence of the environment over technê.

    The three messages that are lists of six values can be used to set the check-boxes as all off, all on, or just one on with the others off. The messages that are the values -1 and 1 can be used to perform a 'rotation' of the list representation of which systems are currently off or on. For a system to be on, in this context, means two things: (1) that it is visible on and lcd-GUI, and (2) that it is receptive to the '/set' messages that are described next.

  6. There are five clickable messages in this section of the patch, each of which starts with the OpenSound Control (OSC)[n5.7] namespace '/set' and is followed by the keyword 'all': these messages thus target all nodes that are currently visible on the lcd-GUI to set parameter values. The /set all amp 0. is the only message here to give a specific value; to the left, top, and right of that are messages to randomise the pitch-class, amplitude, and pitch-height parameters of the visible nodes; the bottom of the five messages is to randomise all three of those parameters.

    [n5.7]   cf. (Freed & Schmeder, 2009)

  7. Lastly is the toggle to run the 'random decide cascade' that is discussed further in §5.3.3 below. In brief, this feature of the piece is an automation of triggering the '/set' messages of annotation area six; it also automates the selection of which systems are currently receptive to those messages, such that data values for the parameters may be set at one time and remain unchanged during subsequently triggered messages that change the parameters values of other systems' nodes.

5.3.2 Technical structure

(5.3.2.a) Original documentation

There is, within the CirSeq_Zero folder in the chapter5 directory of the portfolio, a folder named cirSeq_021_doc which contains structured documentation of the work. That documentation was created in the FreeMind software environment. Exported versions of the structured information from the mind-map are also included. These files were created in 2010, and they provide details of what each patch, sub-patch, and abstraction is for, including notes about the arguments and input messages they take, and about the data that is shared between different patches. The png export of the mind-map is also included here, as Figure 5.12 below.[n5.8]

[n5.8]   In print copies of this document this figure will only give an impression of the hierarchical manifestation, whereas in digital copies the text will be human readable after zooming.

Figure 5.12: cirSeq_021mm

(5.3.2.b) CirSeq Zero structure

A flowchart representation for the CirSeq Zero patch is shown in Figure 5.13.

Figure 5.13: CirSeq_Zero_flow

The CirSeq quantisation systems are implemented as an abstraction, arguments to which specify the number of nodes in the system, a name to be used for a jit.matrix, and a name used as an OSC namespace for the system. The abstraction is patch is called cSeqQsys, and a flowchart representation of its structure is shown in Figure 5.14, below.

The Jitter matrix in cSeqQsys has four planes of float32 data type, but only those planes indexed as 1, 2, and 3 are in use:[n5.9] one plane each for data of the 'pClass', 'pHeight', and 'amp' parameters. The size of this one dimensional data matrix is determined by the specified number nodes in order to give, in each plane of the matrix, one cell per node. Messages to and from cSeqQsys are delivered via send objects, and the patch has one inlet (for signal from the master phasor~) and one outlet (for the audio signal of a sinusoidal oscillator).

[n5.9]   Perhaps there is reference within the programming here to the Jitter convention of ARGB matrices of which plane 0 (the alpha/opacity channel) is generally used in my work only as a secondary concern.

Figure 5.14: cSeqQsys_flow

(5.3.2.c) Methods for control

Spiroidials on the lcd-GUI provide one way to interact with the piece; another way is with the clickable messages in the patch; a third possibility is that of creating a meta-patch that would send suitably formatted OSC messages to CirSeq Zero via the send object namespace 'maxhole' in MaxMSP. Although CirSeq Zero is not network enabled, the idea behind using an r maxhole object in the cSeqQsys abstraction – through which all messages would pass, with only those that are locally relevant being processed – was to prepare the piece for being controlled by external software structures that may either be local or on remote computers. A meta-patch for CirSeq Zero could, when running in the same MaxMSP environment as the piece, be a simple as two objects – udpreceive connected to s maxhole – which would facilitate reception of messages via network connections.

OSC messages that target an instance of cSeqQsys begin with /csqs, which is followed by the name of system (/4n, /8n, /8nt, /16n, /16nt, or /32n) and the final OSC namespace is /set.[n5.10] The data part of the message is then a MaxMSP list: the flowchart in Figure 5.15 describes how valid messages can be constructed to either specify or randomise node parameter values. Mouse interaction with the lcd-GUI generates messages that are formatted – in the visual terms of the data section of this flowchart – by taking three 'either' routes (to give the nude number followed by the parameter name and a value). Four of the five clickable '/set' messages (see annotation six, §5.3.1) give access to all four possibilities that can arrived at in the flowchart after two 'or' routes are taken.

[n5.10]   A /get feature was started, but then removed during development; only a suggestion of that remains in the maxpat.

Figure 5.15: csqsMessages

5.3.3 Making decisions to organise the soundmaking

(5.3.3.a) Similar concepts at different layers of abstraction

The valid options that are implemented within the data part of the CirSeq Zero control message format are shown, in Figure 5.15, as a structure of either/or decisions. I have organised this visual representation of those code-level options so that, for each decision, the 'either' route is pointing to something-more-specific while the 'or' path leads to something-less-so. At a different layer of abstraction – at the level of decision making during real-time performance of the piece – there is a similar either/or structure that has been implemented to automate changes in the CirSeq pattern; the structure, within CirSeq Zero, that automates message triggering can be referred to, for short, as the cascade.

The cascade of randomised decisions was added to the CirSeq Zero patch almost as an afterthought: the intention had originally been for messages to be received from beyond the patch in order to change the CirSeq pattern in real-time. When the patch was operational, however, and completed enough to be fulfil its remit as a working prototype, I chose to embed an example of the sort of external control I had had in mind.

(5.3.3.b) An additional aspect to the piece

That the cascade aspect of this piece was a later addition to the work is reflected visually by its coding within the maxpat. For comparison, here, an overview of the layout of the CirSeq Zero patch in its non-presentation view (while the patch is locked) can be observed in Figure 5.16. When the patch is unlocked (as shown in Figure 5.17), it can be seen that a sprawl of objects have been placed into the available space that was remaining in the patch.

Figure 5.16: CirSeq_Zero_nonpres
Figure 5.17: CirSeq_Zero_nonpres_unlock

As a side note to the discussion, it is of interest that the process of analysing a work in this way brings to mind a concept of 'software archaeology'. The archaeological aspect could certainly be taken further by the inclusion of the many pages of paper based notes and sketches that were produced during the development of the piece. While in this case it is my own work that is being investigated – a narrative being constructed from a combination of memory and such archaeological perspectives – such principles have wider reaching applications. To rein in the diversion, one may consider how some models of traditional musicological analysis take the CMN score as the basis of exploration, and that in software mediated music the code structures are artefacts through which the substance of the music can be explored (which is to again reinforce ideas already expressed). Ideas surrounding the role of the software itself as a musical artefact, and that the musical ideas being explored in composition are manifest in code before sound, have been reoccurring concerns encountered by this project.

(5.3.3.c) The cascade of randomised decisions

The process that is active while the 'random decide cascade' is set to 'run' (see annotation seven, §5.3.1) begins with detection of when the cyclic traversal of the time-space crosses the phase position represented visually as the twelve o'clock angle. At that moment (at each of those moments) there is a one-in-four chance that the rest of the cascade will be triggered. In other words, every time the master phase ramp restarts – hypothetically when it has reached one and begins again from zero – there is a 25% chance of a change being made to the CirSeq control pattern that is represented on the lcd-GUI and heard manifest in the audio output.

The cascade itself could be compared to a Markov chain, but it was not particularly devised as such. In practice it is an intuited delegation, to the software, of what may otherwise be caused by human actions: the triggering of messages that introduce changes to the CirSeq pattern. The structure of the cascade is the manifestation of compositional choices that distribute changes in time with certain probabilities and interconnectedness. The sprawling appearance in the code should not be mistaken for haphazardness in the design of the algorithm: the connections were made with mindful awareness of their implications, and have undergone refinement while listening to the changes caused in real-time (a form of live coding during the composition of the software).

The cascade is based on a succession on binary choices: at each decision point in the chain, the output of a decide object is used to trigger either an action, or another either/or-decision (there is, however, also a feedback path, and dual action decisions that make the cascade a little more complex). The actions are mostly those of triggering the same '/set all' messages that are clickable in the patch (top-right corner of CirSeq Zero maxpat in presentation view); remember that these messages will only be sent to the quantisation systems (cSeqQsys instances) that currently have their nodes visible in the lcd-GUI. For that reason there is also a chance, within the cascade, of enacting a change of which node systems are visible.

(5.3.3.d) To unravel the cascade

The object boxes and connections that comprise the cascade have been copy-pasted from CirSeq_Zero.maxpat, rearranged in a new patch to make the structure they create more readable, and then saved as random_decide_cascade.maxpat (included in the portfolio folder). The additional annotation also put into that patch can be read in Figure 5.18: each decision point in the cascade has been highlighted.

Again there is a sense that some sort of musicological software archaeology is going on here, and the annotations in this study patch (Figure 5.18) are the product more of analysis than of recollection. My own interpretation of the structures exposed by these annotations include, again, observation of similarities across multiple layers of abstraction. For this aspect of the piece, however, I choose to present the work as is, without prescribed exegesis, so that the reader may draw their own conclusions; the technical details are described while the subjective matters of significance or aesthetic value in the configuration are left for individual interpretation.

Figure 5.18: random_decide_cascade

(5.3.3.e) Deciding the duration of the cycle period

An important decision to be made in the performance of CirSeq Zero is that of specifying the duration of the cycle period. By embracing the connection that the CirSeq concept has to 'common time' the piece, in its adoption of the note-value timing aspects available in the MaxMSP environment, has also inherited that de facto default tempo of 120 beats per minute (bpm). The GUI (message) controls provided in the presentation of the patch give access to a set of whole – as opposed to dotted or triplet – note-values (1n, 2n, 4n, … 128n) for the duration to be represented by the CirSeq time-space. The duration defaults to the note-value of '1n', which at 120 bpm equates to a 2000 millisecond period. It is recommended that this be changed, either prior to or during performance. Other than selecting from those note-values for the duration, the only way to control the period represented on the time-space is to manipulate the tempo of the global transport in the MaxMSP environment, and the example meta-patch discussed in §5.3.4, below, is based on that manipulation.

To elucidate the next point it would help for the reader to follow the described actions in the CirSeq Zero software. Assuming that the patch has just been opened, the data matrices will not yet contain valid data values; to make the nodes of all six quantisation systems visible on lcd-GUI (either check each box, or just click the 1 1 1 1 1 1 message); then, to randomise the spiroidial parameters, click the /set all random all message. Make sure DSP is on, and a repeating pattern will be heard; for nominal monitoring level, set the output gain to a value close to 100. Having started the piece we are now ready to begin a brief exploration of tempi.

Set the tempo to 93.75 bpm and notice that, with the duration '1n' selected, the period is of 2560 milliseconds; also observe the particular distribution of specific frequencies at different amplitudes that – having been defined as a CirSeq pattern, and displayed on the time-space lcd-GUI – are graphed over time on the sonogram.

Select '2n' and the duration is halved to 1280 milliseconds, and the pitch pattern is compressed in time. There is a doubling of speed/halving of duration for each consecutive subdivision at the set tempo: '4n', '8n', and so on to the right in the CirSeq Zero patch. At '64n' there is a 40 millisecond cycle duration, which is the period that equates to a frequency of 25 Hz, close to the threshold between rhythm and pitch in human perception of sound. At '128n' there is a 20 millisecond period and the temporal pattern of pitches that was (at the cycle duration of '1n') sounding as a rhythmic phrase, is now manifest as timbral texture. The distribution of energy in the frequency-domain that is prescribed by the CirSeq pattern remains while the temporal distribution is lost as an attribute of the sound.

A 20 millisecond cycle duration hypothetically gives a fundamental frequency of 50 Hz to periodic waveform being synthesised. In practice, however, the experience is not of a tone with that as its fundamental frequency; a personal observation that I ascribe to the fact that the spectrum of the sound produced is unlikely to contain the characteristics of a harmonic series based on that hypothetical fundamental frequency. Rather, it is that the specific frequency values defined by the spiroidials in the CirSeq pattern that are dominantly heard as the constituent partials of the output.

Figure 5.19 shows the sonogram display of a randomised CirSeq pattern that was played at 93.75 bpm while the duration values from '1n' to '128n' were selected in turn.

Figure 5.19: sono_example

Another way to experiment within CirSeq Zero is alter to the bpm value while other parameter are kept the same. With '128n' selected, the tempo value can be manipulated to give a wide range of cycle durations: from 1874 milliseconds (at 1 bpm) to less than 1 millisecond when the tempo is set in excess of 1878 bpm. Strange and wonderful things can be heard when soundmaking at such extreme bpm. The screenshot in Figure 5.20 was taken with the tempo at 2000 bpm, and it shows the manifestation of a visual alias pattern in the master phase representation on the scope~ object. The meta-patch described, below, in §5.3.4 explores this territory further.

Figure 5.20: 2000bpm

(5.3.3.f) Contextualising the blurring of lines on the time-domain continuum

CirSeq was devised as a concept to provide a visual representation of a time-domain period where the basis of that representation is comparable to the geometrical basis of the spiroid-frequency-space concept. There was a conscious decision to put out of mind that the concept of frequency is itself a property of the time-domain, and that any period duration can also be expressed as a frequency value. The continuity of those perceptual domains, however, could not be ignored.

A pattern of frequency and amplitude parameter values specified in the CirSeq time-space is experienced as a repetitive sound possessing attributes of rhythm and pitch when the period duration of the time-space is akin to a bar of CMN. Changes to the CirSeq pattern are heard as alterations of those attributes in the sound that is made. To create a working prototype of that modest specification was the primary objective for implementation of the CirSeq concept, but as was the case with my model of a gramophone (§3.4), the software manifestation of the concept provides much more soundmaking potential than may have been suggested by the original remit. Changes that are made to the CirSeq pattern of frequency and amplitude parameter values – when the period duration specified for the time-space is a short enough – will be perceived as alterations to the frequency-domain aspect of the sound.

Such an exploration of the continuum between the rhythmic and pitched time-scales of music can be contextualised by the work of Karlheinz Stockhausen. Writing in a paper translated and published in Perspectives of New Music (Vol. 1, No. 1), Stockhausen (1962) describes the use, in the composition of Kontakte, of pulse generator, filter, and audio-tape manipulations to navigate that continuum. Stockhausen describes the 'concept of a single, unified musical time' (1962, p. 42, emphasis as in source):

the different perceptual categories, such as color, harmony and melody, meter and rhythm, dynamics, and “form,” must be regarded as corresponding to the different components of this unified time

Writing for the same journal (35 volumes later) Michael Clarke (1998) reflects on how the unification described by Stockhausen was, however, mostly conceptual in the composition of Kontakte:

He does not here bring “all properties under a single control” (Stockhausen 1962, 40). Although pitch and rhythm are shown to be a single continuum, three different aspects of the sound are manipulated independently using different pieces of equipment (Clarke, 1998, p. 255)

The computer, by the end of the twentieth-century, was able to offer a greater sense of technological unity to the practice of electronic music making. Clarke employed the FOF method of granular synthesis 'to demonstrate that the techniques used by Stockhausen [were/are] still available' through software, adding that 'the digital realization [of an extract from Kontakte] suggests new possibilities for the concept of unity' (Clarke, 1998, p. 230).

While this contextualisation is certainly applicable, it is not cited as a source of inspiration to the work. Just as it was a stepwise, ground up, approach to a quantized circular time-space specification that led, from the interaction of concentric circles with a cartesian-coordinate grid, to a structure that already had a well known existence (common-time), so too did my exploration of sound in CirSeq Zero bring to the fore that well trodden conceptual path of 'unity' within composition.

Such contextualisation could well be extended to inform many other aspects of this project, but in that way would direct attention away from the piece being described. Returning, therefore, to commentary which had previously made the transition from the rhythmic realm to that of pitch-like durations, the final illustration of performing CirSeq Zero (without extension) is of how the cascade is manifest at those high-speeds.

(5.3.3.g) Running the cascade with pitch-like durations of the cycle period

When the cycle duration has a magnitude of several seconds, the automating cascade has a very gradual affect on the soundmaking of CirSeq Zero: there may be many iterations of the same CirSeq pattern before any change to that pattern is imparted. Letting the cycle duration encroach on the frequency-domain allows the changes made by the cascade to occur rapidly. The cascade triggered changes then become the aspect that is heard as rhythmic while the sinusoidal oscillators, that were intended to be the medium of rhythmic structure, become elements of timbre.

Running the random decide cascade at 256 bpm and '64n' (14.648 millisecond cycle period) results in a sound of almost vocal quality. The reader is invited to hear these settings manifest in sound through the software. For illustration, nevertheless, two screenshots of the sonogram in the patch, taken while soundmaking with those given settings, are provided in Figure 5.21. Periods of silence can be seen in the upper of the two sonograms; these were introduced by the cascade, and such gaps in the sound punctuate the otherwise drone-like textures. The lower sonogram includes visual examples of where/when particular frequency bands have been sustained while the surrounding spectra has changed; this is caused by the cascade changing its selection of quantisation systems without zeroing the amplitude parameters of those nodes that are no longer targeted for change.

Figure 5.21: sono_two_up

5.3.4 Meta-patch: an example of external control

To demonstrate how a CirSeq Zero meta-patch may be designed the portfolio folder includes CirSeqZero_example_of_control.maxpat; this patch focuses on changing the tempo to control the period of the time-space. It is designed to be used while CirSeq Zero is set to note-value '128n' in its cycle duration settings. This meta-patch requires human control, rather than being an automating structure as was the cascade that has been discussed.

(5.3.4.a) Annotating the meta-patch

Annotation areas have, once again, been added to an image of the patch, see Figure 5.22:

  1. the /set all amp 0. message is meant as a human readable indication that the remote messages below, rendered in a tiny font, are formatted to send a /set message of that type to each of the six systems;

  2. three messages to specify audible parameters for just one node in the time-space;

  3. the dial can be used to set the pitch-class of that one node;

  4. most of the clickable messages are connected to a $1 message that then triggers input to the line object, and the output of that sets the tempo of the transport object;

  5. non-negative integers set the ramp time in milliseconds for the line object;

  6. as discussed below, it is important for this patch that MaxMSP is running DSP at a sampling rate of 44100.

Figure 5.22: cs_eoc

(5.3.4.b) Exploring the effects of aliasing

It was noted in §(5.3.3.e) that, in addition to yielding strange and wonderful sounds from the CirSeq pattern, extreme tempo values would – in some cases – manifest on the master phase scope~ display as aliased patterns; the example of 2000 bpm was illustrated in Figure 5.20. It is important to recognise that this visual aliasing is as much to do with the sampling rate of the system and the buffer settings of the scope~ object as it is to do with the input parameter value. Whereas the scope~ buffer settings are relatively inaccessible to the audience of the work, the sampling rate of the MaxMSP environment is more easily changed; indeed a popup menu for doing so has been provided in this meta-patch.

The tempo values that have been arranged in the clickable messages of this patch were selected after playing with the tempo by mousing the number box in the CirSeq Zero patch: it was found that from a single soundmaking node in the time-space it was possible to attain a wide variety of spectra, but also it then became apparent that the scope~ display would sometimes converge to geometrical figures. The meta-patch was developed by taking copies of the message box that is connected to the tempo outlet of transport object, and appending a text description (for human readers, not for use within the code of the software) to each bpm value. By repetition of that process, for successively identified alias pattens of interest, the collection grew to what is thought of as a control layer for the piece, with a particular focus, which could be the basis of further work beyond performance of CirSeq Zero. The focus of the exploration in this meta-patch, on selecting soundmaking parameter settings based on predisposition to favour simple geometrical forms, led to some interesting discoveries in the sound.

(5.3.4.c) Explorations of soundmaking guided by shape

By starting with the one node beep at 1 bpm (remember this is a cycle duration at '128n'), and then slowly increasing the tempo, the specific frequency heard at discrete times becomes a continuos tone with an increasingly wide bandwidth in the frequency-domain. Figure 5.23 is a screenshot showing the CirSeq Zero presentation after performance of the described accelerando; to hear the effect, the reader may recreate the same thing by setting the ramp time of the meta-patch patch to 4321 milliseconds, and then clicking, quite quickly, the vertically arranged sequence of values from 1., to 3., 9., 21., and so on, to the message that reads 430.751007 twelve sided polygon. The dodecagon being described in that message can be seen in the master phase display in Figure 5.23; in real-time the polygon alias at this setting is found to be rotating, and 'fine-tuning' the tempo value can change the speed and direction of that rotation.

Figure 5.23: dodecagon

At 1722.84 bpm the form of an equilateral triangle was observed in the phase display, rotating clockwise. My understanding of this manifestation is that that triangle is made of the only three points at which the cycle phase is being sampled. I suspected that halving the tempo value would, by doubling the cycle period, double the number of points being sampled. A hexagon did, indeed, form by halving the tempo, and the dodecagon alias pattern that is illustrated above was found by halving that value again.

After more playing with tempo sweeps – enjoying the sonic aspects of aimless jumps in speed, quite expecting to break something, but not achieving any reproducible glitches (one probably could if one were to set that as an objective) – a two-ended alias formed on the phase display. From this, the rotating shapes of a square and an octagon were easily found.

A different bpm value was also found that formed a square alias pattern on phase display, which led to a second octagon and another two-sided shape, again based on 'octaves' of the tempo value. As a general rule, for this CirSeq pattern with just one node having amplitude, it seems that doubling the number points in the master phase alias pattern also doubles the number of partials present in the sound.

Mathematical prediction of the aliasing in the audio and the phase display may well be possible, if one were so inclined to calculate such things. This project, however, is content to present this as an experiential phenomenon made possible by the CirSeq Zero composition, and the reader is encouraged to explore the possibilities offered by the work.

Screenshots of the phase display plus tempo value above it, and a portion of the sonogram below, were taken for most the tempi listed in the meta-patch; these screenshots were then compiled into a single image file, as shown in Figure 5.24. At either end of the very wide image is a lesser cropped screenshot of the patch showing time varying spectra obtained from that one sounding node in the CirSeq time-space.[n5.11]

[n5.11]   [click the image to view full-res]

maxpat composite image
Figure 5.24: phase_shapes


← 5.2 CirSeq inception

5.4 Aesthetic analogies in the exploration of CirSeq patterns →