Home

Musical Composition with Grid Diagrams of Transformations

image

Contents

1. 4 5 3 Scale Rubette Above we mentioned the example of tonal alteration which can be real ized using the Alteration rubette For this purpose we need to specify a scale towards which we would like to alterate tonally Such a scale can be generated using the Scale rubette In his renowned work Thesaurus of Scales and Melodic Patterns Slon47 Nicolas Slonimsky defines a musical scale as progression either diatonic 44 CHAPTER 4 GENERALIZATION OF CONCEPTS Figure 4 5 An excerpt showing four scales ionian whole tone diminished and minor pentatonic individually displaced using the ModuleMap rubette and united using the Set rubette or chromatic that proceeds uniformly in one direction ascending or de scending until the termination point is reached In our context the or der of progression is not relevant the onset of the involved notes can be ignored We define a scale in a more abstract way as a sequence of n positive intervals 7 i1 in where the value of 1 is commonly in terpreted as a semitone as described above Furthermore we define a pair Pmax Q which denotes the pitch range of the output scale and Proot Q with Pmin X proot lt Pmax the root note to which the intervals are seen relatively We then generate the pitches for the coordinates c of the output denotator s 0G Score ci cm as follows PO Proot Pk 1 Pk mod n 41 Pk 1 Pk Um k 1
2. Revert Apply Apply amp Hide Figure 6 5 The settings for performing tonal alteration on a given compo sition 6 2 2 Quantizing To perform quantizing on a given composition we need to define a rhythmi cal grid This can be done using the Rhythmize rubette We first configure a Melody rubette to create a simple melody each of its note having the same pitch this does not matter since do not alter pitch Then we pass the melody on to a Rhythmize rubette which outputs the rhythmic motif for our grid We set the Rhythmize rubette s properties so that this motif s length is exactly one bar here 2 0 time units The grid is then produced using a Wallpaper rubette which just loops the motif ie uses morphism displacing the motif s onsets by 2 0 It is important to make sure here that the obtained wallpaper exceeds the length in time of the composition to be quantized The quantizing itself is finally managed by an Alteration rubette where we define one alteration dimension for onset Figure 6 6 shows a composed network for quantizing the starting pattern of Steve Reich s Piano Phase a typical wallpaper by the way with a grad ually increasing degree low 0 high 1 Part b of the same figure shows the resulting score Even though visually the differences are minimal they are clearly audible The originally even rhythm is disturbed and virtually absorbed by the rhythm produced by the Rhythmize rubette 6 2
3. Karlheinz Essl Computer Aided Composition herbst ton 1991 75 76 Ess196 Eule39 Finale Fux65 GnuGPL Golds4 Huda96 JMusic KDTree Lewi87 Lewi93 Logic Mazz02 Mazz06 Mazz89 Mazz90 Mazz94 BIBLIOGRAPHY Karlheinz Essl Strukturgeneratoren Beitrge zur Elektronischen Musik 1996 Leonard Euler Tentamen novae theoriae musicae 1739 Finale 2007 http www finalemusic com finale Johann Joseph Fux The Study of Counterpoint Gradus ad Parnassum Translated by Alfred Mann W W Norton amp Co New York 1965 GNU General Public License http www gnu org copyleft gpl html Robert Goldblatt Topoi the Categorial Analysis of Logic North Holland New York 1984 Paul Hudak Tom Makucevich Syam Gadde and Bo Whong Haskore Music Notation An Algebra of Music Journal of Functional Programming Vol 6 No 3 pp 465 483 1996 Piano Phase After Steve Reich http jmusic ci qut edu au jmtutorial PianoPhase html edu wlu cs levy CG KDTree http www cs wlu edu levy kd David Lewin Generalized Musical Intervals and Transformations Yale University Press New Haven 1987 David Lewin Musical Form and Transformation Four Analytic Essays Yale University Press New Haven 1993 Logic Pro http www apple com logicpro Guerino Mazzola The Topos of Music Birkhauser Basel 2002 Gue
4. na Note o pa l d v Note os ps l d v s 0G Score n no n3 Pm em Before discussing the possibilities to modify such a denotator we analyze their structure more precisely 2 3 2 Paths As we have seen before compound forms have a tree structure This is also the case for compound denotators However depending on which form types they include there can be some significant differences between them Precisely in a form tree a form of type Power has one branch whereas in a denotator tree a denotator of the same form can have an arbitrary number of branches Also a form of type Colimit in a tree has a branch for each of its coordinators whereas its denotators only have one branch Now to denote a specific form or denotator in such a tree we use paths A path is defined as a sequence of integers 7 io im where each i is the index of the branch to follow from the current to the next node starting at the root Normally we use the form paths for a form and its denotators but because of the above described singularities we have to deal with two problems If the path traverses a Power form in the form tree we take the set of n paths in the denotator tree one path for each of the corresponding Power denotator s elements Therefore if a transformation see next sec tion is to be applied to a denotator of the form denoted by such a form path it is applied to all elements of the Power
5. ALTERATIONS 61 m m m m Li a Ey a a 2 m LI m m u Figure 6 6 An example for quantizing The network a and the resulting score b 62 CHAPTER 6 PRACTICAL EXAMPLES Chapter 7 Conclusion In this chapter we evaluate the software written for this thesis by contrasting its features with those of its predecessor Subsequently we present the diffi culties we encountered during implementation and the limitations of our new product Finally we outline future and other possible projects either using the new RUBATO COMPOSER modules or developing them further 7 1 Evaluation The new implementation for grid structure generation and application is more flexible in many ways as shown in Table 7 1 We summarize and discuss the improvements Due to its extendable structure and the rubette concept RUBATO CoM POSER promotes a modular way of thinking where many functional parts act together in every conceivable way To maximize the flexibility of use the functionality of the OrnaMagic module has been separated in two main and three additional modules The combination of these modules leads to new ways of using grid structures for composition Furthermore the two main modules the Wallpaper and the Alteration ru bette can be used for processing any arbitrary str
6. Properties Properties Properties Properties NT NJ J H Set 1 Zh Wallpaper 7 Big Union Wallpaper 1 AddressEval Set 45 MacroScore po Score power 4 Evaluate at list S Big Union Properties Properties VG _ Properties Properties Properties View View u H ScorePlay 4 Flatten 44 Lo ScorePlay 1 View Properties Set 9 View MacroToScore 6 MidiFileOut ScorePlay 3 ScorePlay 14 messiaen mid Mew 7 po a b Figure 6 4 The network a of a functorial example and an excerpt of its piano roll representation b which represents the whole twelve tone series m is then processed by three ModuleMap denotators to adapt onset pitch and duration for the later needs In the network s left part m is evaluated at the basis vectors of the address space Z by an AddressEval rubette see Mazz06 for more infor mation about this We obtain a Score of twelve notes which is passed on to a network of MacroScore rubettes where a bass line is built by replacing several notes of it by the whole score itself a fractal construction Within this subnetwork the bass line is translated several times range 1 3 by a Wallpaper rubette However what s interesting in the context of this thesis is the right part of the network There the original Z addresse
7. as described in Chapter 4 Section 4 3 3 from the codomain oldC of the given morphism m to the given codomain newC i e the morphism c oldC gt newC Then it returns the composition of the two morphisms m Listing 5 2 WallpaperRubette java composes the input morphism with a casting morphism for the specified codomain example m Q gt Q c R then return m Q gt R private ModuleMorphism getCastedMorphism ModuleMorphism m Module newC throws CompositionException Module oldC m getCodomain if newC equals oldC ModuleMorphism castingM CanonicalMorphism make oldC newC m castingM compose m return During the development of the rubettes for this thesis an even simpler implementation possibility for rubettes has been proposed and created by G rard Milmeister The class SimpleAbstractRubette needs less specifica tions abstract methods to be implemented and provides the functionality of automatic generation of the properties component and apply revert func tionality This possibility has been tried out on two of the new rubettes the Melody and the Rhythmize rubettes as they have just a few basic proper ties The problem that appeared during these adaptations is that there is no way to define relations between properties However this will be soon implemented 5 2 Package Structure and Classes As outlined in the previous chapter the contribution of this thesis are five plugin software
8. gt d Figure 4 2 The grid diagrams for the musical wallpapers in Figure 4 1 4 3 2 Dealing with Multiply Positioned Forms The first problem is that denotators of a composite form F may contain several denotators of a specific Simple form S in their structural tree In this case we name S multiply positioned in F or else well positioned The forms having multiply positioned subforms form a superset of the recursive forms For example a denotator of the recursive form MacroScore contains an Onset denotator on each recursion level and therefore Onset is multiply positioned in MacroScore lt is essential to define for a morphism which denotators of a multiply positioned Simple form it processes In the above definition of a wallpaper Equation 4 1 the morphism Macros is used so that the morphism f Note Note just transforms the notes at top recursion level of a MacroScore denotator the Note denotators in the first level Nodes In our generalization the morphism f is be more flexible it virtually maps from one arbitrary product of Simple forms to another described in next section It is now necessary to find a morphism similar to Macroy but more general which transforms MacroScores as defined but also Scores and denotators of all other Power forms containing multiply positioned forms or not in a useful way The idea is to create a morphism Firsts F F for a form F which uses a search algorithm to determine the Simple denot
9. mod n gt where the 1 are calculated as long they do not exceed Pmaz whereas the 1 are calculated as long as they are not smaller than Pmin For each pi generated like this we then define a note 0 Note with pitch 0 Pitch p and add it to the output scale s Again the other coordinates of the hereby defined notes are standard values i e onset is set to 0 loudness to 120 duration to 1 0 and voice to 0 Figure 4 5 shows a score with some example scales displaced in time The intervals for the whole minor pentatonic scale for example are i 3 2 2 3 2 The Scale rubette is designed in such a way that a list of scales can be predefined so that its elements can be selected by runtime as well as any scale can be defined spontaneously in the rubettes properties see Appendix A Section A 1 Furthermore for simplicity the above specified pai are currently not changeable by the user Chapter 5 Design and Implementation for Rubato Composer The generalized concepts of our work have now been formalized to the point where their implementation can proceed in a straightforward way As de scribed in Chapter 2 Section 2 4 3 the RUBATO COMPOSER framework pro vides all necessary classes and methods for modeling mathematical issues In this chapter we give an example for this direct translation from formulas to code and explain how such code is wrapped in a RUBATO COMPOSER ru bette Apart from this we discuss the ove
10. ColimitForm for example we have to specify a List lt Form gt of forms as coordinators whereas for a ColimitDenotator the coordinate is just one denotator being of one of the coordinator forms For denotator manipulation we mainly perform transformations using in stances of subclasses of the class ModuleMorphism To transform a deno tator its value a module morphism is combined with other module mor phisms using operator methods like sum compose and difference This can be also done by calling the map ModuleMorphism m method of SimpleDenotator For example assume we have a denotator d of form F for module M If we wish to realize a translation of d by m M we create a translation morphism t with TranslationMorphism make M m and then perform d map t To realize more complex transformations we often map some of a denotators morphisms into a more dimensional space using injection morphisms trans form them in this space and finally map the back into the individual spaces using projection morphisms This procedure is described mathematically in more detail in Chapter 4 A method often used in this context is the cast method of the classes Module and ModuleElement 18 CHAPTER 2 THEORY AND APPLICATIONS 2 4 4 Common Musical Forms in Rubato Composer In RUBATO COMPOSER there are no restrictions to data types as long they are expressed in the denotator format Users can freely extend the form library at runtime The appl
11. Essl96 although some additional restrictions can be defined A random melody can for example be used as a motif for the Wallpaper rubette and consists of n notes on a scale with step size s Q and starting pitch Pstart Q In RUBATO COMPOSER pitch is commonly 40 CHAPTER 4 GENERALIZATION OF CONCEPTS interpreted as MIDI pitch within a range of 0 to 127 where every integer represents a semitone So for example the current ScorePlay rubette plays only notes on the chromatic scale However the Melody rubette has micro tonal capabilities e g for s 2 MIDI the steps consist of quarter tones During creation of a melody the following boundaries are respected Pmax Q X Pmazx the pitch boundaries u Umin Umar 0 lt Umin X Umax the interval up boundaries and e d 0 dmin lt dmaz the interval down bound aries where the interval boundaries are expressed in number of steps of size s From these values a melody m 0 Score ci c4 is generated based on the following pitch sequence P Pstart Pk 1 Dk tk where iz Z is an interval randomly selected from the subsequence of a dmaz Amin Umins Umaz Which contains only the elements a with lt Pk lt Pmax The random selections from are equally distributed The k th note of the melody is then defined as follows O Note O Onset
12. es inet LI ee um has b Figure 6 3 A polyphonic example its network a and the ScorePlay rubette view b 6 1 WALLPAPERS 57 structure of the resulting MacroScore denotator we have to flatten using the Flatten rubette it before converting it back to a Score denotator The embellished drums denotator is shown graphically below the MacroToScore rubette The three denotators with different voices generated so far are then united using the Set rubette the corresponding score is shown on the right hand side of the Set rubette and passed on to the Wallpaper rubette The wall paper used in this example is slightly more complex than the previous ones We have a grid of two affine morphisms f R gt Rand R R with fi c c 46 9 and 0 85 0 0 4 folc 0 112 0 48 0 0 0 85 0 as well as the ranges r 0 1 and rg 0 12 The coefficients in fo s matrix and shift are the result of experimentation with the purpose of obtaining an auditory satisfying result f compresses onset and du ration by a factor of 0 85 and stretches pitch by a factor of 1 12 G Onset Pitch Duration H Onset Pitch Duration Additionally it translates the motif by 4 in time which is the original length of the motif ie the translated motif starts directly after its predecessor By doing this twelve times in a row for the whole range r2 we obtain the left half of the w
13. in denotators and instead be defined as an input denotator This would lead to more flexibility for building networks but it would probably also require new denotator def initions Here is a code excerpt from the Alteration rubette as a short example for the aplication of these rules Listing 5 1 AlterationRubette java public class AlterationRubette extends AbstractRubette implements ActionListener FocusListener private JPanel propertiesPanel public AlterationRubette this setInCount 2 input compositions d 1 and d 2 this set utCount 1 altered composition alt d_1 d_2 public void run RunInfo arg0 PowerDenotator inputO PowerDenotator this getInput 0 PowerDenotator inputi PowerDenotator this getInput 1 if this inputFormAndDenotatorsValid inputO inputi try PowerDenotator output this getAlteration inputO inputi this setOutput 0 output catch RubatoException e e printStackTrace this addError Error during rubette execution F public JComponent getProperties if this propertiesPanel null this propertiesPanel new JPanel add all necessary components return this propertiesPanel public boolean applyProperties public void revertProperties 5 2 PACKAGE STRUCTURE AND CLASSES AT Now here is an example for a translated mathematical expression It is a method used in the Wallpaper rubette that first creates a casting morphism
14. s si oa su e ee ER 61 The properties window of the Melody rubette 68 The Rhythmize rubette s properties window 69 The properties window of the Scale rubette 70 The Wallpaper rubette properties window T1 The Simple forms dialog a and the Wallpaper rubette view Q1 c rrr 72 Chapter 1 Introduction The use of computers for music composition became more and more im portant by the end of last century First of all there are many commer cial software products such as sequencing software Logic Cubase which are indispensable for the production of modern popular music or nota tion software Sibelius Finale However already in 1991 Karlheinz Essl one of today s leading computer music composers said that for entering unknown musical territory the widespread commercial products are not suitable Essl91 For such uses since the early days of computer music composers like Max Mathews Gottfried Michael Koenig and Iannis Xenakis used to write their own software and this has not changed since then Around the same time when Essl made this comment an innovative software product named presto has been released The goal of this software was to offer the reusability of a flexible and mature software product without limiting the creativity of the composer using it It was based on cutting edge mathematical music theory formulated by Guerino Mazzo
15. the difference is 10096 the note is moved exactly to the position of its nearest neighbor If it is negative the note is moved in the opposite direction Additionally different percentages can be defined for the beginning and the end of the global score For every position in time inbetween it is then interpolated linearly So virtually the strength of the alteration field may change continuously For example if it is chosen to be 45 to 65 it will be 10 in the middle of the area There is also the possibility to define a rail to control the direction in which notes move vertically horizontally or diagonally rail is a straight line that passes through the original note As soon as the moved note is deter mined it is projected on this rail If for example we decide to perform an alteration on the onset pitch plane and just the pitch of the notes should 24 CHAPTER 3 THE CONCEPTS OF PRESTO ORNAMAGIC be changed we use the vertical rail 3 3 Examples The OrnaMagic module can be used in many interesting ways The ex amples we present in this section were altogether featured by a simplified presto module named Easy Ornaments which made the rather complex use of ornaments accessible in a easy way For simplicity for all examples we select the onset pitch plane 3 3 1 Looping Our first example is very simple and does not use alteration We define a motif with length in time and define v 1 0 w 0 0 r 0 4
16. thesis he guided me with great competence open mindedness and enthusiasm It was a great experience to write the two papers related to this thesis with him and to contribute to the forefront of music research I wish to thank Prof Dr Oscar Nierstrasz my secondary supervisor for giv ing me the opportunity to work in his Software Composition Group SCG and for taking on all the administrative complications arising from this exter nal collaboration Furthermore I would like to thank him and Orla Greevy from the SCG for the thorough proof reading of this thesis I am grateful to G rard Milmeister and Julien Junod from the Visualization and MultiMedia Lab at the University of Z rich as well as Karim Morsy from the Technische Universitat M nchen for the interesting and helpful discussions and the great time we had Many thanks go to the people work ing in the SCG student pool in Bern for their good company especially Pascal Zumkehr Reto Kohlas and Stefan Reichhart I would like to extend my deepest gratitude to my family and friends for their support for their belief in me and for their appreciation for what I do Florian Thalmann April 2007 vi ACKNOWLEDGEMENTS Contents Abstract Acknowledgements 1 Introduction del 1 2 1 3 1 4 Problem Statement opc 0 2 2 Me re a se Contributions Ee p eS ea en Uu Related Work 2 ooo ns mn Thesis Outline 4 ck
17. value of the Simple de notator SA S c1 is replaced by the altered morphism Alteration SA S c1 SA S for every 1 i lt d 4 4 2 Nearest Neighbor Search As described in the previous section to identify the target for alteration a nearest neighbor function NN is used In presto nearest neighbor search 38 CHAPTER 4 GENERALIZATION OF CONCEPTS NNS is realized using the two dimensional spiral search algorithm see Chapter 3 Section 3 2 1 This is possible as presto deals with discrete values i e the number of coordinate points visited and checked during nearest neighbor search is always finite However this is not the case in our actual RUBATO COMPOSER implementation since Simple denotators accept values from continuous modules We therefore chose to use a common method for NNS the kd tree method Bent 75 The kd tree is a multidimensional binary search tree which organizes points of k dimensional space in a way that allows NNS within a time complexity of O logn Points can be added and removed and from these points the one with the smallest distance from an arbitrary input point can be determined The distance function normally used for space partitioning in kd trees is the Euclidean distance 4 0 ai bi for A a1 a4 B TEE LR To build a preferably efficient kd tree for the elements of an arbitrary Power denotator we decided to cast the value of each relevant Simple denotat
18. which leads to a hierarchy with one level less The conversion from MacroScore to Score is then executed as a lossy conver sion where a Score denotator is created just containing the top level notes ie cutting off all satellites RUBATO COMPOSER features rubettes for converting scores to macro scores and vice versa for selecting macro substructures and for flattening struc tures For more information about the conversion methods and the macro score rubettes we refer the reader to the work of Mors of the musical examples see Chapter 6 in this thesis are realized with scores or macro scores However in the near future RUBATO COMPOSER s musical form library will certainly be extended over and over and it is one of the major tasks for programmers to design their rubettes in such a way that they are able to handle denotators of preferably any possible forms 20 CHAPTER 2 THEORY AND APPLICATIONS Chapter 3 The Concepts of presto OrnaMagic presto provides the facility to build grid constructions of musical elements and to use them in different application contexts which is the subject of this thesis However presto s musical operations are restricted to two dimensional geometry as we will see in the next chapter The module performing these tasks is called OrnaMagic Here we will describe its un derlying concepts 3 1 Ornaments The functionality of the OrnaMagic module is based on the creation and application
19. 0 Score n ne 0 Note oe pe l d v 0e O Onset Mo o ge and De 0Q Pitch m o ge for 0 i 1 Uniting these denotators we obtain 8 Seg U Se U se which is equal to s For more precise information about forms denotators and their operations see Mazz02 We now go on to an introduction to RUBATO COMPOSER the current software product implementing the theories just presented 2 4 Rubato Composer RuBATO COMPOSER Milm06a is an open source Java 1 5 application and a framework for music composition that is being developed by G rard Milmeister It follows the classical Rubato architecture Mazz94 and con sists of a main application and a number of plugin modules named rubettes In a graphical user interface GUI the rubettes can be connected to form a data exchange network which can then be run by pressing a button Ini tially we delineate the GUI possibilities and the rubette concept we take a closer look at the mathematical framework of RUBATO COMPOSER and the data types currently used 2 4 1 User Interface The RUBATO COMPOSER GUI is divided in three areas see Figure 2 6 The main area is a tabbed panel in the center each of the tabs representing s Rubato Composer set rbo s File Rubette Network Tools Help g 16519 06 108 ha wise ia TF Boolean ch Source 2 th Constructor set1 RealSet Display nn ahn Latch Pro
20. 08 1992 used a special technique called rhythmic canon Andr02 where just rhythms are imitated by different voices e Conlon Nancarrow 1912 1997 experimented with melodic motifs and mathematical rhythmic patterns in his work Studies for the Player Piano e Steve Reich 1936 one of the pioneers of Minimal Music composed music based on temporally shifted tiled patterns for example in his Piano Phase More generally rhythm patterns and loopings in many musical styles from around the world can be seen as repetitive grid structures Besides the previously mentioned presto just a few attempts have been made to provide a computer program for building such grid structures All examples stated here have a clearly distinct goal from the contributions of this thesis e Moreno Andreatta et al Andr01 Andr02 implemented Olivier Mes siaen s rhythmic canons for the platform independent composition soft ware OpenMusic Bres05 e Karlheinz Essl provided several related functions in his Real Time Composition Library for Max MSP Ess196 e Several applications of Cellular Automata for MIDI composition have been realized most commonly producing two dimensional grid struc tures for the time pitch plane Burr04 e In the tutorial for jMusic a music composition framework for Java Steve Reich s Piano Phase was reconstructed a typical musical grid structure JMusic Many musical programming languages such as
21. 22 wor Bont we ews RSS o d 2 Theory and Applications 2 1 Music Notation s 2 5 9 m 48 oe o 2 2 Geometry of Notes presto 2 3 Functorial Mathematical Music Theory 2 4 3 The 3 1 3 2 3 3 2 3 1 Forms and 2 9 2 acm ox ana en ee ee e Pow Oe E s 2 3 3 Denotator Transformations and Set Operations 2 3 4 Non Zero Addressed Denotators Rubate Composer zu s ui oen mew be GA ven roe EE Con 2 4 1 244 2 Rubettes 2 525 6 bea x we ee aE 2 4 3 Mathematical Framework 2 4 4 Common Musical Forms in Rubato Composer Concepts of presto OrnaMagic OSES s in Sox Ao Soe Re Be eee eS ed Applications of Ornaments 3 2 Alteration os Y d SO ete aoe EE oe ples wx ake gh tuus RUE aS ee RE dA 3 9 1 Looping 2426263 Rows e 9n vos 3 3 2 Tonal Alteration 3 3 3 QUANIZING ise x 5690 ow ow we a vil iii CONTENTS 4 Generalization of Concepts 4 1 OmaMagies Limitations uo ra 4 2 New Distribution of 4 3 Wallpapers oe s sse ara bw es Rom ee mo Ro kon be 4 3 1 MacroScore Wallpapers 4 3 2 Dealing with Multiply Positioned Forms 4 3 3 Mapping Deno
22. 78 4 13 A Loudness 112 Now let us create a 1 dimensional wallpaper with range r 0 2 w m f r U First m 0 lt k lt 2 First m U First p U First mUm Um We finally get a wallpaper with 9 notes A Score n1 no ni n5 n5 N3 36 CHAPTER 4 GENERALIZATION OF CONCEPTS 4 4 Alteration The second main rubette the Alteration rubette provides the functional ity for altering one composition to another In this section we generalize presto OrnaMagic s alteration concepts see Chapter 3 Section 3 2 1 for Power denotators After the definition of alteration we reconstruct some of the presto examples for better comprehension 4 4 1 Definition of Alteration For alteration we need e two compositions d A P c 1 C m and A P ca1 can being of form C P being any form of type Power e d alteration dimensions with 5 91 Sa altered Simple forms 5 Sp and Sj Sj for iz jand 0 i j lt d a1 051 ba aj bj R pairs of marginal alteration degrees and R Ra Ra Simple forms according to which the local alteration degree is calculated R Sp and embedded in therefore linearly ordered e a distance function a metric c1 c2 for denotators c1 of form C e and a nearest neighbor function NN c d n for and c of form C so that n cj i
23. ALS Bibliography Andr01 Andr02 Babb92 Bent75 Bres05 Burr04 Coop60 Cubase Ess191 Moreno Andreatta Thomas Noll Carlos Agon and Gerard Assayag The Geometrical Groove rhythmic canons between Theory Implementation and Musical Experiment In Actes des Journes dInformatique Musicale pp 93 98 Bourges 2001 Moreno Andreatta Carlos Agon and Emmanuel Amiot Tiling problems in music composition Theory and Implementation In Proceedings of the International Computer Music Conference pp 156 163 ICMA Goteborg 2002 Milton Babbitt The Function of Set Structure in the Twelve Tone System PhD thesis Princeton University 1946 accepted 1992 Jon Louis Bentley Multidimensional binary search trees used for associative searching Communications of the ACM Vol 18 No 9 pp 509 517 Sep 1975 Jean Bresson Carlos Agon and Gerard Assayag OpenMusic 5 A Cross Platform Release of the Computer Assisted Composition Environment In 10th Brazilian Symposium on Computer Music SBCM Belo Horizonte 2005 Dave Burraston Ernest Edmonds Dan Livingstone and Eduardo Reck Miranda Cellular Automata in MIDI based Computer Music In Proceedings of the International Computer Music Conference Miami 2004 Grosvenor W Cooper and Leonard B Meyer The Rhythmic Structure of Music University of Chicago Press Chicago 1960 Cubase 4 http www steinberg de
24. Common Music Taub91 or Haskore Huda96 can be used to produce similar patterns but not on the sophisticated and complex mathemat ical level of RUBATO COMPOSER 4 CHAPTER 1 INTRODUCTION e The concept of looping is widespread in music software and we inves tigated it in our collaborative music generation software Jam Tomor row Thal06 1 4 Thesis Outline Chapter 2 p 5 gives a brief overview of modern mathematical music theory and the two related music composition applications presto and RUBATO COMPOSER Chapter 3 p 21 presents the concepts of presto s OrnaMagic module and gives some common examples for its application Chapter 4 p 27 identifies the limitations of OrnaMagic proposes a struc ture for a new implementation and generalizes and formalizes concepts for functorial mathematical music theory Chapter 5 p 45 describes how the mathematical formalizations are im plemented for RUBATO COMPOSER and gives an overview of the im plementation design Chapter 6 p 53 discusses how our new implementation can be used to produce meaningful compositions and gives some examples for inspi ration Chapter 7 p 63 looks back and compares the new implementation with its predecessor Furthermore it provides an outlook on its future uses and further work Appendix A p 67 is an addition to the RUBATO COMPOSER man ual Milm06b and serves as a reference to the software implemented for this thesis Chapter 2 Math
25. Musical Composition with Grid Diagrams of Transformations Masterarbeit der Philosophisch naturwissenschaftlichen Fakultat der Universitat Bern vorgelegt von Florian Thalmann 2007 Leiter der Arbeit Prof Dr Guerino Mazzola School of Music University of Minnesota Department of Informatics University of Ztirich Prof Dr Oscar Nierstrasz Institute of Computer Science and Applied Mathematics University of Bern The address of the author Florian Thalmann Rodtmattstrasse 73 CH 3014 Bern thalmann students unibe ch Software Composition Group University of Bern Institute of Computer Science and Applied Mathematics Neubr ckstrasse 10 CH 3012 Bern http www iam unibe ch scg Abstract In the present thesis the concepts of OrnaMagic a module for the gener ation and application of musical grid structures which is part of the mu sic composition software presto Atari ST are generalized abstracted and adapted for modern functorial mathematical music theory Furthermore an new implementation for the present day composition software RUBATO COMPOSER Java is provided ii iv ABSTRACT Acknowledgements Many people contributed to this master s thesis and I am grateful to all of them First and foremost I would like to thank my primary supervisor Prof Dr Guerino Mazzola He taught me Mathematical Music Theory and Music Informatics both very fascinating domains and during the evolution of this
26. OSER 17 in this package Forms and denotators are both represented by objects generated at runtime instantiated from specific subclasses of the classes Form and Denotator e g LimitForm or PowerDenotator depending on their type As described in Section 2 3 1 there are two major kinds of forms and denotators simple and compound First we talk about creating simples Following the theoretical model to generate a Simple form F class SimpleForm we specify a Module M as a constructor argument This module defines the range of the possible values of F There are many differ ent kinds of modules defined in RUBATO COMPOSER Besides the common Z Q R C and Z4 we also have for example product rings string rings or polynomial rings It is one of the major difficulties when programming flex ible denotator manipulation processes for Rubato to always consider all possible modules We describe this problem later A denotator an instance of SimpleDenotator of the same Simple form F is generated by specifying F itself and a ModuleMorphism with codomain For zero addressed denotators one can also simply specify a ModuleElement m M which then induces the generation of a ConstantMorphism subclass of ModuleMorphism f with f 0 M and f 0 m Starting from the generated simples more complex compound forms or de notators can be built For this their coordinators or coordinates respec tively need to be defined To instantiate class
27. Score n1 n2 n3 nj AQ Note 01 p1 l1 d1 v1 n3 AQ Note o pa lo d2 v2 na AQ Note os pa l3 va AQ Onset 1 0 p AQ Pitch 63 09 AQ Onset 2 0 po AQ Pitch 60 03 AQ Onset 2 5 AQ Pitch 56 For the note n the function SA returns the following Simple denota tors SA G4 ni 0 SA Go ni pi SA Ay ni SA Ho ni ly We obtain bs ns f i1o SA Gi1 ni i20 g2 0 SA G ni f i1 o g 00 i2 0 ga o pi and Firstg m SA Hy ni hyopjo g ni X k tnm m oi r ni Ul hsopso b ni m 4 3 WALLPAPERS 35 Here is the diagram of the composed function 91 1 h R R R R R gt R pe x h QR R Z We then obtain the following transformed Score m First m Score n n5 n5 n4 AGNote o pi l di v1 n5 AQ Note o5 po l5 da v3 ns AQ Note o5 l5 da v3 o A Onset 6 3 I AG Loudness 126 0 AQ Onset 12 0 15 A Loudness 120 03 A Onset 14 0 15 AG Loudness 112 If we go one step further and map the resulting denotator ie calculate m First s m First we get the following result m AQScore n n5 n3 n1 AQ Note o pi l di vi n5 AQ Note o5 po l5 da v2 AQ Note o5 pa l5 da v3 o1 AQ Onset 39 69 AG Loudness 126 AQ Onset 72 0 15 AG Loudness 120 05 AQ Onset
28. allpaper shown in Figure 6 3 b Its right half is created by the second morphism which reflects the onsets G Onset H Onset of the left half at point 0 and translates it by 46 9 which is twice its length We hereby obtain a final wallpaper where the first half is followed by its retrograde This wallpaper is then handed on to the ScorePlay rubette and exported by the MidiFileOut rubette 6 1 4 Functorial Dodecaphonics RUBATO COMPOSER has a functorial background and therefore our last example for the Wallpaper rubette shows how the theory of functors can be used to easily produce a small composition from a dodecaphonic series which is taken from Olivier Messiaen s Mode de valeurs et d intensites It is the same series Pierre Boulez processed in his composition Structures We presented this example at the International Computer Music Conference 2006 We use two Wallpaper rubettes here one in combination with MacroScores and one for functorial denotators The network for the composition is shown in Figure 6 4 a The Source rubette in the top right corner holds a Z addressed denotator m Z Score that contains just one note Z Note 58 CHAPTER 6 PRACTICAL EXAMPLES ScoreToMacro 2 AddressEval ModuleMap 8 ModuleMap 16 ModuleMap 15 h Source 12 Evaluate at list Score power Score power Score power 12 Sc MacroPredicate Properties Properties
29. allpapers generated from the two note motif c f by commuting two morphisms f and fo 0 2 75 0 2 a ho fa b foo f ki k2 with ki rj are the grid coordinates of the marked note groups The grid diagrams for the musical wallpapers in Figure 4 1 Three example melodies generated by the Melody rubette The example melody of Figure 4 3 a processed by the Rhyth mize rubelt 66e o9 oce ORO EENI An excerpt showing four scales ionian whole tone dimin ished and minor pentatonic individually displaced using the ModuleMap rubette and united using the Set rubette A simplified UML diagram without the testing classes The network setup for an emulation of the intersection appli omi o oe nob xoxo xod ou Soe xi 30 31 41 48 44 xii 6 2 6 3 6 4 6 5 6 6 Al 2 4 5 LIST OF FIGURES An example for a non musical application of the Wallpaper rubett o 244 sx none a make 2048 2 on 55 A polyphonic example its network a and the ScorePlay yiew qo I m 56 The network a of a functorial example and an excerpt of its piano roll representation B cuoc ck XO Y eR 58 The settings for performing tonal alteration on a given com POSITIONS oue e Roe Roo e 60 An example for quantizing The network a and the resulting score s
30. and rw 0 0 Then we execute the ornament in union mode and obtain five copies of the ornament aligned successively in time This is equal to looping the given motif five times 3 3 2 Tonal Alteration As previously mentioned OrnaMagic s alteration concept is a generalization of tonal alteration Of course it is also possible to use the module simply for that Assume we would like to transform a melody with length l in C major to a melody in C melodic minor For this the ornament has to be defined as follows We take one octave of the C melodic minor scale as the motif The grid s vectors are v 1 0 and w 0 12 to cover all onsets and octaves We finally define the ranges 0 1 to reach all possible onsets of the motif and ry 6 6 to reach all possible octaves in presto Figure 3 3 shows how the created ornament looks Then we apply the ornament to the melody using alteration of 10096 Here it makes a difference which initial direction of the spiral algorithm is se lected because the distances between the ornaments notes are very short We have to select down to cause all notes to move downwards to the next note in the minor scale in fact just the third which would eventually be moved the fourth otherwise It is also important to use the vertical rail so that the melody s onsets are not changed 3 3 EXAMPLES 25 Motif Figure 3 3 An ornament with the C melodic minor scale as a moti
31. application possibilities can as well be used separately and in other contexts and ornaments can be produced without needing to be applied to a score immediately With this abstraction we obtain four tasks one for ornament generation and three for the different application tasks namely union intersection and alteration In RUBATO COMPOSER a convenient module named Set rubette has already been implemented which is able to perform all kinds of set operations on Power denotators Thus the responsibilities of union and intersection can be delegated to this rubette The remaining two tasks of ornament generation and alteration are both self contained and not yet implemented They are assigned to two new rubettes the Wallpaper rubette and the Alteration rubette the main contribution of this thesis 4 3 WALLPAPERS 29 Additionally for the recreation of the OrnaMagic examples described in section 3 3 three simple auxiliary rubettes have been defined namely the Melody rubette the Rhythmize rubette and the Scale rubette They com plement the functionality of the Wallpaper and Alteration rubettes in such a way that creating compositions similar to the ones that can be created using OrnaMagic becomes possible Their mathematical background is also described in this chapter 4 3 Wallpapers A wallpaper is a general structure similar to OrnaMagic s musical structure of an ornament described in Chapter 3 Section 3 1 In music wallpapers
32. are usually built from Score and MacroScore forms see Chapter 2 Sec tion 2 4 4 However as we will see in the examples of Chapter 6 it makes sense to define a wallpaper for any form of type Power First we provide a definition for MacroScore wallpapers which we already described in our previous work Mazz06 Then after defining some prerequi sites its generalization for Power forms is presented in Section 4 3 4 4 3 1 MacroScore Wallpapers A MacroScore wallpaper is characterized by e a motif d AG c4 with n Node coordinates c Cn e grid spanned by m morphisms f fi fm Note Note on the Note form e and a sequence of ranges ri a bi C Z aj bi for i 1 m We then define the corresponding wallpaper as f r U Macro d 4 1 Jm ki ri A wallpaper according to this definition is more general than a presto orna ment in several points and fulfills many of the expectations described in the previous section 1 the involved denotators can have general adresses 2 the grid is composed of functions instead of translations 3 these functions can transform any of the Note coordinates not just Onset and a second 30 CHAPTER 4 GENERALIZATION OF CONCEPTS 0 0 1 0 2 0 2 1 2 2 Figur
33. ators to be mapped by morphism f This morphism makes sure that for every Simple form in the domain or codomain of f the top form with the shortest path of this type found in the structural tree of the form is comprised in the transformation For the realization of this morphism we first define the set of Simple sub forms Sp of F which contains all Simple forms present in s structural tree e g for F Score Sp Onset Pitch Loudness Duration Voice Next we define a function SA S d t which outputs a denotator t of Simple form 5 Sr for denotator 4 AQF Note that such a function is 32 CHAPTER 4 GENERALIZATION OF CONCEPTS difficult to realize since we have no guarantee that a denotator of the spec ified of form S is indeed contained by d as already described in Chapter 2 Section 2 3 2 For example in the case where F contains a Colimit subform However the method we chose works for many possible form structures and will certainly be improved in the future More precisely SA S d searches the form tree of F for the top level form of type S and returns the first denotator found at this position in the tree of d i e if Power denotator is passed the path along its first branch is travelled In practice if no denotator is present at this position this may happen when a Colimit denotator is passed SA returns nothing If at least one Simple denotator expected by f is not present in d s subtree d is simply no
34. category of modules Mod to the category of sets Sets Typep is one of four form types Simple Limit Colimit or Power and Diap is a diagram of forms defined as follows depending on the specified type e Simple Diap is a module M with Framer Hom QM As previously stated Simple is the basic type and it is comparable to the primitive data types in a programming language However the category of modules includes number rings such as Z Z Q C as well as word monoids Unicode or polynomial rings R X among others which facilitate the construction of more complex mathematical structures than in a programming language Limit the frame space Framer is the limit lim Diar of the form spaces of the given diagram If the Diap is discrete i e no arrows Framer is the cartesian product which is a conjunction of attributes In OOP the corresponding construction would be a class with several attributes e Colimit here Framer is the colimit colim Diar of the given di agram s form spaces In case Diap is discrete we have the disjoint union of a list of cofactors To realize such a disjunction for a set of classes in OOP a superclass can be defined for them e Power Diar has a single vertex form and no arrow Framer O being the subobject classifier see Mazz02 Appendix Section 3 1 This corresponds to an collection of instances of the specified form G For this we normally have predefined set classes i
35. ch is nec essary to define since else for recursive forms like MacroScore the search would never stop As soon as one of these parameters changes the algorithm searches the whole tree up to the specified depth to find all Simple forms present For every found form the shortest path to reach it from the root is remem bered These forms and paths can then be fetched by calling the methods getSimpleForms and getSimpleFormPaths The found forms can be directly used in the properties windows of the concerning rubettes where users have to specify one of the subtree forms With the help of SimpleFormFinder users can be given a list containing just the present forms and therefore cannot make a wrong selection The method used for implementation produces the same results as breadth first search due to the fact that the first and shortest path found for every denotator is kept 5 4 2 NoteGenerator NoteGenerator is a useful class for generating simple notes melodies and is used by the Melody and the Scale rubette It provides the following public methods among others public Denotator createNoteDenotator double onset double pitch int loudness double duration public PowerDenotator createSimpleMelody double noteDistance double pitches The first of them is a simple way for generating a zero addressed denotator of form Note The returned note holds the specified values as well as voice 0 The second creates a zer
36. ch will simplify the definition of complex actions and allow non geometrical uses A third limitation of presto is the use of integer numbers to define a note s value that is for example users have to do without microtonality since pitch only can have integer values In RUBATO COMPOSER data types are not fixed they can be changed even by runtime Furthermore their values can be elements of any possible module such as R or Q The last important restriction is that for the definition of the grid of an Or naMagic ornament only translation vectors can be used i e a motif cannot appear rotated or sheared within an ornament Our new definition named wallpaper to avoid confounding with ornaments as musical embellishments will feature grids of any number of arbitrary transformations In these premises we now first analyze OrnaMagic s functionality and de fine a number of rubettes taking on the identified tasks and then give the necessary mathematical definitions for the new RUBATO COMPOSER imple mentation 4 2 New Distribution of Tasks The first step in our generalization process is the identification of indepen dent subtasks in the overall functionality of the OrnaMagic module and the distribution of the corresponding responsibilities on a number of new mod ules First of all it is indisputable that the creation of ornaments and their application can be performed by different modules With a separation of these tasks the
37. d m is passed on to the Wallpaper rubette where we generate a wallpaper which in this case will be a score of 12 Z addressed notes We use a grid of four morphisms fi fa the precise definitions of which will not be given here Nevertheless we 6 2 ALTERATIONS 59 quickly explain their function in reverse order because this is their order of application e f4 R R halves onset and duration of the series and translates the series up in pitch and onset so that it sounds higher and ends exactly at the same time as the original series The corresponding range is r4 1 1 so the original series is not included in the wallpaper e f R R again halves onset and duration of the single series obtained after the transformation using f4 and again translates it in the same way Furthermore its loudness is decreased This time we use a range r3 0 1 so the result is a wallpaper with two series e f R R creates an inversion of the wallpaper created so far so that the inversion of the compressed series takes the place in pitch of the original and the inversion of the original takes the place of the compressed The inversions are also translated to the end of the wallpaper generated so far and both of them are kept ra 0 1 e f R R finally creates two copies of the four series wallpaper also displaced in time and slightly down in pitch r 0 1 so that the returned wallpaper includes t
38. denotator lying in between See Milm06a Chapter 11 Section 4 2 for more about this 2 3 FUNCTORIAL MATHEMATICAL MUSIC THEORY 13 A form path traversing a Colimit form indicates which of its m coordinators should be reached If it is not present in the corresponding denotator tree we obtain an erroneous path If a transformation involves such a non present denotator it is simply not performed A more precise discussion of these problems in respect of our application field will be given in Chapters 4 and 5 2 3 3 Denotator Transformations and Set Operations The functorial approach defines three possible operations for the manipula tion of denotators namely space transformations set theoretic constructions and address changes as concisely described in Mazz06 In this section the first two of them are presented as we make frequent use of them in Chap ter 4 The third is presented in the next section Given a denotator d AQF c with the coordinate c A Space and a form morphism f F G we define the mapping space transformation of d by f as follows f d d AQG fe where d is a new denotator with the mapped coordinate fc AQ For example we define a projection morphism pg Note Duration which projects a note denotator on its duration Applying this morphism pg to the above defined note na we obtain n5 0 amp Duration 1 The second operation just concerns denotators of forms of
39. dynamics is often specified below the staff Figure 2 1 a shows an example for a piano score the lower 5 6 CHAPTER 2 THEORY AND APPLICATIONS staff representing the player s left hand and the upper staff the right hand The examples in this thesis have been typeset using the open source music engraving software LilyPond Nien03 Sehr langsam soot ges s qc ans Ir e a t LI EE bs be pp b Figure 2 1 Arnold Sch nberg s piano piece Op 19 No 3 a the first four bars in western score notation and b the whole piece in piano roll notation In modern music software the piano roll notation system established it self due to its flexibility abstractness and simplicity It is inspired by the medium used to operate mechanical player pianos hence the name Notes are represented by horizontal bars in a two dimensional coordinate system where the horizontal axis represents time and the vertical axis pitch The length of such a note bar describes the duration and its opacity often the loudness of the represented note see Figure 2 1 b for an example Dif ferent voices are mostly visualized using different colors The piano roll notation is very useful for showing complex musical structures but unsuit able for precise applications such as sight reading by musicians However it is u
40. e 4 1 Two simple musical wallpapers generated from the two note motif c f by commuting two morphisms f and fa r1 0 2 r2 0 2 a fio fa b foo fi Ki ko with k r are the grid coordinates of the marked note groups 4 any number of functions can be used for the grid not just two Now note that it is important to be aware of the order in which the mor phisms f fn are composed since their commutations generally result in different wallpapers Figure 4 1 shows an example of two musical wallpa pers generated from the same motif with the same pair of affine morphisms fi f2 Note Note where f adds the double of onset to pitch and adds 4 to onset and fa halves onset and duration subtracts the eight fold duration from pitch and finally adds 2 5 to onset For each of the wallpapers the two morphisms were composed in a differ ent order for each that is was used for the top wallpaper and Macro for the bottom wallpaper A schematic representation of the two diagrams corresponding to these two wallpapers is shown in Figure 4 2 They are grid diagrams on the Note space spanned by the arrows fi fo Before generalizing wallpapers for Power forms we describe in detail two problems arising when denotators of arbitrary Power forms are mapped and present our solutions to these very problems 4 3 WALLPAPERS 31 d d d d dd d d d d Y f E go 0 d d
41. e generation of such functions a rubette could be created where users can draw functions by hand or select a preset function The concepts of alteration can easily be extended for creating musi cal morphings analogous to visual morphing in the domain of image processing A so called morph of two compositions di and da can be defined as a selection of elements of the two altered compositions alt d d2 and alt do di This leads to a more complete implementa tion of musical morphings than for example described in Oppe95 A further extension could be to produce morphings between an arbi trary number of compositions d d using multidimensional degree functions 66 CHAPTER 7 CONCLUSION Appendix Manuals This appendix includes the extensions to the RUBATO COMPOSER User s Manual Milm06b which is available on RubatoC The rubettes created for this thesis are described using the schema proposed in Section 4 of the manual A 1 Score Rubettes Melody Group Summary Outputs Description Properties Score Generates a random melody 1 A denotator of form Score The generated melody consists of a specified number of sub sequent notes of duration 1 0 loudness 120 and voice 0 The first note is at the initial pitch Every subsequent note s pitch is calculated randomly where the distance to its previous note never exceeds the indicated interval boundaries which are in terpreted in steps e g st
42. eighbors described in Chapter 3 Section 3 2 1 Chapter 6 Practical Examples for Wallpapers and Alterations In the previous chapters we already showed some outputs of single rubettes like the Melody Rhythmize or Scale rubette mostly in piano roll notation In this chapter we present a few musical and non musical examples showing the application possibilities of the rubettes generated for this thesis We would like to focus on designing reasonable rubette networks using the new rubettes in combination with RUBATO COMPOSER s built in rubettes 6 1 Wallpapers We start with some examples using the Wallpaper rubette The first one shows how the two simpler application functions of OrnaMagic namely union and intersection can be simulated with RUBATO COMPOSER The second one shows how non musical denotators can be processed by the Wall paper rubette Finally the latter two are more complex musical examples that we created in the context of this thesis and presented at two conferences in 2006 6 1 1 Union and Intersection Two of the three applications of ornaments in OrnaMagic have not been adapted to RUBATO COMPOSER for their emulation is possible using two built in rubettes Figure 6 1 shows an example of a network where first an excerpt is selected from an input MIDI file using the Select2D rubette 53 54 CHAPTER 6 PRACTICAL EXAMPLES 4 MidiFileln 1 le_vent_dans_l Properties 1 Select2D 2 Zu Score power Se
43. ematical Music Theory and Applications Mathematical music theory has become an indispensable basis for music informatics and computational musicology It has been developed by mathe maticians or composers like Leonard Euler Eule39 Milton Babbitt Babb92 or David Lewin Lewi87 Lewi93 The most recent advancement has been made by Guerino Mazzola in his work The Topos of Music Mazz02 His the orical achievements have been applied in several software products on differ ent platforms namely Presto RubatoN RubatoX and RubatoC Two of these software products presto and RUBATO COMPOSER facilitate music composition by providing composers with convenient mathematical tools We describe both of them in this chapter including their underlying theories presto uses a geometrical representation of music whereas RU BATO COMPOSER its present day descendant is based on modern functorial mathematical music theory 2 1 Music Notation Before we attend to mathematical music theory we provide a short introduc tion to the different visual representations of music used in this thesis In the standard western score notation Ston80 note symbols are placed on the staff comprising five lines Depending on their position on the staff note symbols represent notes of a different pitch the higher symbol the higher the pitch Duration is symbolized by different note values and additional symbols like dots and ties whereas loudness i e
44. ep size 1 stands for halftones i for quartertones Furthermore the stated lowest and highest pitch are never exceeded The number of notes must be specified as well as the highest lowest and initial pitches Furthermore the step size and the minimum and maximum intervals up and down in steps have to be indicated see Figure A 1 67 68 APPENDIX A MANUALS Untitled 1 Melody 1 Properties Number of notes 10 m Starting pitch 60 Lowest pitch 0 Highest pitch 127 Step size halftone 1 1 0 Minimum interval down 1 Maximum interval down 6 Minimum interval up 1 Maximum interval up 6 Hide Revert Apply Figure A 1 The properties window of the Melody rubette Rhythmize Group Summary Inputs Outputs Description Properties Score Provides the input denotator with a new rhythm 1 A denotator of form Score 1 A denotator of form Score A new score is created taking the notes from the input deno tator in their order of appearance and giving them new onsets and durations The resulting score is monophonic one note at a time and its durations are randomly taken from the expo nentially calculated values b b7 1 0 7 where b is the specified base x is the specified exponent and n is the speci fied number of values If the specified metric period is greater than 0 it is made sure that there is a note at every meter point multi
45. es Note and Score denotators ScaleMap Holds a number of predefined musical scales PerformanceCheck Used for rubette performance tests 5 4 Shared and External Classes In this section we present some of the classes shared by different rubettes At the time they have to be added to the plugin jar file of every rubette using them so in fact different copies of them are used at the same time But they may be developed further and added to the RUBATO COMPOSER framework someday 5 4 1 SimpleFormFinder The most important of the shared classes is SimpleFormFinder which is used by both the Wallpaper rubette and the Alteration rubette It refers to the function SA and to the set Sp defined in Chapter 2 Section 4 3 2 It is used to search the form tree of a specified form F to find the set Sp of present Simple forms and for each 5 Sp the shortest path to the root It features the following public methods among others public SimpleFormFinder Form parentForm public void setMaxRecursion int maxRecursion public List lt SimpleForm gt getSimpleFormsO public List lt List lt Integer gt gt getSimpleFormPaths 50 CHAPTER 5 DESIGN AND IMPLEMENTATION SimpleFormFinder s constructor takes a Form as an argument which is the form the tree of which has to be searched for SimpleForms Further more a maximum recursion level can be defined using the the method setMaxRecursion This defines the depth of the search whi
46. f 3 3 3 Quantizing The third example is very well known in music production When for exam ple imprecisely recorded MIDI notes are aligned in a raster of note values e g quarter triplets one speaks of quantizing Music software products like Logic Logic or Cubase Cubase offer such quantize functions However with OrnaMagic quantizing can be customized more precisely Our raster can be any ornament for example a grid of sixteenth notes For this we define one single note with onset 1 and duration actually this may be 2 or 4 in presto values as our motif Also the ornament s grid vectors are then given the length of 4c thus v 15 0 and w 0 4 The ranges are chosen to be as large as necessary to build an ornament with the size of the composition in the global score that has to be quantized Finally we execute the ornament with alteration using the horizontal rail for the pitch must not be modified If we choose a smaller percentage than 10096 for alteration this causes our composition s notes to be more precise but still not exactly in the raster For a negative percentage the notes get even more imprecise 26 CHAPTER 3 THE CONCEPTS OF PRESTO ORNAMAGIC Chapter 4 Generalization of OrnaMagic s Concepts Before the concepts of OrnaMagic can be implemented in RUBATO POSER they need to be formalized for functorial mathematical music theory i e described in the form denotator representation Due to
47. f c cij lt c cj for j AU 1 4 3 lt k Now let us describe formally how alteration works If we alter compo sition d towards do we obtain a composition alt AQ P e1 em of form P with alt di Its elements e em are transformed versions of 11 Cim Which Simple denotators values are altered is specified by the d Simple forms 5 each of them standing for an alteration dimension As with general wallpapers we need to accept any Power form as input composition also forms the elements of which may contain several denotators of form S in their structural tree Therefore also here we need to use the function SA introduced in Section 4 3 2 so that for every S and every c d just one denotator value is altered namely SA S c The amount by which a coordinate c is altered is indicated by its local alteration degree For its calculation first the position of c within the com 44 ALTERATION 37 position d according to R is determined R is another Simple form which is often the same as 5 and which defines the scale on which the position of c is measured The position position 0 1 of c is calculated using the function position c fti c minm MarR ming where mazg maz SA R c c d and ming min SA R c c di are the highest and lowest elements of R denotators in di These elements can just be calculated if R is embedded in IR which
48. g It simulates the creation of a wallpaper from a square at 0 0 visually The coordinates shown can be selected using the two combo boxes Alteration Summary Alters a first composition towards a second Inputs 1 The denotator of type Power to be altered 2 The denotator towards which the alteration takes place Of the same form as input 1 72 Simple forms Domain R Onset simple RRing APPENDIX A MANUALS 6 Untitled 1 Wallpaper 1 View aaaada Codomain R Onset simple RRing R Pitch simple QRing E R Pitch simple QRing _ n n OK C Hide a b Figure A 5 The Simple forms dialog a and the Wallpaper rubette view b Outputs Description Properties 1 The altered denotator of the same form as input 1 The Alteration rubette moves each element of the first input denotator towards its nearest neighbor of the second composi tion For each dimension and element the Simple denotator affected by the alteration is of the form specified in the leftmost column of the dimensions table and it happens to be the first one of that form found in the element s tree Furthermore for each dimension and element a local alteration degree is cal culated according to its position relative to all other elements which is calculated from the two indicated alteration degrees and the value of the first denotator fo
49. has been assumed above Then the local alteration degree is calculated depending on the marginal alteration degrees a b These degrees indicate how much d is altered at its lowest and highest values on the R scale whereby a defines how much mazg is altered and b how much ming For 0 d remains unchanged and for a b 1 every element of d obtains the value in d with the smallest distance to it in dimension i as we will see in the later definitions If for example we choose d AQ Score Ri Onset a 0 and b 1 the first Note of d in time is not changed at all whereas the last note obtains a new onset taken from the note in da that shows the least distance from it For each note in between the local alteration degree is calculated using linear interpolation according to its position in time We define the function for c s the local alteration degree degree SA Ri as follows degree m a b position m The alteration function for dimension 7 then uses this degree to alterate a morphism m towards another ma Alteration m1 ma m degree m ma m We have now made the necessary preparations and are ready to define the altered composition alt which we already mentioned above alt d d2 Alteration cy NN cr d2 cr di In this definition we use the morphism Alteration C x C C where Alteration ci returns a copy of c in which the
50. he pitch of the root note has to be indi cated and using the combo box either one of the predefined scales or custom has to be selected If custom is selected the desired intervals between subsequent notes have to be specified in the interval text fields 70 APPENDIX A MANUALS Untitled 1 Scale 3 Properties Number of notes Root note MIDI pitch c 60 60 0 Preset or custom scale phrygian He Intervals in semitones 1 0 12 0 2 0 2 0 1 0 2 0 2 0 Figure A 3 The properties window of the Scale rubette A 2 Core Rubettes Wallpaper Summary Inputs Outputs Description Properties Generates a wallpaper from an input motif 1 A denotator of type Power 1 A denotator of the same form as input 1 All elements of the input denotator are mapped repeatedly us ing the specified morphisms and finally part of the mappings are united in a new denotator of the input form and returned The first morphism to map is the one of the wallpaper dimen sion lowest in the table then the next higher and so on The indicated range defines for a dimension which mappings are added to the result Power denotator 2 5 for example means that from the denotators after the second mapping to the ones after the fifth mapping all denotators are added to the result The last column of the table defines the forms of the Simple denotators mapped in each element First the Power form of the in
51. ication may even be used for generating and processing data types other than musical Nevertheless for musical applications it is advantageous to use uniform data types In this section we would like to present the forms currently used in RUBATO COMPOSER which are inspired by mathematical music theory Most of the current basic musical forms were already defined above in Sec tion 2 3 1 They are namely Score Note Onset Pitch Loudness Duration and Voice These forms are already sufficient to represent a simple musi cal piece e g one taken from a MIDI file without controller information However for building more complex musical structures it is inevitable to extend these definitions One extension that is very useful in combination with the work of this thesis is the MacroScore form first described in Mazz02 The rubettes for han dling macro scores have been implemented by Karim Morsy Mors We will give the definition of MacroScores here and briefly discuss their use MacroScores A music score may contain hierarchical structures for example notes em bellished with a trill We can see such a trill as a set of satellite notes defined relatively and hierarchically subordinated to a parent note Now let us imagine the parent note is transformed mathematically say rotated by 90 If the same rotation is applied to the satellite notes they result in two chords and lose their functionality With the macro score concept we appl
52. ion probability for each value The onset o of the same note is then calculated with the following sequence 01 0 Ok41 Ok dk Furthermore as described above some of the notes can be emphasized For this we specify a meter m R m gt 0 an accented loudness la Z and an unaccented loudness ly 2 If m gt 0 a mechanism is used for guaranteeing that for each meter point i e every non negative integer multiple am of m where a No there is a note c s with onset am We therefore define an adjusted duration dy ao with oj lt am lt dk k dg otherwise 4 5 MELODIES RHYTHMS AND SCALES 43 Figure 4 4 The example melody of Figure 4 3 a processed by the Rhyth mize rubette If we use dy instead of for calculating whenever the first case of ds definition occurs the next onset will be op d which is what we wanted Finally we define the loudness lj of the k th note in s lu otherwise n if Ja No with 6 am k which means that the notes on the meter points am are emphasized We obtain the new note cj 0Q Note 0GOnset oj 0 Duration dy if m 0 4 OG Note 0G amp Onset o 0G Loudness l 08 Duration dy otherwise Figure 4 4 shows an example for the rhythmization of the melody shown in Figure 4 3 a The specified parameters are b 2 n 4 1 1 m 4 1 120 and lu 80
53. k 0 Pitch py The remaining three coordinates obtain standard values loudness is set to 120 duration to 1 0 and voice to 0 The interval boundaries are very useful to obtain melodies of a certain lin earity Furthermore they can be used to build melodies of specific patterns e g a melody with s 1 u 7 7 d 5 5 travels the circle of fifths while moving up and down randomly see Figure 4 3 a or s 1 p 60 72 u 12 12 d 1 1 builds a melody with a sawtooth wave like Puck07 structure Figure 4 3 b Figure 4 3 c shows an example of a random melody generated with n 10 p 0 127 3 6 d 1 5 4 5 2 Rhythmize Rubette It is much easier to recognize melodic motifs in a composition acoustically when these motifs have conspicuous rhythmical characteristics So the task 4 5 MELODIES RHYTHMS AND SCALES Al Figure 4 3 Three example melodies generated by the Melody rubette 42 CHAPTER 4 GENERALIZATION OF CONCEPTS of the second helper rubette the Rhythmize rubette is to provide a com position with a new rhythm while respecting a global meter According to Coop60 rhythm is defined as the way in which one or more unaccented beats are grouped in relation to an accented one and meter as the number of pulses between the more or less regularly recurring accents Inspired by these definitions the Rhythmize rubette primarily changes onset and du ration of the input composi
54. l Evaluations 4 224 2462226 aa a a e 1 2 Open e noe 24 aama Doke Bee dh 3 Future Work 4 eoa ae REE ee does 27 27 28 29 29 31 32 33 34 36 36 37 38 39 39 39 40 43 45 45 47 48 49 49 50 5l 51 53 53 53 54 55 57 59 59 60 63 CONTENTS ix A Manuals 67 Al Score Rubettes 3 3 204 a ORE UE OG GR ewe hee be woke de 67 A 2 Core Rubettes 70 Bibliography 74 CONTENTS List of Figures 2 1 2 2 2 3 2 4 2 5 2 6 2 3 1 3 2 3 3 4 1 4 2 4 3 4 4 4 5 5 1 6 1 Arnold Sch nberg s piano piece Op 19 No 3 a the first four bars in western score notation and b the whole piece in piano roll notation lee The main view of the presto software for Atari ST The presto transformation score A schematic representation of a denotator left its form middle and the represented object right The tree representation of the Note form The main window of the RUBATO COMPOSER GUI showing a network of three The Stat rubette s properties window a and the Display rubette s view window b A presto ornament with ranges 0 1 and 0 2 presto OrnaMagic s nearest neighbor algorithm An ornament with the C melodic minor scale as a motif Two simple musical w
55. la Mazz90 and provided numerous functions for composing and manipulating music geometrically Described as one of the most powerful music composition tools to date Mazz89 a module in presto namely the OrnaMagic module allows to generate and use periodic grid constructions in an abstract way never seen since Many other software products incorporate similar functions which are in fact special cases of OrnaMagic applications namely quantizing or tonal alteration Today the Atari ST is outdated and modern mathematical music theory has made many steps forward Mazz02 and now uses more abstract and versatile data types and operations new software product has been cre ated according to these new theoretical foundations namely RUBATO COM 2 CHAPTER 1 INTRODUCTION POSER Milm06a RubatoC It is a platform independent Java 1 5 applica tion featuring an extended mathematical framework as well as a modular design 1 1 Problem Statement Since presto musical grid structures and their different application possibil ities have never been implemented at the same level not to mention devel oped further This leads us to the research question of this thesis Research Question How can the concepts of OrnaMagic be adapted to modern func torial mathematical music theory and how can they be imple mented for RUBATO COMPOSER 1 2 Contributions The contributions of this thesis are e Analysis of OrnaMagic s musical grid s
56. lyPond a system for automated music engraving In Proceedings of the XIV Colloquium on Musical Informatics CIM Firenze 2003 Daniel V Oppenheim Demonstrating MMorph A System for Morphing Music in Real time In Proceedings of the International Computer Music Conference ICMA Banff 1995 Benjamin C Pierce Basic Category Theory for Computer Scientists MIT Press Cambridge 1991 presto for Atari ST http tamw atari users net dwnloads htm Miller Puckette The Theory and Technique of Electronic Music World Scientific Publishing Co Pte Ltd 2007 RUBATO COMPOSER http www rubato org rubatocomposer html Rubato for NEXTSTEP ftp ifi unizh ch pub projects rubato Rubato for OS X http flp cs tu berlin de MaMuTh Downloads Rubato Sibelius 4 http www sibelius com products sibelius index html Nicolas Slonimsky Thesaurus of scales and melodic patterns Coleman Ross Company New York 1947 78 BIBLIOGRAPHY StonS0 Kurt Stone Music Notation in the Twentieth Century A Practical Guidebook W W Norton New York 1980 Taub91 Heinrich Taube Common Music A Music Composition Language in Common Lisp and CLOS Computer Music Journal Vol 15 No 2 pp 21 32 1991 Thal06 Florian Thalmann and Markus Gaelli Jam Tomorrow Collaborative Music Generation in Croquet Using OpenAL In Proceedings of the Fourth International Conference on Creating Connecting a
57. modules called rubettes Each of these rubettes has a cor responding class extending the class AbstractRubette namely Wallpaper Rubette AlterationRubette MelodyRubette RhythmizeRubette and ScaleRubette As shown below these classes have been been organized in three packages separating the rubettes processing or generating Score denotators from the Power denotator rubettes org rubato rubettes wallpaper Wallpaper rubette classes and tests org rubato rubettes alteration Alteration rubette classes and tests org rubato rubettes score Additional rubettes and tests org rubato util Shared classes and superclasses 48 CHAPTER 5 DESIGN AND IMPLEMENTATION 1 edu wlu cs levy org rubato base org rubato base Simple CG KDTree lt AbstractRubette Z N AbstractRubette A rdi NoteGenerator SimpleFormFinder Ko en url org rubato composer dialogs morphisms JGeometryView JAlterationDimensionsTable JWallpaperDimensionsTable JWallpaperViewPanel K JWallpaperView Pri T 4 JPropertiesTable MorphismCellEditor SimpleFormsCellEditor K gt 4 JSelectSimpleForms 08 E m 1 i i javax swing AbstractCellEditor javax swing JDialog 1 1 1 Figure 5 1 simplified UML diagram without the testing classes The fourth package contains classe
58. music These features are all wide spread among music software products but what mainly distinguishes presto from other applications is its ability to generate and modify music by performing a variety of geometrical operations on it 8 CHAPTER 2 THEORY AND APPLICATIONS Its unique tools are based on a geometrical representation of music which we describe now In presto notes are defined as points in a four dimensional geometrical space spanned by the following coordinates e onset the time when a note is played e pitch on the chromatic scale e duration in time and e loudness All four coordinates have discrete values where onset is between 1 and 11360 and the other three between 1 and 71 Additionally one of 16 instruments can be chosen for every note in order to orchestrate a composition However this parameter is not included in the geometrical space and therefore not relevant with regard to the future explanations For the manipulation of such note points two of the four coordinates can be chosen to be displayed in the score view Figure 2 2 There any number of notes can be selected and modified by any specified geometrical trans formation or set operation These modifications act on the selected two dimensional level and include for example transformations like inversion retrograde or parameter exchange or set operations like union or inter section An example for such a transformation in presto is shown in Fig u
59. n OOP Starting with Simple types and using the other compound types more complex forms can be created Here are for example the definitions of some 2 3 FUNCTORIAL MATHEMATICAL MUSIC THEORY 11 Note Power Onset Pitch Loudness Duration Voice Simple Simple Simple Simple Simple R Q Z R Z Figure 2 5 The tree representation of the Note form of the most common forms related to music Score Id Power Note Note Id Limit Onset Pitch Loudness Duration Voice Onset Id Simple R Pitch Id Simple Q 2 Duration Id Simple R Voice Id Simple Z Loudness Id Simple Such compound forms have a tree structure where the contained Simple forms are leaves and all other forms are nodes They can be visualized as shown in Figure 2 5 In the next section we discuss some singularities of such trees A denotator D is an instance of such a space and it is defined as fol lows Namep Addp Form p Coordp where Namep is again a denotator the address Addp is a module A Formp is a form and the coordinate Coordp is an element of the evaluation A Spacepr of F s form space Spacer As an example let us create a denotator of the previously defined Score 12 CHAPTER 2 THEORY AND APPLICATIONS form 01 O Onset 1 0 02 O Onset 1 5 03 0G Onset 2 p 0G Pitch po 0G Pitch 0G Pitch 98 1 0 Loudness 120 d 0G Duration 1 v 0 Voice 0 n 0Q Note o1 p1 l d v
60. nd Collaborating through Computing University of California Berkeley 2006
61. o addressed Score denotator containing an arbitrary number of notes As parameters we need to specify a note distance d and a sequence of pitches po p Every note n of the returned score is defined by onset zd and pitch pj for 0 lt i lt m The other three coordinate denotators Loudness Duration and Voice are set to the standard values 120 1 and 0 If a melody needs to be created iteratively in a generative process the following three methods can be used 5 4 SHARED AND EXTERNAL CLASSES 51 public void startNewMelody double noteDistance public void addNoteToMelody double pitch public PowerDenotator createScoreWithMelody The first method starts a new melody for a specified note distance as above the second is used to add notes to the melody and the third method can anytime be called to return a Score denotator containing the notes defined so far 5 4 3 ScaleMap The ScaleMap class is a special java util HashMap holding a number of predefined musical scales for the use in RUBATO COMPOSER It is cur rently used by the Scale rubette In its constructor ScaleMap scales can be defined as java lang Object records holding the scale name and an array of halftone steps for example ionian new double 2 2 1 2 2 2 1 The map is then filled with these records the names becoming the keys and the steps the values ScaleMap provides one additional public method to the original HashMap methods p
62. of ornaments An ornament is defined to be a periodic musi cal construction as shown in Figure 3 1 It is characterized by three at tributes e a motif the recurring set of notes e a grid of parallelogram shaped cells defined by two vectors v w in the score view plane e and a range defined by two integer intervals r and rw one for each of the two vectors where r a bi C Z and a lt bj Given the range we obtain a set of displacement vectors V used to build the ornament as follows V ny ut ny w dy ny lt by ay ny by We then create the ornament by gathering all the copies of the motif gen erated by displacing the motif along the translation vectors in V The 21 22 CHAPTER 3 THE CONCEPTS OF PRESTO ORNAMAGIC Cell of Ornament Grid Figure 3 1 A presto ornament with ranges 0 1 and 0 2 ornament therefore contains b 1 bw aw 1 copies of the motif In OrnaMagic ornaments can be defined for the notes in a local score view which is a selection of notes in the global score The onset coordinate is given to be one of the two visible dimensions so ornaments can be created for the coordinate pairs onset pitch onset duration or onset loudness 3 2 Applications of Ornaments After the creation of an ornament using OrnaMagic it has to be applied to the global score For this there are three different ways The first two are inspired by set theory If union is selec
63. omain W W are assumed to be products of arbitrary modules We define two sequences of Simple forms G1 Gs H H Hi with the elements G Hj Sp to specify which denotators in c1 c d are transformed by f Moreover we need three kinds of auxiliary mor phisms 4 3 WALLPAPERS 33 e the injection morphisms i1 is ij Vj gt V with i v v 0 v 0 where v is at the j th position of v e the projection morphisms pi pu px W Wy with wy for w w w and e the casting morphisms 91 95 gj Gj Vj and h ht hy Wk gt Hy In practice a casting morphism is usually an embedding if its domain mod ule is contained by its codomain module Otherwise it is a rounding mor phism The previously defined morphisms are composed in the following way to map denotator d by morphism f bs Cis G f og 0 SA Gi Ci 150 9 0 SA G Finally considering the Simple forms G H we are able to define our general mapping morphism First P P for Power form P First s d is a copy of d where every ci is replaced by hk o pr o Gj for 1 lt k t and every c d 4 3 4 General Wallpapers Using the definition of Firsts we are now able to describe a wallpaper for arbitrary Power forms It is composed of e a motif d AQ P c Cn with n coordinates c Cn of form C P being any f
64. or in their structural tree to the module of real numbers R To achieve this we again use casting morphisms as introduced in Section 4 3 3 We define a point zy1 R for every cp d with gi SA 9 using the casting morphism g 5 R and add all to the kd tree This is possible due to the assumption in the previous section that the R are em bedded in R During NNS the Euclidean distance can then be calculated within R Note that this NNS just considers the values of the denotators SA S ck If values of other denotators should be respected NNS but no morphing should take place in their direction it is recommended to define a dimension h with an bn 0 0 A few special cases of alteration some of them using this method and a thorough example will be discussed in the next sections More details about the implementation of NNS will be given in Chapter 5 4 4 3 Imitation of the OrnaMagic rails In presto the direction of alteration can be limited by selecting one of four different rails as described in Chapter 3 Section 3 2 1 With our definition of alteration two of these rails can be imitated We assume a common two dimensional presto alteration space of Onset x Pitch and therefore define two alteration dimensions with S Onset S2 Pitch Onset and Ra Onset For the two rails we need the following restrictions e horizontal rail 0 0 e ve
65. orm of type Power e a grid spanned by the morphisms f f1 fm fi V V Vi x Vi and W Wi Wi being products of arbitrary modules e and the corresponding ranges r1 rm ai bi 2 where ai lt bi To be able to use the function First we take one configuration of Simple forms G as described above but this time all from Sp The general wallpaper is then defined as follows wid f r U First m o First d keer Note that First is not a functor and therefore cannot be applied to a product of f s In the next section we give an example to illustrate the above definitions 34 CHAPTER 4 GENERALIZATION OF CONCEPTS 4 3 5 Example for Denotator Mapping and Wallpapers Assume we would like to transform a Score denotator m by a morphism f R R with f g r i5qr 2r Additionally we specify Onset Pitch Onset and Ha Loudness The necessary auxil iary morphisms are n R R 92 Q Lu R i1 R gt with i r 7 0 i2 R R with i r 0 7 pi R gt R with p q r q R R with p q r r hy R gt R and ho R Z g and are identity morphisms since G4 and H4 have the same module as f s domain and codomain factors Then we define the following Score denotator m For simplicity we just specify Onset and Pitch denotators for they are the only Simple denotators needed for transformation A
66. osen as an alteration goal in case there are multiple nearest neighbors In our early implementation we found a solution for in tegrating this issue in RUBATO COMPOSER However since we use a kd tree now for nearest neighbor search this is not possible anymore e The diagonal rails that could be selected to restrict alteration direction in presto could not be adapted to RUBATO COMPOSER For their real ization the mathematical definition of alteration has to be extended e The present implementation is restricted to process denotators of Simple forms that are embedded in R Forms of other modules like string rings or polynomial rings are not yet supported 7 3 Future Work There are many possibilities for future uses and further developments of the contributions of this thesis Just a few of them are stated here e At the first international conference of the Society for Mathematics and Computation in Music a demonstration of the possibilities of 7 3 FUTURE WORK 65 wallpapers and alteration will be presented Mazzar In a composition project with Guerino Mazzola s research group Pierre Boulez Structures Ia is reconstructed and altered with RUBATO COM POSER In this context the Wallpaper rubette has to be developed further to be able to generate wallpapers made of multiple motifs Using special denotators defining a function the alteration degrees could be defined more precisely than just by two boundary values For th
67. perties List Macrolnput lE MacroOutput ModuleMap Stat 1 R RealArith Sum Real Reform Real a Register Properties ee The Display Rubette 0 shows a text or XML representation of the input denotator in its view M Display 43 Add ssam Edit a Rem E JE Problems Message Log Clear Figure 2 6 The main window of the RUBATO COMPOSER GUI showing a network of three rubettes a network of rubettes To build such a network rubettes can be dragged from the area at the right border of the window where there is a list of all present rubettes The lower area is used to display messages generated during construction or execution of a network By pressing on the icons in the bar above these areas several dialog windows can be opened for the definition of morphisms forms or denotators To read more about these functions see Milm06b 2 4 2 Rubettes rubette is a Rubato software module represented by a box with input or output connectors or both to receive and send data Figure 2 6 The data format used for communication between rubettes is the denotator for mat described in Section 2 3 So a rubette can either receive a number of input denotators to be manipulated or generate denotators itself Then denotators can be sent on to other rubettes 16 CHAPTER 2 THEORY AND APPLICATIONS 1 Stat 1 Properties Form to extract Real simple Select Function S
68. ple of the met ric period These notes obtain the accented loudness whereas all other notes obtain the unaccented one The number of different notes values and the value base and maximum exponent have to be specified Additionally a meter period can be specified If it is greater than 0 the loudnesses of accented and unaccented notes must be indicated else it is A 1 SCORE RUBETTES 69 e Untitled 1 Rhythmize 2 Properties Number of note values 3 Value base 2 0 Maximal value exponent 1 0 Meter period 2 0 Loudness of accented notes 120 Loudness of unaccented notes 80 Hide N Revert Apply Apply amp Hide Figure A 2 The Rhythmize rubette s properties window Scale Group Summary Outputs Description Properties ignored The properties dialog is shown in Figure 2 Score Generates a musical scale 1 denotator of form Score Either a predefined scale or a custom scale is generated the pitches of its notes ranging from 0 to 127 MIDI pitches Onset is set to 0 loudness to 120 duration to 1 and voice to 0 for every note in the scale Starting at the specified root note pitch the defined sequence of intervals is stepped through repeatedly until the above mentioned boundaries are reached For each pitch reached this way a note is added to the output denotator The number of notes has to be specified using the slider see Figure A 3 Then t
69. put denotator has to be speci fied using the standard form entry Then using the Add but A 2 CORE RUBETTES 71 Untitled 1 Wallpaper 1 Properties Input form Score power Select Wallpaper dimensions Add Remove Up Down RFreeAffineMorphism 2 4 007 1 0 1 RAffineMorphism 1 0 0 5 0 0 Hide Revert Apply Apply amp Hide Figure A 4 The Wallpaper rubette properties window ton any number of wallpaper grid dimensions can be added see Figure A 4 These are shown in the table below the but ton row When the Remove Up or down button is pressed the dimensions selected in the table are removed moved one position up or one down in the table For every dimension a module morphism has to be specified in the dialog that opens when a field in the leftmost column of the table is double clicked In the two middle columns the dimension s range has to be defined Finally by double clicking a field of the rightmost column the Simple forms to be transformed by the morphism indicated above have to be specified The appearing dialog is shown in Figure A 5 a For every module of the morphism s domain and codomain Simple form needs to be selected using the combo boxes View The wallpaper rubette provides a view see Figure A 5 b which is similar to the graphical representation of geometrical morphisms in the Edit module morphism dialo
70. r 1 and the corresponding ranges r 0 1 and 6 1 WALLPAPERS realExample Display 3 View Denotator ph Source 1 reals RealSet 55 realExample Display 44 View Denotator Name reals Form RealSet Type Properties ame Form RealSet Type power Ac Name Form Real Type simple Name Form Real Type simple RElement 2 0 RElement 2 0 Name Form Real Type simple Form Real Type simple RElement 5 0 Wallpaper 2 Name Real Type simple Name Real Type simple orm Real Type simple RealSet power RElement 6 dm ET 2 rm eal e simple Display type Properties RElement 9 0 9 Text O XML View Hide Display type 9 Text O XML Display 3 Display 4 View Ip View Hide Figure 6 2 An example for a non musical application of the Wallpaper rubette 0 1 Note that the wallpaper just contains 6 instead of 8 elements This is because f f1 2 2 and flo f2 2 fio f1 2 3 and the wallpaper therefore should contain two copies of the Real denotator with value 2 and two copies with value 3 However these would be equal and therefore the Power denotator reals just accepts a single copy of each of them 6 1 3 Polyphonics The next example we presented at the Digital Art Weeks Conference 2006 in Z rich It demonstrates RUBATO COMPOSER s polyphonic po
71. rall implementation structure as well as some selected reusable utility classes which we implemented within the scope of this thesis 5 1 Programming a Rubette Initially we briefly describe how mathematical definitions like those in the previous chapter can be translated to rubette code There are four rules that have been respected for the rubettes in this thesis e Given denotators become rubette inputs The number of inputs can be defined using the setInCount int n method To get the input de notators in the run method the getInput int i method is used e All other given data become rubette properties They are implemented as javax swing JComponent returned by the rubette s method getProperties O so that users can define them at runtime Addi tionally the methods applyProperties and revertProperties have to be implemented They are used to save and load the properties in the component to and from the rubette s instance variables which 45 46 CHAPTER 5 DESIGN AND IMPLEMENTATION are read when the rubette is run e The calculations are initialed in the rubette s run method e The final definition or result becomes the rubette output This can be specified using the methods setOutCount int n and setOutput int i Denotator d All methods mentioned here are methods of the class AbstractRubette There could also be other translation procedures for example some of the properties data point 2 could be wrapped
72. re 2 3 According to theorem 53 in Appendix E Section 3 6 in Mazz02 by combining such two dimensional operations any transformation in the four dimensional musical space can be realized The second version of presto 1993 involves an interesting module called OrnaMagic from which the conceptual basics for this thesis are taken These concepts will be described in Chapter 3 In this chapter we focus on decribing the issues of mathematical music theory 2 3 Functorial Mathematical Music Theory About a decade later Mazzola developed further the theoretical base of presto The achievements are described in The Topos of Music Mazz02 and are based on category theory Pier91 and topos theory Gold84 used to formalize manipulate and analyze musical objects These theoretical foun dations have again been implemented The corresponding software product is called RUBATO COMPOSER and is described later This section gives a brief introduction to the data format of functorial math ematical music theory and the different ways of its manipulation just as 2 3 FUNCTORIAL MATHEMATICAL MUSIC THEORY 9 PRESTO File Block Symmetries Ornaments Composition Instruments 4 Onset Pitch Choose image of the center or standard transforn Draft 17 a 0 24 8 Place B ii ii CO inverse L6 6x EMEA aga Onset 24 Pitch 71 Loudness 36 Figure 2 3 T he presto transformation score much as suffices for understanding
73. rino Mazzola G rard Milmeister Karim Morsy and Florian Thalmann Functors for Music The Rubato Composer System In Digital Art Weeks Proceedings ETH Z rich 2006 Guerino Mazzola The Presto Manual SToA Music Z rich 1989 Guerino Mazzola Geometrie der T ne Elemente der Mathematischen Musiktheorie Birkhauser Basel 1990 Guerino Mazzola and Oliver Zahorka The RUBATO Performance Workstation on NEXTSTEP In ICMC 94 Proceedings ICMA San Francisco 1994 BIBLIOGRAPHY 77 Mazzar MIDI96 Milm06a Milm06b Mors Nien03 95 91 Presto Puck07 RubatoC RubatoN RubatoX Sibelius Slon47 Guerino Mazzola and Florian Thalmann Grid Diagrams for Ornaments and Morphing In First International Conference of the Society for Mathematics and Computation in Music MOM Berlin 2007 to appear The Complete MIDI 1 0 Detailed Specification The MIDI Manufacturers Association Los Angeles 1996 G rard Milmeister The RUBATO Composer Music Software Component based Implementation of a Functorial Concept Architecture PhD thesis University of Z rich 2006 G rard Milmeister RUBATO COMPOSER User s Manual Tech Rep University of Z rich 2006 Karim Morsy Denotatorbasierte Makroevents und Methoden der musikalischen Komposition Ongoing research project University of Z rich Han Wen Nienhuys and Jan Nieuwenhuizen Li
74. rtical rail a1 b1 0 0 4 5 MELODIES RHYTHMS AND SCALES 39 There is no way to simulate the two diagonal rails with our present defini tions They would have to be extended for this 4 4 4 Alteration Examples We give two examples for alteration both of them inspired by presto s Easy Ornaments module described in Chapter 3 Section 3 3 For tonal alter ation increasing in time we choose d to be a composition and da to be a musical scale the generation of which we describe later and perform a one dimensional alteration with 1 Pitch a1 b1 0 1 and R4 Onset For quantizing decreasing in time we need composition dz to be a rhyth mical grid of the same length in time as d Such a grid can be created using a wallpaper Furthermore we define the following one dimensional alteration 51 Onset a1 b1 1 0 and R4 Onset 4 5 Melodies Rhythms and Scales three auxiliary rubettes written for this thesis output basic musical ele ments such as motifs and scales in form of Score denotators If MacroScores are needed the rubettes can easily be combined with the ScoreToMacro ru bette see Mors Most of the examples in this thesis see Chapter 6 have been created utilizing these rubettes 4 5 1 Melody Rubette The Melody rubette is used to generate simple random melodies fulfilling specific criteria The generation procedure is similar to Karlheinz Essl s random generator brownian
75. s shared by classes in different packages Some of them are described in a detailed way in Section 5 4 5 3 The Rubette Classes Here is a short overview of every package s contents The simplified UML diagram in Figure 5 1 visualizes their relationships org rubato rubettes wallpaper WallpaperRubette Main rubette class JWallpaperDimensionsTable Table in the rubette s properties MorphismCellEditor Editor for the table s morphism column SimpleFormsCellEditor Editor for the table s Simple forms column JSelectSimpleForms Dialog opened by SimpleFormsCellEditor JWallpaperView Wallpaper visualization JWallpaperViewPanel The Wallpaper rubette s view WallpaperRubetteTest Tests for all the classes in this package org rubato rubettes alteration 5 4 SHARED AND EXTERNAL CLASSES 49 AlterationRubette Main rubette class JAlterationDimensionsTable Table in the rubette s properties AlterationRubetteTest Tests for all the classes in this package org rubato rubettes score MelodyRubette Melody rubette class RhythmizeRubette Rhythmize rubette class ScaleRubette Scale rubette class MelodyRubetteTest Tests for the Melody rubette RhythmizeRubetteTest Tests for the Rhythmize rubette ScaleRubetteTest Tests for the Scale rubette org rubato util JPropertiesTable Superclass for the W A rubette s tables SimpleFormFinder Finds all forms of type Simple in a form tree SimpleFormFinderTest Tests for SimpleFormFinder NoteGenerator Easily creat
76. sed in RUBATO COMPOSER and therefore many of the examples in 2 2 GEOMETRY OF NOTES PRESTO 7 PRESTO File Block 5 Ornanents Composition Instruments Al Juve Jude ve Ges era ee em BE SELECT L score L SCORE PLACE B MOTIF Draft Grid Figure 2 2 The main view of the presto software for Atari ST this thesis are visualized in this way 2 2 Geometry of Notes presto It is interesting to note that the close affiliation of music and geometry has existed for centuries The western score notation for example and its predecessor the neumatic signs can be seen as a grid where notes are drawn as points and melodies as curves This representation has been abstracted at the end of the last century and this is indispensable for music to be represented and processed by computers Some of the major abstractions in this field were made by Guerino Maz zola by the end of the 1980s and described in his book Geometrie der T ne Mazz90 The theoretical foundations were subsequently implemented in the music composition software presto described in this section presto Mazz89 Presto was published in 1989 for Atari ST computers It provides a very elaborate interface shown in Figure 2 2 to compose and manipulate music and also supports reading from and saving to standard MIDI files MIDI96 recording music using a MIDI interface drawing music using the mouse or printing the composed
77. ssibilities by building a wallpaper from several voices These are imported from midi files and finally exported again e g to be played played by synthesizers in a sequencing software Figure 6 3 a shows the network for the example The top four rubettes are the MidiFileIn rubettes by means of which the four original MIDI files are imported and converted to the denotator format Above each of them a piano roll representation of the their output denotator is shown The two leftmost denotators are then given separate voices 1 and 2 using Mod uleMap rubettes whereas the two other denotators keep the voice 0 The latter two are converted to MacroScores by ScoreToMacro rubettes and combined using a MacroPredicateSelect rubette which is set to embellish all notes with pitch 38 in the left input denotator drums by the right input denotator roll In this procedure the notes of the roll denotator are automatically compressed in time to fit the duration of the said drums notes and added to them as satellite notes This causes all snare drum notes pitch 38 here to be played as a roll Because of the multi level 56 CHAPTER 6 PRACTICAL EXAMPLES 4 T I m _ _ _ gt 4 4 u Ten eet Te n 6 T a n ba bee Y gue a a 3 mn ne nn Ty a en m
78. t 3 Properties Intersection Properties Wallpaper 4 Score power 1 Properties J ScorePlay 5 View View V Figure 6 1 The network setup for an emulation of the intersection applica tion analogous to a presto local score From this excerpt coming out of the left outlet of the Select2D rubette a wallpaper is generated and finally using the Set rubette the intersection of the original score and the wallpaper is created and finally passed on to the ScorePlay rubette The union application can be realized with the same network just by se lecting the Set rubette s Union option 6 1 2 Non Musical Wallpapers Since the Wallpaper rubette accepts denotators of any form of type Power there are many interesting applications if suitable forms are defined e g for numeric calculations or graphical uses Here we give a very simple example using the form RealSet which is predefined in RUBATO COMPOSER Figure 6 2 shows its network consisting of four rubettes The Source rubette feeds a RealSet denotator named reals with two Real coordinates with values 2 and 5 into the network This denotator is then processed by the Wallpaper rubette and finally visualized using the Display rubette right part of the picture For comparison the original denotator coming from the source is shown using another Display rubette The wallpaper s grid is f f R fo R with filr 22r 1 d and fo r 5
79. t mapped This is described more precisely in Chapter 5 For now let us assume a t is always found This is the case for MacroScore and Score forms which is what is at least required For a MacroScore the function ensures that the same Simple denotators are transformed as by Macros Score coordinates just contain one denotator of every Simple form which are therefore the top ones to be found For simplicity we will later use SA S d in two ways sometimes to de nominate the denotator t itself but sometimes also directly for the value morphism of t Before First can be defined we need to describe the way we treat the more flexible morphism f mentioned above which we will do in the next section 4 3 3 Mapping Denotators by Arbitrary Morphisms Another interesting problem is to find a way to map a Power denotator d by any arbitrary morphism f Also if for instance the codomain modules of d s Simple denotator value morphisms do not match f s domain modules rubette dealing with this problem offers great flexibility and security since users can use a specific morphism for different purposes and cannot misap ply it in any way In order to solve this problem casting morphisms can be used to convert the Simple denotator s values so that they can be composed with the mor phism In this section we explain this procedure for a morphism f V W and a denotator d A P c cn of Power form P The morphism s domain V Vi x V and cod
80. tators by Arbitrary Morphisms 4 8 8 General Wallpapers 4 3 5 Example for Denotator Mapping and Wallpapers 4 4 Alteration i xoa ko Rex o E RS won o ox X ek We 8 4 4 1 Definition of Alteration 4 4 2 Nearest Neighbor Search 4 4 3 Imitation of the OrnaMagic rails 4 4 4 Alteration Examples 4 5 Melodies Rhythms and 4 5 1 Melody Rubette 4 5 2 Rhythmize Rubette 4 5 3 Scale R bette a 2 baa ek o x 5 Design and Implementation 5 1 Programming a Rubette 22 o RR 5 2 Package Structure and Classes 5 3 The Rubette Classes 5 4 Shared and External 1 5 4 1 SimpleFormFinder 5 4 2 NoteGenerator 5 4 3 ScaleMap Lus ew RO RR YR he aS DA 202228 wok eo vox RED REDE em OR 6 Practical Examples 6 1 Wallpapers o 2 2 42 a sos hwo ee PAE 6 1 1 Union and Intersection 2 6 1 2 Non Musical Wallpapers 6 1 3 Polyphomi s bad Speedos pk he ees 6 1 4 Functorial Dodecaphonics 6 2 Alterations er cas eae e gr ee PIE ee ee 6 2 1 Tonal Alteration lt s x 0 2 2 Quantizing s s a sos Pe ee eee RC 7 Conclusion G
81. ted the ornaments notes are added entirely to the global score With intersection all notes that are not present in the ornament are removed from the global score The third way alteration is a bit more sophisticated and will be described in the next section 3 2 1 Alteration Alteration also tonal alteration is a common expression in music used to describe a small change in a notes pitch b However in presto it is 3 2 APPLICATIONS OF ORNAMENTS 23 Points of the Composition p Ornament Points Figure 3 2 presto OrnaMagic s nearest neighbor algorithm used in a more general way describing a two dimensional process During alteration the notes in the global score are altered towards the notes of a specified ornament like in a force field In fact each note of the composition is attracted or repulsed by its nearest neighbor in the ornament The algorithm used to detect this nearest neighbor works as shown in Fig ure 3 2 It starts at the position of the compositions note and iterates in a spiral movement around it until an ornament note is found If no neighbor is found after 32 rotations the compositions note remains unchanged Oth erwise it is moved towards the neighbor by a specified percentage of their difference The starting direction of the spiral can be chosen and therefore the direction in which notes move if there are several neighbors at minimal distance If the percentage of
82. the higher level of abstraction associated with this new theoretical background they must also be generalized The advantages of this generalization will be a broader field of application i e more complex musical objects or even non musical ones In this chapter we first identify the limitations of OrnaMagic and outline the improvements that our new implementation offers Subsequently we provide mathematical definitions of the generalized concepts and function ality 4 1 OrnaMagic s Limitations The possibilities of presto and OrnaMagic are limited in several aspects First of all OrnaMagic is a module combining several independent opera tions Alteration for example is a self contained function which does not have to be applied in combination with ornaments as in OrnaMagic With RuBATO COMPOSER we are able to split up these functional entities into different rubettes which we do in the next section Second in presto everything is restricted to two dimensional geometry As mentioned before every thinkable higher dimensional transformation or or nament can be represented as combination of such operations but in practice it can be very complicated to think in such two dimensional factor transfor 27 28 CHAPTER 4 GENERALIZATION OF CONCEPTS mations and factor ornaments However for our RUBATO COMPOSER im plementation we will have to define the OrnaMagic operations to work with any higher dimensional transformations whi
83. the later explanations To understand it fully a founded mathematical background is required We refer to Part XVI of Mazz02 or Chapter 4 of Milm06a which both give a straightfor ward introduction to the mathematical foundations For the readers who are not familiar enough with the underlying mathematics we draw analogies to concepts of computer science 2 3 1 Forms and Denotators The data format of forms and denotators has many parallels to the concept of object oriented programming OOP in computer science Denotators can be seen as points in a specified form space as shown in Figure 2 4 In OOP one would speak of an object being a point in the space spanned by the attributes of its class Alternatively expressed in common OOP language denotators are instances of forms Complex forms are constructed recursively from the primitive Simple forms like in a programming language complex data types are built based on prim itive data types like integer numbers or strings The recursive structure of a form F is defined as follows Id p Typep Diar The form s name is a a denotator definition below its identifier is a monomorphism dr Spacer Framer of presheaves which are 10 CHAPTER 2 THEORY AND APPLICATIONS Figure 2 4 A schematic representation of a denotator left its form mid dle and the represented object right contravariant functors P Mod Sets from the
84. tion s notes and optionally their loudness if a meter or emphasizing period is specified The output of the Rhythmize rubette is monophonic i e one note at a time and therefore it can best be used to rhythmize monophonic mate rial e g melodies generated by the Melody rubette The rubette generates a sequence of notes s 0 Score where all notes of the input composi tion s 0 Score C1 Cm are aligned according to their playing order see Mazz02 Section 6 8 for more about the ordering of denotators where every subsequent note starts when its preceding note stopped Their dura tions are calculated based on very simple rules which we explain here In music note values durations are often multiples of each other e g a sixteenth note has half the value of an eighth note We therefore define a base b on which the different possible note values are calculated exponentially To restrict the possible note values we specify the number of exponents n and a maximum exponent value x Z We then get 1 the sequence of possible exponents where e x j 1 and the sequence of note values v4 v with vj 6 For example we assume b 2 n 4 and z 0 and we get v1 1 v2 j Us v4 1 the most common note values in music from the whole note to the eighth note For each note of the input composition s a duration d is randomly selected from the possible note values v with equal select
85. tructures named ornaments as well as their application possibilities Generalization of these concepts for functorial mathematical music theory Definition of two major mathematical constructs namely wall papers and alteration e Definition of necessary additional constructs for practical usage of the major constructs namely melodies rhythms and scales e Implementation of the formalized constructs in form of five rubettes ie plugins for RUBATO COMPOSER namely the Wallpaper Alter ation Melody Rhythmize and Scale rubettes Composition of different examples showing the uses of the implemented rubettes 1 3 Related Work Speaking of related works it is important to also illuminate the historical background from music composition Musical grid structures have been a common composition tool in Western music for centuries Here are some examples 1 3 RELATED WORK 3 e Real imitation in counterpoint Fux65 A melodic line is imitated note by note where note values and intervals stay the same This pattern was used for example by Josquin Desprez 1457 58 1521 in his polyphonic music and later refined by Johann Sebastian Bach 1685 1750 for the composition of his great fugues e Arnold Sch nberg 1874 1951 tiled melodic patterns and their trans formations e g the retrogrades or inversions in his twelve tone tech nique e In his works Harawi or Visions de Amen for example Olivier Mes siaen 19
86. type Power but since most constructions in music are based on Power forms sets of notes we will often use it We speak of set theoretic operations dUe dMe and d e for two Power denotators which share the same address A For example if d 0G Score ni n2 and 0 amp Score ns we obtain d U e 0 amp 8 Score ni no n3 and dN e 0 amp Score n2 2 3 4 Non Zero Addressed Denotators The third operation in our functorial approach is the address change For a given denotator d AQF c and an address change B A we obtain a new denotator d BQF coq where cog is the image of c under the map gQ Space Note that the above defined denotators are all zero addressed give an typical example for an application of address change we redefine the same 14 CHAPTER 2 THEORY AND APPLICATIONS score s as a Z addressed denotator o Z7 Onset mo with 72 R and Mo 21 z2 0 521 22 1 7 with Z Q and m a 22 a 229 0 Z Note o p l d v 8 Z Score n To obtain a denotator equal to the above defined s we have to evaluate 5 at specific elements of its address Z Precisely we defined its coordinates so that these elements are the basis vectors e 1 0 and ea 0 1 as well as the zero vector eg 0 0 of Z To address such an element we need to define the constant map ge 0 Z with ge 0 We hereby obtain the denotators Se
87. ublic Object getScaleNames int numberOfNotes This method is used to get the scale names keys for a specified number of notes To get all keys or a corresponding value the usual HashMap methods keySet or get O can be used 5 4 4 KDTree Some early experiments were made with a nearest neighbor search imple mentation using a standard algorithm which calculated the distance to each neighbor and selected the shortest time complexity O n We quickly noticed that already for n 1000 two scores with a thousand notes each alteration took too long 16 seconds approximately and we decided to use a common nearest neighbor algorithm the kd tree O nlogn The alter ation time for n 1000 could be reduced to two seconds In our implementation we reused kd tree java package programmed by Prof Simon D Levy of Washington and Lee University Lexington Vir ginia KD Tree released under the GNU General Public License GnuGPL It consists of the three classes 52 CHAPTER 5 DESIGN AND IMPLEMENTATION edu wlu cs levy CG KDTree edu wlu cs levy CG KeyDuplicateException edu wlu cs levy CG KeySizeException and exactly covers the needs described in Chapter 4 Section 4 4 2 One problem that appeared with the use of kd trees is that one functionality that was taken over from presto cannot be implemented fully anymore It is the possibility to define in which direction a denotator should altered if there are several nearest n
88. uctures not just musical ones since they accept any denotators of type Power as inputs All note coordinate values in presto are positive integers Pitch loudness and duration are moreover restricted to a maximal value of 72 In RUBATO COMPOSER the processed structures can have elements of many different modules as values Our present implementation of wallpapers and alteration includes the modules 2 0 R and Z 63 64 CHAPTER 7 CONCLUSION presto OrnaMagic RUBATO COMPOSER design serial modular input set of notes any Power denotator values discrete integer values 2 0 or Z values space onset x pitch loudness duration any arbitrary space grid vectors 2 dim translations n dim morphisms Table 7 1 Differences between the two implementations The space for grid structure generation and application is two dimensional in presto and consisting of onset and a second coordinate The new imple mentation allows the selection of any conceivable n dimensional space This difference also applies to the grid vectors In presto these were in the two dimensional and additionally restricted to simple translations Our new implementation features affine and other morphisms of any dimension 7 2 Open Issues Despite the benefits of our new implementation there are some open issues that have not been implemented yet e In presto users can make the decision which neighbour should prefer ably be ch
89. um H Hide Revert u Apply Apply amp Hide a 1 Display 3 View Denotator Form Real Type simple Address RFreeModule 0 RElement 7 0 0 Display type 9 Text XML Hide b Figure 2 7 The Stat rubette s properties window a and the Display ru bette s view window b A rubette may need specific user parameters to define the characteristics of its task These are provided by an optional properties window Figure 2 7 a appearing when the properties button is pressed Furthermore a view window may be generated for each rubette to show results or data repre sentation i e text graphs or images Figure 2 7 b Rubettes are easy to implement and they can manipulate denotators in any way a programmer can imagine To create a rubette the class AbstractRubette is subclassed and its abstract methods have to be im plemented details about this are given in Chapter 5 Then the compiled rubette packed in a Java archive has to be put in a specific directory where it is automatically recognized by the main application on the next startup 2 4 5 Mathematical Framework Apart from classes for rubette generation and reusable GUI components the RUBATO COMPOSER framework provides all necessary classes for de notator generation and manipulation They are located in the package org rubato math Here we take a brief look at the most important classes 2 4 RUBATO COMP
90. und of the form specified in the fourth column of the table First using the standard form entry the Power form of the input denotator has to be specified see Figure A 6 Using the buttons Add Remove Up and Down alteration di mensions can be added to removed from or moved in the di mensions table in the same way as in the Wallpaper rubette s table In the first column of the table the altered form has to be specified for each dimension The next two columns hold the alteration degrees the second is the degree for the lowest value 2 CORE RUBETTES Untitled 1 Alteration 1 Properties rInput form Score power Select Alteration Dimensions Onset simple R 0 0 Pitch simple Q 0 0 Global degree Low 0 0 Add Remove Up Down 1 0 1 0 High 1 0 Onset simple R Onset simple R 73 Hide Revert Apply Apply amp Hide Figure A 6 The Alteration rubette properties window and the third the one for the highest value In the last column the form has to be specified relative to the values of which the local alteration degrees are calculated If the alteration degrees are meant to be the same for all di mensions the Global degree checkbox can be selected All degrees will then be set to the values in the two text fields at the right hand side of the checkbox 74 APPENDIX A MANU
91. welve transformed copies of the original The resulting score is then evaluated at the basis vectors of the address space Z and finally merged with the original series and the bass line in a Set rubette An excerpt of the resulting Score is shown in Figure 6 4 b The middle and top voices show the beginning of what the second wallpaper created whereas the lower voice is part of the result from the MacroScore subnetwork 6 2 Alterations Next we present two examples for alteration They are the two most com mon in musical applications namely tonal alteration and quantizing 6 2 1 Tonal Alteration Tonal Alteration as explained in the context of presto in Section 3 3 2 can be easily reproduced in RUBATO COMPOSER Figure 6 5 shows the minmal network settings The Scale rubette is ideal to provide a scale towards which the notes of the composition are altered In the Alteration rubette preference window the necessary specifications for an alteration gradually increasing in time can be seen low degree 0 high degree 1 60 CHAPTER 6 PRACTICAL EXAMPLES J MidiFileln 1 a Scale 2 ION C Untitled 1 Alteration 3 Properties voiles mid japanese Input form Properties Properties Score power Select lt Alteration Dimensions Alteration 3 Global degree 7 Low 0 0 High 1 0 Score power 1 fcc Add Remove Up Down Pitch simple Q 0 0 1 0 Onset simple R ScorePlay 4 New Hide
92. y transformations just on the top level of a hierarchical structure Like this every subordinated trill note in our example maintains its relative position in time after its base note Here is the definition of the recursive MacroScore form MacroScore Id Power Node Node Id Limit Note MacroScore With this recursive definition it is possible to define structures with any hierarchical depth i e trill notes can be embellished with trills themselves and so on To describe the transformation of macro scores given a mor phism f Note Note and a denotator d A MacroScore c1 Cn with coordinates c AQ Node Note M we define a morphism Macro 2 4 RUBATO COMPOSER 19 MacroScore MacroScore as follows Macro d f Note ci d The morphism f is just applied to the top level notes Note of the MacroScore leaving their satellites in Me unchanged If we wish to trans form satellites on a specific level we simply apply Macro to the MacroScore of their direct parent note To process macro scores further such as playing the music they contain it is often necessary to convert them into a Score denotator Related to this a special method called flattening is used It creates a MacroScore denotator from another one by collapsing a number of hierarchical levels For example if we perform a one level flattening the second level satellite notes are integrated into the top level MacroScore denotator

Download Pdf Manuals

image

Related Search

Related Contents

Kenroy Home 93060ABRZ Installation Guide  Intenso Mobypack 3000  Proflow3 - Manual (Español)  CONDITIONS GÉNÉRALES DE VENTE ET DE  ダウンロード  3 - SKY AGRICULTURE  Mode d´emploi SCHICK - Fraiseuse S2 Master  Yamaha PSR-S710 User's Manual  Bedienungsanleitung  MTM800 Enhanced TETRA Mobile Terminal Installation Manual  

Copyright © All rights reserved.
Failed to retrieve file