5 – Dialogic Coding as a Re flexive Practice
5.4. Conclusion: Responsibilities for Change
Concluding this list of skills of the virtuosic algorithmic performer I want to return to the notion of negotiation and balance. I have outlined in the previous chapter how the performer balances her different perspectives and responsibilities. Expanding on this I propose now how this negotiation is actually one between the experiences of immersion and outsideness. As I demonstrated earlier the immersive experience precedes that of stepping outside but with minimal distance between them in a movement of oscillation between the states. The performance situation of the improvising group puts much pressure toward interactional synchrony which stands in contrast to the 'algorithmic time' in which the apparatus operates. As another suggestion for approaching this conflicting opposition I offer this final strategy into the direction of a creative solution.
5.4.1 Slow Programming or to Embrace Asynchrony
This strategy is dedicated to the challenge of interactional synchrony in performance. As I described above, the performance situation of free group improvisation require a certain readiness in action and an eagerness to participate and respond to others. This puts a pressure on the activities of the algorithmic performer, particularly for live programming. In my practice I have frequently experienced typing errors and interruption in the creative thinking process as a
consequence of this pressure. Such pressure has not been helpful for the creative
musical process: it inhibits well-considered thinking and suggests the use of simple phrases or premature inventions. But the fact of 'being too late' is actually built into the hierarchy in live programming as Julian Rohrhuber concludes:
because programs are plans, or propositions for the future, changing such a plan in its unfolding cannot be immediate and transparent at the same time. From the beginning, Just-in-time-programming97 has therefore been a tongue in cheek cover term for the truth: a program is always too late. (Rohrhuber in Blackwell et al., 2014: 151).
What Rohrhuber insinuates is that 'just-in-time-programming' is in fact just-in-time
enough for it to be perceived as synchronous action.98 However for a creative
97A synonymous term for live coding.
98In praxis, computer music applications can deceive the human listener's perception into
experiencing an immediate gesture-sound (kinetic-sonic) connection. This is the aspect of latency in audio software– the time that passes between a (kinetic, energetic) control event and its resulting (sonic) output caused by the processing time of the algorithms and the computer hardware. If it is significantly small then the action and its result will be perceived as synchronous.
strategy I extrapolate from this that a performer may also turn things around and embrace the inherent asynchrony to actually perform 'out-of-time'. This requires the performer to place herself outside the ongoing 'synchronous' improvisatory activity and inhabit a position which allows for the articulation of more nuanced utterances, from a distance so to say. The computational architecture in this sense, supports and, one may say, even invites a slower and asynchronous interaction which takes time to attentively listen before responding. At best it may also result into more complex and intricate musical gestures.
Such a kind of 'slow programming' in fact starts from the affordances of the physical interface of the computer keyboard. Exactly because the typing is an embodied activity the performer is able to think simultaneously to it. Within the timeframe it takes to type a particular code phrase the algorithmic performer is free to reflect on the invented phrase – whether it was really a good idea or not or whether it should be changed into something different. In other words: the delay introduced by the embodied typing may already provide a moment for reflection to silently examine and imagine the sonic result of the code phrase which is being written and then possibly refine it in some way almost 'on-the-fly'.99 I have experienced such moments of 'just-in-time re-thinking' frequently in my practice.100 The 'slow programming' strategy is furthered by the fact that the apparatus does the 'hard work' of sound generation and may do so in automatic ways. Slow programming thus enables the algorithmic performer to more attentively listen to the emerging music and perform a more considered programming which enables the apparatus to play autonomously and in interesting ways, possibly interacting with the improvising group in a dialogue. This strategy will produce a productive form of outsideness which may be changed at the performer's will to change the course of actions towards more satisfactory ways.
99It has to be said that this interaction is made possible by the non-linear function of text editing on a computer: One can always jump to any particular position in the text and change elements (characters) in the written text–different to typing a text on a typewriter.
100To illustrate this case, le me give a description: the typing of a code phrase would start with one or two code words and then be filled with the actual numbers feeding the input parameters of the sound. Halfway through the process I would change my idea – perhaps because of insecurity with the initial idea or of a change in the parallel musical activity in the group – to replace them with an adapted version of the initial idea. In the worst case, however, this silent 'struggle' to articulate a musical phrase in code, in dynamic response to what is being played by other collaborators, may result in never actually actuating a phrase because it seems 'unfit' at the moment when the act of typing has finished.
5.4.2 Increase The Number of Choices
A 'slow' approach may be a creative answer to the demands of immediacy. This is based on a kind of 'intentional subjectivity'. By this I mean to exploit Dialogic Coding practice as a form of 'self-programming'. Through the activity of programming in dialogue the algorithmic performer becomes aware of her own self as well as the 'identity' of the apparatus (as perceived). These identities are the product of mutual interaction and thus cocreative. These selves may only develop freely if diversity and variety are possible, in other words: freedom. For such freedom to manifest a greater number of choices is needed. Diversity and freedom need to be created for both performer and apparatus in conscious acts of programming and through a play and interplay between the participating agencies. This is the performer's virtuosity and her responsibility: the skill to efficiently play with the provided tools and materials to create challenges for herself and the other partners in dialogue, switching between their own perspective and the imagined perspective of the apparatus identity they are about to invent. Following Flusser (2011), this is a 'creative play' with the agency of the algorithms (the apparatus), in a 'controlled game of chance' (dialogue). To paraphrase Flusser this describes the 'envisioner' which I hold equal to the algorithmic performer in Dialogic Coding practice who is deeply entangled with the technology:
[envisioners] are people who press the keys of an apparatus to make it stop at an intentionally informative situation, people determined to control the
apparatus in spite of its tendency to become more and more automated and so to preserve human judgment over the machine. Envisioners are people who try to turn an automatic apparatus against its own condition of being automatic. They cannot create illusions without the automatic apparatus, for the stuff to be envisioned, the particles, are neither visible nor graspable nor comprehensible without the apparatus’s keys. But they can’t turn the envisioning over to the automatic apparatus either, for the technical images produced in such a way would be redundant, that is, predictable, uninformative situations from the standpoint of the apparatus’s program (Flusser, 2011: 19).
He aptly summarizes this symbiotic, yet ambiguous relationship of the human with the apparatus which may also be called a 'two-getherness' (Buber, in von Foerster, 2003: 297). These two agents are an inseparable unity which can achieve impressive (and novel) artistic results but is always at the risk of, on the one hand, falling into a redundancy of results (through algorithmic determinacy) or on the other hand, into a self-alienation of the performer as a functionary for the apparatus (performer determinacy).
5.5. Summary
In this chapter I have presented how the dialogic quality in my practice may enable reflexivity and through this produce transformations. I have related the concepts of outsideness and empathising to my practitioner experiences of immersion in the immediate activity or a stepping out of it.
I have elaborated on how the experiences are evident in my practice and concluded how these have informed the development of the insights gained through practice. Finally, I have proposed strategies for 'virtuosic' performance which works toward transformation through dialogue.
These conclusions will be summarised in the following chapter to highlight the distinctiveness of Dialogic Coding practice as a form of 'ethical' performance practice in the live computer music field.