ACOUSMATIC COMPOSITION UNDER VERSION CONTROL: TOWARDS A NEUTRAL TRACE Adrian Moore, David Moore The University of Sheffield Department of Music, Sheffield, United Kingdom
[email protected],
[email protected]ABSTRACT it offers another toolset for experienced composers with possible export to the classroom for student composers. No cautious, creative person starts a project With some development we hope to create a tool that will nowadays without a back-up strategy...it is wise prove useful compositionally and enable researchers to to maintain a living archive of all work. [1] analyse the composition process. Acousmatic composition begins with source material 2. WHAT IS VERSION CONTROL? that is processed and reflected upon. Given a set of con- crete sources and a set of build instructions it is theoret- Version control automates the task of managing large num- ically possible to compile a composition from a limited bers of project files often across distributed networks. It number of critical initial sounds. This is analogous to the is most often used in computer software project develop- build process for software. By modifying existing com- ment. The initial commit is version 1. All subsequent positional tools such that decisions and parameters are changes are added incrementally to the repository. Cur- recorded, we construct a set of build instructions that re- rent versions commonly in use include RCS, CVS, Sub- produce the finished work from original source. Using version and Git. Whilst these systems work extremely version control with this methodology to track and record well with text files, there is a problem with version con- development it is possible to explore a trace of the com- trol for sound. Sound files are typically large binary files position process and use some of the features of the latest that do not compress well and although most modern VCS version control systems such as branching, tagging and tools will store this data and version it, the process is in- merging. We demonstrate a methodology for composition efficient. For example, a simple sound reversal will touch that enables the composer to use version control effec- every single sample in the sound file and the average VCS tively and in so doing enables us to more closely examine will have little choice but to store the new file in its en- the composition process. tirety. So can we look at our compositional process and tailor it such that the VCS can manipulate our instruction 1. INTRODUCTION set as text? In order to consider this, we need to examine briefly the composer’s use of software. This project grew from the contrasting work of the two authors: Adrian Moore had been interested in probing the 3. COMPOSITION PRACTICE 1: PROBLEMS composition process, looking at his own practice, how it AND QUESTIONS had developed, looking for general trends, looking at how language and materials work but also how they are linked 3.1. Typical practice for Acousmatic composition to process, method and working environment. Dave Moore had been developing software solutions to a variety of mu- sical research questions ranging from sound diffusion to real-time interaction with instruments. For all his projects generate reflect accumulate mix he used a version control system. Indeed, student course- ware was stored as a read-only repository that students check-out rather than download thus allowing staff to keep the archive ‘live’. Version control is more ubiquitous than many realise as it can be seen working in any wiki. Dave Figure 1. A cyclic based listening approach. wondered whether version control could be used to doc- ument the composition process. He created a prototype Acousmatic composition can be examined simply from piece of software that sits in between a version control this cyclic listening based approach. During early stages system and a number of programs that we use for sound of composition, the composer develops sound from initial manipulation. One might liken this to a ‘track changes’ sources with software, often in a free and open fashion for composers. Even at this early stage of development (a ‘doodle’ stage) relying heavily upon a ‘gut’ reaction to results. Studies of composition processes have always • Store all commands/scripts alongside the sound found that note-taking during this process is time consum- ing and halts the flow of creativity (especially when one • Quickly add comments, search and tag is working in the electroacoustic medium). When asked • Work in conjunction with a version control system to reflect upon a completed work or section, one normally allowing us to snapshot and version our composi- takes a much broader view - formal rather than structural. tion as we move forward Moreover, we tend to add value or tangential information not necessarily conceived of at the time. There’s no harm We currently use Csound and SoX. Both are text based in doing this but we are interested in capturing what was and can be easily incorporated into our database, allow- going on at the time of composition. It is reasonable to ing additional data perhaps about construction or future assume that we can deduce with some degree of accuracy development of the soundfile, perhaps describing the file what was in the mind of the composer by analysing the over and above a file’s name. If we are to tag sounds in processes being used. Given a proliferation of software, some way we need to work out what that data might be. graphic front ends and limitless ‘doodle-space’, it is often As mentioned earlier a substantial amount of the ‘why’ is counterproductive for the creative artist to be confined to stored in the ‘how’ so long as someone conversant with one particular environment. It is our aim to incorporate the tools is probing the database. An interesting question this flexibility but at present, we rely solely upon text- that keeps occurring however is, ‘does this assume a gen- based software and this poses a number of barriers to the eral approach to electroacoustic composition?’ above mentioned freedom. 3.4. Identifying classes of transform 3.2. Issues arising from multitude of compositional ap- proaches available to composers Whilst the transformation stage can essentially be seen as linear for development and combinatorial for mixing, • Serendipity is hard to document (and difficult to other transforms are possible and pose additional compli- recreate!) cations. • A composer may be rigorous but their motives are • One to one transforms : a single input file produces often hidden a single output target (reverse, filter, reverb etc.) • Composition is often hindered by note-taking • Combining transforms : multiple input files pro- • You only begin to probe what you do when you are duce a single target (mixing, compositing) asked to ‘do’ in a slightly different way. eg. moving • Splitting transforms : single input files produce mul- from graphical interface to commandline. tiple output targets, (split, channel split, split on • Analysis of a completed work is often based on what zero crossings, frequency band split etc.) is heard and rarely related to what was done One to one transforms are simple to reproduce through • Self-reflection without documentation relies too heav- make dependencies: only one file is dependent so we need ily upon intuition only store the transform info and the output target iden- tifier. Combining transforms are relatively simple also: 3.3. Composition solutions: wrapping available tools many files are required but a normal make rule can de- scribe this. Splitting transforms are more complicated: a An earlier example highlighted the difficulties of version make rule produces a single target and cannot describe the controlling a simple sound reversal. Instead of storing the multiple targets of a split. To deal with this our approach results of the transformation we could store the instruc- is to use a pre-analysis phase to create independent rules tions necessary to repeat the process. Assuming that the for each of the multiple outputs. For example, a stereo process is guaranteed repeatable then this transitional file to mono channel split is normally achieved with a single can be discarded until needed for subsequent processes. transform that creates two files. In our system we record If we can document the precise processes taking place two transform targets for left and right respectively - the throughout the composition then it’s feasible to recreate process is redesigned in such a way as to reproduce either all transforms from a script. Since the transforms become of the targets independently. This is useful since subse- transitional files we need only version the source material quent transforms on one of the mono parts can be recre- and transformation script. This tool already exists: make ated in isolation. has been used for software development for some time. It reads a makefile which specifies all the constituent files and dependencies required to build a final program or li- 4. COMPOSITION PRACTICE 2: DEFINING brary. Therefore we need to construct an environment that AESTHETIC PURPOSE enables us to: The problem of composition is that our knowledge and • Archive our work and help us probe our decision experience is nuanced to a degree that makes explanation making processes very difficult. To say that the explanation exists and is to be discovered in the art work is not a solution. In or- descriptor process (per multiple der to probe the link between our audition of a sound, our sounds) interpretation of it and our understanding of just how we Sound A works mix (vertical) or montage are to use it, we suggest that composers might polarise with Sound B (horizontal) their description of sound so as to to uncover degrees of Sound A is rich hybridise through convolu- nuance, thereby more clearly defining the continua upon dynamic, Sound tion which sounds reside. We also suggest that composers sim- B is pitched ilarly polarise their transformations and use these in a re- Sound A is rich hybridise through filters sistive fashion, working against the sound. It would be dynamic, Sound (resonance or comb) useful to probe the description of sounds against implica- B is pitched tive manipulations. This theory assumes that numerous Sound A is sus- envelope follow routes are possible but suggests that general trends can be tained, Sound B found. Can we distinguish between an objective response is pulsed or angu- to sound and a subjective, strategic and poetic intention? lar Take a simple yet incomplete set of descriptors. • reality (artificial/natural, real/unreal/surreal) Table 2. Hybridisation procedures. • size (big/little, heavy/light etc.) Similarly, when working with spatialisation our natu- • colour (light/dark, bold/blurred etc.) ral appreciation of sound may signal processes as in Ta- ble3: • appearance (clean/dirty, clear/cloudy, dry/wet etc.) descriptor process (spatialisation) • character (good/bad, brave/cowardly, enemy/friend, Low bass static position in the sub exciting/boring) woofer • scene (position such as near/far) High frequency, quick motion, above our wispy material heads • energy (cold/hot, excited/calm, extreme/moderate) Thematic mate- generally front and centre rial • growth (departing/arriving, ascending/descending, forward/backward, etc.) Table 3. Spatialisation procedures. Applying these to real world situations we could gen- erate processes as in Table1: There is potential for interesting research here. As has been stated, the majority of research into composition is descriptor process (per sound) Ex Post Facto. Storing a neutral trace of the working pro- Gritty (implies filter (lessen), reverberation cess (even if only a part of it) might prove a more inter- broad spectrum) (dissipation) esting point of departure - analysing the ‘why’ through Dull spectrum stretch spectrum documenting and probing the ‘how’. High pitch make low through pitch transposition Low pitch make high through pitch 5. SOUND COMPOSERS MAKE (SCMAKE) transposition Short make longer (reverberation, Our research centres on automating the process of creat- granulation, time stretching) ing the makefile (although in practice we have our own Discrete make continuous through xml based format). scmake is a suite of tools built at repetition and granulation the University of Sheffield to enable sound composers to Continuous make discrete through enve- effectively utilise a version control system. scmake in- lope shaping cludes facilities for building and managing a database of Static (Mono) Add motion either through sound transformations while keeping track of the build panning or granulation dependencies. scmake is based on the premise that the Spatially very dy- make mono entire composition could be remade from source on de- namic mand. All transforms (synthesis, sound edits and pro- cesses) are recorded as the composer uses them and are reproducible as and when the composer needs them. sc- Table 1. Descriptor to process. make uses SHA256 checksums to guarantee that a repeat transform is precisely the same as originally produced: the And when working with more than one sound we might composer can rest assured that the mix s/he made yester- formulate hybridised versions as in Table2: day is the same as the one reproduced today. However, when coding csound it therefore becomes important to might find extremely useful. For example, we may branch seed randomisation. The storage of all transform data al- away in our VCS and indeed take multiple paths. Each lows some interesting analysis of the compositional pro- may develop in a different manner. The fact that one cess, We can in fact graph the chain of transformations branch went further than the other and that we made a used through simple means (Graphviz export). decision to stop is important. The Git VCS captures time elements as we make drastic modifications to our work- ing scripts and represents a permanent memory through speechgranbit1.wav speechgranbitreverse.wav speechtrim.wav spbitgran2.wav commits. It affords reinsertion through merge. speech.wav gransingleshot00001.wav gransinglesholowpass.wav testmix.wav gransingleshot.wav combovertexture.wav flute.wav harpsicord.wav csound_mix.wav harpsicordflange1.w av comboverstable.wav cmbover_short.wav cmbover_poorstretch1.wav combovertextureend.wav cmbover_poorstretchbend1.wav testmix2.wav convolve1norm.wav csound_mix00002.w av csound_mix00001.w av 7. CONCLUSIONS granularhpsc.wav granularhpsc00001.w av granularhpscnorm.w av granularhpsctrim1.w av convolve1.wav This research has demonstrated that version control can be effective to the composer but it highlights the need for new strategies in working with sound files. A composi- tional tool, scmake, has provided the means to explore Figure 2. Example of Graphviz export. these strategies. Work in this area will be ongoing with the expansion of the tool set to include graphic editing of regions from sources, and most importantly a basic mix- 5.1. Build tree operations ing program. To investigate the composition process, sole scmake considers the build tree as a graph of dependencies use of this paradigm will be explored by composers inter- and dependants with each sound transform identified by a ested in seeing the project develop. node in the tree. Transforms are transitional so a number of operations to manipulate the tree are provided. From 8. REFERENCES any given node moving ‘up’ the dependency tree traverses towards transforms that depend on the chosen node and [1] J. Loeliger, Version control with Git. O’Reilly Me- likewise we can traverse ‘down’ the tree towards trans- dia, 2009. forms that are required by the chosen node. With these traversals in mind we consider some operations that can be performed. • Prune: delete any transitional files from the selected node upwards removing database records. • Clean: delete any transitional files from the selected node upwards leaving the database record intact. • Make: make a single node, and implicitly create all required nodes along the way. • Make dependants: make a single node and all nodes that have used it directly or indirectly. Operations not yet implemented but considered: • Copy transform chain: take a new starting node and re-apply all transforms up the chain creating a new chain. • Export transform chains: export a given set of trans- forms into a second database. 6. RETURNING TO VERSION CONTROL With version control comes additional security of logged storage which can be used quickly and efficiently. Not only is the use of this software essential in this project but it enables creative work, written texts, diagrams and other information pertinent to any project to be stored coher- ently. It offers the potential of being used outside its in- tended scope of distributed software development and af- fords a number of interesting ‘diversions’ that composers