here

Transcription

here
Drawing Music : An investigation into
the research, design and implementation of an interactive Audio reactive
application intended for real time music visualisation purposes.
Prepared for: Ian Wallman
Prepared by: Juan Hurlé
S.A.E.Oxford
21 October 2010
Student Number: 14049
Word Count: 10.500
Table of Contents
Abstract
1
1
2
INTRODUCTION
2
2
4
BACKGROUND
4
2.1 Definition of Visual Music
4
2.2 History of Visual Music
5
This section comprises a selection of the most influential artists along history who
worked in this topic. A thorough discussion of every single one of them is completely out
of the scope of this project since research has revealed that there has been an immense
interest and work regarding Visual Music since the Renaissance.
5
Early Experiments and Colour Organs
5
Scriabin’s Prometheus
5
Scriabin’s relationship between colour tones and music.
6
Wassily Kandinsky
6
Wassily Kandinsky - Several Circles (1926)
7
Non Narrative Cinema: Walter Ruttman, Hans Richter
7
Mary Ellen Bute
7
Expanded Cinema: John Whitney and sons, Oskar Fischinger, and Norman McLaren.
8
2.2 Music Videos, Visual Music, Digital Art and the Club Era
8
2.3 Current Trends
10
2.3.1 Raster Noton
10
2.3.2 Ryoichi Kurokawa
11
Page i
Ryoichi Kurokawa performing at Mutek Festival 2007
11
*Note
11
3
12
TOOLS
12
3.1 Pure Data
12
3.2 Processing
12
3.3 Open Frameworks
13
3.4 vvvv
13
3.5 Isadora
13
3.6 Max/MSP
13
4
15
Max/MSP/Jitter
15
4.1 Brief Overview of Programming
15
4.1 Brief History of Max
16
4.2 Max
16
4.2.1 Objects
4.3 Max Signal Processing (MSP)
18
4.4 Jitter
18
4.5 Expanding Max
19
4.6 The Reason Behind Choosing Max
19
4.6 Basic Programming using the Max Environment
19
5
17
22
Page ii
PROJECT : Music Visualisation Tool
22
5.1 Introduction to the project
22
5.2 Main Concept
23
5.3 Working Rates
23
5.4 The Core: FFT vs 3 Band EQ
24
5.5 MIDI
25
5.6 The patch explained
25
5.7 The Interface
31
Finished Interface
32
5.8 Known Problems and Bugs
32
5.9 Application Building
32
6
33
CONCLUSION
33
A
35
APPENDIX A: Jitter Matrix System
35
B
37
APPENDIX B: Open GL
37
R&B 40
References and Bibliography
40
Page iii
Abstract
This project tries to give some light to the existent possibilities of audio visual composition, based on the
principles of Visual Music, a subject that has been explored by artists and scientist for centuries. The
body of work includes a background of the subject, a study of the current tools and the development of
an interactive Audio reactive application intended for music visualisation purposes. The project has shown
that Audio Visual creation is more doable that ever, even for non technical users due to the increasing on
computer speeds and the broad range of existing tools, a fact that has been proved by the application
created in the time frame of two months, with no previous experience on the subject itself. Audio Visual
composition will most definitively become a common practice in the following years.
Page 1
1
INTRODUCTION
“However great the power of the ear to stir the emotions, however wideranging the information it receives, [...] the sense of hearing cannot attain that clarity
of consciousness which is native to that of sight.”
(Jenny, H. 1967)
Music, just as any other form of artistic expression, can be distinguished from other disciplines by its delimitation by the medium and amongst other things, the sense by which it is perceived ( Lyons, A. 2003,
p. 175), It is clear that music and sound come to our brain through our hearing. Though this is not exactly
true for certain people who are affected by a particular kind of phenomena called Synaesthesia, a rare
perceptual condition which “mixes” senses, commonly audition and vision. Dr. Richard E. Cytowic defines
this condition in the following manner: “Synaesthesia is a word derived from the Greek words ‘syn‘ meaning together and ‘aesthesis‘ meaning perception. It is used to describe the involuntary physical experience of a cross-modal association. That is, the stimulation of one sensory modality reliably causes a perception in one or more different senses.” (Cytowic, R.E. , 1995, p.1 ). Synaesthesia has always been related to art, specially music, and it has also been used as a theme for both Synaesthetes and nonSyanaesthetes in different research fields such as Psychology or Neurology (Orlandatou, K. 2009 , pp.18
- 36 ) For that vast majority of people that do not “suffer” the effects of this affection, visualising music is
limited to either the imagination of the concepts described in physics related to the propagation of waves,
( concepts which are not accessible to everybody and even difficult to imagine for the most knowledgeable ) or either the use of audio analysis tools that provide the user with a visual representation of sound.
In terms of “real” sound visualisations, the experiments of Hans Jenny on the structure and dynamics of
waves and vibrations are probably one of the most interesting pieces of work regarding the visual component of sound, in other words, the shape of sound. By putting sand over a vibrating membrane driven
by an oscillator he was able to discern different patterns associated with different frequencies and amplitudes , interesting facts were discovered such as the increment of the complexity of the shapes along
frequency and also some interesting oddities like the sound of the vowels of some ancient languages
(Hebrew) created in the sand the shape of their written symbol (Pettersson, P. 2002 ).
Page 2
Back to the theme of Synaesthesia in art, many attempts have been done since ancient times to establish
a link between sight and hearing and this project is no different.
In the next chapter, a background on the subject will be presented, showing the most important
Page 3
2
BACKGROUND
Visual Music is a subject that belongs to the world of Performance Arts, although its recent history puts it
in the context of “club culture” and the so called “Vj” it has many connections with other art forms such
as Painting, Lumia, Colour Music, Expanded Cinema, Live Cinema (which can probably be considered as
a branch of the previous one) or the recently born Digital Art. There is very little written history available (
Makela, M. 2006, pp. 4-6) this might well be because it is not a perfectly defined subject, rather, a blurred
emerging discipline that can shape and adapt itself according to the time frame. During the next sections
of this chapter, an insight into this fascinating topic will be presented, trying to mention most of the relevant names found in the research stage.
2.1 Definition of Visual Music
As Cornelia and Holger Lund express on their book Audio.Visual - On Visual Music and Related Media,
the term Visual Music was first used with some frequency in various discussions of experimental and
specially “absolute” film during the 1920s and 1930s (Lund, C and H. 2009, p.11), later on on the same
book, the author attempts to give a description of the topic stating that Visual Music is the collection of
audiovisual productions pursuing the basic objective of evenly balanced or equilibrated interplay between
visual and acoustic components (Lund, C and H. 2009, p.12). This definition seem to be perfectly suitable
since it is reasonably open ended, enough to adapt itself to future explorations of this form of art and also
fits with the idea of this project’s author.
Page 4
2.2 History of Visual Music
This section comprises a selection of the most influential artists along history who worked in this topic. A
thorough discussion of every single one of them is completely out of the scope of this project since research has revealed that there has been an immense interest and work regarding Visual Music since the
Renaissance.
Early Experiments and Colour Organs
The first references to this “genre” date back to the times of Leonardo da Vinci , who made sketches of
colour organs around the fiftieth century (Lyons, A. 2003, p. 166). At the end of the 19th century two
main experiments were made around Colour Organs, a type of organ which would play with different coloured lights to correspond with the music of the instrument (Bishop, B. 1983, p. 3). These two experiments where made by Bainbridge Bishop and Alexander Remington respectively, the latter published a
book in 1911 titled Colour-Music: The Art of Mobile Colour (Lyons, A. 2003, p.167).
Scriabin’s Prometheus
Scriabin established a relationship between tones in colour and music, which was later applied to his orchestral composition Prometheus:A Poem of Fire (Makela, M. 2006, p.14). The table of tones-music that
he created was inspired by his conversations with Nicholai Rimsky-Korsakov, both of them were regarded
as Syanaesthetes (Lyons, A. 2006, p 168).
Page 5
Scriabin’s relationship between colour tones and music.
(Bower, F. 1995 p.114)
Wassily Kandinsky
Another prominent artist who was also believed to be affected by Synaesthesia and specially the type of
colour hearing (Orlandatou, K. 2009 p. 28) was Wassily Kandinsky the first abstract painter. He was inspired by Wagner’s idea Gesamtkunstwerk, or the total work of art embracing all possible artistic disciplines, and the relationship between musical tones and colour formulated by Scriabin. Kandinsky’s heterogeneous ambivalent creative intentions did not prioritise any specific artistic discipline but rather, utilised diverse techniques which overlapped, in order to achieve a catharsis spiritual feeling opposed to materialism. Therefore, he intended to represent spiritualities thanks to abstract shapes and the use of colours. For this author every artistic field was moving towards the spiritual due to abstraction as he perceived the music of Schoneberg, Wagner, Debussy, Scriabin, Schumann and Mussorgsky.
Spiritual renewal could only emerge from a total blending of all arts, for instances this can be seen in his
investigation application of his idea of the psychological effects of colour which generated a new harmonic theory of forms depicting a contrast due to warm and cold or light and dark tensions so that pure
painting mixtures colour and shapes each with its autonomous life but each conceived into a shared
existence.His desire to gather as many artistic experiences as possible “pure art” can be seen in his first
play for theatre The Yellow Sound or in his essays Concerning the Question of Form or Painting as Pure
Art, both from 1912. (Duchting, H. 2007, pp. 37- 42)
Page 6
Wassily Kandinsky - Several Circles (1926)
Non Narrative Cinema: Walter Ruttman, Hans Richter
The field of experimental cinema expanded the possibilities of exploring this topic. Great examples of this
were Hans Richter and Walter Ruttmann who created Non-Narrative films during the 1920s. The most
prominent pieces of work in this field were Ruttmann’s Berlin- A Symphony of a Great City (1920) and
Diagonal Symphony (1919) by Hans Richter and Viking Eggeling. Dozens of Filmmakers created abstract
films that addressed such a theme, but film is fixed, each showing of a film very like every other, while the
performance of live music is not. (Collopy, F. 2007 p. 2)
Mary Ellen Bute
Between the 1930s and the 1950s Mary Ellen Bute created a series of abstract films combined with music called Seeing Sound. She also wrote several books, one of them titled Light as a Material and its Possible Synchronisation with Sound (1932). Mary Ellen was fascinated by the work of Wassily Kandinsky
and the repercussion of music, as she stated “It was particularly while I listened to music that I felt an
overwhelming urge to translate my reactions and ideas into a visual form that would have the ordered
sequence of music” (Bute, M. E. 1952, p.263 ). She continued working along these lines for the rest of
her career.
Page 7
Expanded Cinema: John Whitney and sons, Oskar Fischinger, and Norman McLaren.
“One no longer can specialise in a single discipline and hope truthfully to ex-
press a clear picture of its relationships with the environment”
(Youngblood, G. 1970, p. 41)
In order to understand this rather complex and broad genre it is necessary to give a definition. As explained by Gene Youngblood the author of the book Expanded Cinema (1970): Like life (Expanded Cinema) its a process of becoming man’s ongoing historical drive to manifest his consciousness outside of
his mind, in front of his eyes. ( Youngblood, G. 1970 p. 41 ). This artistic movement fiercely encourages
the use of computers in the creation of works, an interesting development was the computer image
process called Animac which generated images in conjunction with acoustical or anthropometric analogue systems.
Involved in this sphere we find John Whitney, one of the early pioneers in computer based animation, he
believed that this medium was the definitive medium for this sort of artistic expression. There has been a
certain tradition within his family as his brother and three sons exemplified. His descendants boosted their
father’s work to the max, creating multi-projection shows and even touring live with the Grateful Dead
performing visual shows along their music. This can be the perfect precursor for modern music performances where the visual aspect plays an essential role as music accompaniment.
2.2 Music Videos, Visual Music, Digital Art and the Club Era
Modern examples of Visual Music can be easily associated with electronic music performances and the
so called Digital Art.
Page 8
Music Videos and Visual Music are two different ways of relating music and the filmic image, nevertheless
pinpointing the differences between them seems to be complex, similarities can be found in their nomenclature which is only perceived when we approach the issue at first. As Peter Weibel’s note “Music video”
can be interpreted as “I see music”. Similarly the concept “Visual Music” defines a Synaesthetic experience in which temporarily arrange Sounds and noises result visible.
Music Videos evolve from various traditions, as Jack Banks remarked, Video Clips are sort advertising
films that are linked to the development of music television (Banks, J. 1996)
When young A. Lack became the director of Wasec (Warner Amex Satellite Entertainment Company) he
hired Robert Pittman to include a music video within Wasec which lied to the creation of MTV in 1981
with the aim of advertising by broadcasting Video Clips which seemed a greater scope alternative to concert Tours.
Music Videos offered a compact format for mass consumption, however the only visible reference to the
product appeared at the beginning and at the end of the video clip normally including the artist name,
song and album title. This clips focused not only in the sounds but also in the images presenting the stars
and diminishing the high costs of life performances for producers and the public. From another perspective, Music videos must be categorised in the outer context of music films, both of them present the orientation of the artist and the narrative structure even the video clip need much more economical narration.
Visual Music contemporary concept begins in the 1980s in public venues: Clubs, Discotheques, Festivals
and Raves broadcasting on monitors or showing on screens with projectors and thus arranging the
space.
Thanks to the technology developments as the increase processor performance or raised display card
capacity, there is the chance of digitally produce Visual Music since the late 1990s.
Those responsible for such creation are known as Visual or Video Jockeys (Vjs) who pick up images from
the chosen sources an organise them with the music of an on location Dj; so that the VJ uses techniques
from the DJs as Sampling or Looping, this is the reason why the VJ usually works to the Dj’s principles.
Visual Music can be employed in a commercial context but does not reach the mass targeted audiences
that music video does. As the Video Clip, it can be related to different traditions:
Page 9
The Single Wing Turquoise Birdgroup : Henry Jacobson and Jordan Belson , in their Vortex concerts held
at the Morrison Planetary in San Francisco from 1957 until 1960 employed the totality of the space as
projection area.
The Smart Light Shows of the 1960s derived from experiments of Seymour Locks to electronic music at
San Francisco State College. Similarly Joshua White, William Schwarzback and Thomas Shoesmith,
Joshua Light Show of 1969 included live performances of Bob Dylan, Janis Joplin, Frank Zappa and
many others.
A close practice to Visual Music is Video Art, a discipline that begun on the 1960s. Its pioneers, specially
Nam June Paik and Wolf Vostell discovered new ways of producing, manipulating and transmuting existing images .
A discernible depart from the video clip, is that narrative and figurative aspects remain secondary since
the main objective is to create a specific atmosphere where the images present certain opacity so it does
not place the viewers in a different place in time, rather it aims at provoking the public’s performance.
(Weis, M. in Lund, C&H ,2008 pp. 88-96)
2.3 Current Trends
It is important for the author of the current work to provide a special mention to some audio visual performers of nowadays because of their direct relation with this project. The Raster- Noton Collective and
Ryoichi Kurokawa.
2.3.1 Raster Noton
Raster Noton is a record label as well as a platform for new media. It was formed by Olaf Bender,
Frank Bretchschneider and later Carsten Nicolai. Their work involves real-time audiovisual com
position that have been shown at some of the most important events in this area such as the Visual Music Exhibition held at the Museum of Contemporary Art, Los Angeles 2005. As Alva Noto (also known as Carsten Nicolai) said in an interview to Bleep Blog, that he started as a vis ual artist and while going through some sort of crisis and whilst researching about Time, he dis covered that his real passion was music, and combined both disciplines to create a whole that is bigger than the sum of its parts.
Page 10
2.3.2 Ryoichi Kurokawa
This young Japanese artist explores Time Sculpture, fusion between sound and digitally gener
ated shapes whose movements and deformations respond to dynamics of the music played. He has performed in some of the most respected art exhibitions worldwide in renowned places lake the Tate Modern in London, showing today’s probably most accurate achievement in the field of Synaesthetic art. The fusion between audio and video is so seamless that one can hardly distin
guish one from another. The work of this artist can be considered as the main motivation for this project. One can hardly imagine how all the previously mentioned artist would have reacted to s uch thing if they would have been able to see it.
Ryoichi Kurokawa performing at Mutek Festival 2007
*Note
The previous compilation of artist and work is just a minimum part of what its possible to find regarding
this field. As said before, an exhaustive discussion is well out of the scope of the project, however this
enlightens the fact that this form of artistic expression has been constant since ancient times and one can
presume that it will be still alive for quite some time.
Page 11
“We shape our tools and therefore our tools shape us”
(McLuhan, M. 1964)
3
TOOLS
This section comprises a short list and discussion of some of the most popular multimedia programming
environments, the perfect tool for a cross-media project.
3.1 Pure Data
PD or Pure Data, is the outcome of years of effort of the well known MIT (Massachusetts Institute of
Technology) graduate Miller Puckette (author of one of the most important books in digital signal processing: The Theory and Techniques of Electronic Music ). This program was developed while woking at IRCAM (Institut de Recherche et Coordination Acoustique/Musique) during the 1980s . The program is said
to be the third major branch of the programming languages known as Max ( Max/FTS, Max/MSP , jMax,
etc...) orginally developed by him as well (Zmoelig, I. 2010 ). Because of its condition of Open Source it is
supported by a huge community of developers that contribute making PD bigger every day. It contains
objects for pretty much everything cross-media: Audio, Video, 3D Graphics (extension called GEM) and a
long etc. Plus is totally cross-platforb being available in pretty much every known Operative System (OS).
Pure Data can be expandable since it is based in C code, by writing externals in this language. This is an
incredibly useful tool not to be missed out. One can download it for free at http://puredata.info .
3.2 Processing
Page 12
Processing is and Open Source programming Language and environment based on Java, and created by
Ben Fry and Casey Reas. It is cross-platform and it contains over a hundred libraries for many subjects
such as sound, 3D , video and many more. It is extremely well documented with many sources of information available such as book or full websites dedicated on teaching this interesting work environment.
The kit can be downloaded from the official Processing website. (http://processing.org)
3.3 Open Frameworks
Open Frameworks is a C++ library created by Zach Lieberman, Theodore Watson and Arturo Castro that
is born from the ACU toolkit and the Processing environment, it is also code based and as the creators
themselves say “ It provides a simple and intuitive framework for experimentation”. The library serves as a
bridge with other commonly used libraries such as OpenGL, quicktime, or rtAudio.
(http://OpenFrameworks.cc)
3.4 vvvv
Very similar to Max and PD’s programming style, this platform specific tool (only running under windows
systems) is said to be the much faster in graphic rendering than its cousins Max and PD due to its pixel
and vertex shader capabilities based on DirectX 9. (Blum, F. 2007, p. 32). Another Important advantage of
this platform is its open source condition. That is, free to download and use with the only requisite of acknowledging it. A very tempting tool that deserves to be deeply investigated during further projects. It can
be found and downloaded for free from http://vvvv.org.
3.5 Isadora
Isadora, a program created by Troika Tronix, presumes to be easy, flexible, reliable and powerful. It won
the honorary awar at the Prix Ars Electronica ( AEC Ars Electronica centre, 2004 ) Its function its specially
emphasised on the real-time manipulation of digital video. It contains over a hundred objects called actors that can be arranged on a graphical programming interface and when grouped together can also
perform as User Actors. (Blum, F. 2007 , p.33). The toolkit can be obtained at
http://www.troikatronix.com .
3.6 Max/MSP
Page 13
Max is an Interactive visual programming environment designed for music, audio and media. Originally
developed by Miller Puckette at IRCAM in Paris during the 1980s, but later managed by David Zicarelli in
his own company Cycling ’74. It is a commercial licensed program intended for real-time cross-media
composition featuring three main lines of development, the first is Max, the core set of objects of the program intended for working with time, interfacing and control. The second, MSP (Max Signal Processing)
designed for sound synthesis and manipulation who’s objects feature pretty much everything from filters
to oscillators and envelopes. The last but not least is Jitter, the youngest of the family, added in 2003, it
features more than a hundred objects for real-time manipulation of video and graphics (2D and 3D), it also
includes extensions for the common libraries such as OpenGL (Open Graphics Library) . The full program
is written in C code and brings the possibility of expanding it by writing externals in this type of code.
http://cycling74.com
This application has been chosen to be used in this project, the reasoning behind this decision will be
explained in the next part along a deeper insight of this fantastic tool.
Page 14
“The general precept of any product is that simple should be easy, and hard things should be possible”
(Kay, A. n.d.)
4
Max/MSP/Jitter
In this chapter Max, along a brief overview of programming languages are introduced, after going through
the aspects that make this piece of software so useful, a reasoning and full explanation of why it has been
selected will be presented. It has been written in this specific manner to let the reader familiarise with the
application first, and then, evaluate the pros and cons, and the reason behind the decision as opposed to
the other proposed work environments.
4.1 Brief Overview of Programming
In order to understand the basic principle of Max it is necessary to understand some basic concepts on
programming. Computer Hardware operates on a binary lever, that is, it only understands 0s and 1s,
each of those digits is called a bit. They can be grouped in larger number for instance bytes, which are
groups containing eight bits. This grouping method goes up to billions of bytes (kilobytes, megabytes,
gigabytes...). We call Machine Language to the instructions that the computer hardware understands,
that is, binary instructions. If we had to write a computer program straight into binary code, it would take
a huge amount of time, plus the code would be practically impossible to distinguish since it would be an
overwhelming list of zeroes and ones and finding errors ,a process called debugging, would be pretty
much impossible. That is the main reason behind the common use of high-level programming languages.
These High-Level programming languages consist in a series of instructions, called functions, written in a
more human-like way. Such languages need a compiler to translate these instructions to machine lan-
Page 15
guage. The big advantage of high level programming is that identifying errors becomes much more accessible.
A current trend in programming comprises what is known as Object Oriented Programming, this kind of
languages “allow programmers to build software systems as collections of interacting objects, each of
which models the behaviour of some real world entity” (Pope, 1991). Since the early eighties, numerous
interactive music systems have contained object oriented features. Smalltalk is probably the most prominent representative of a true object oriented language, it has been used to design a number of interactive
music systems such as DMIX (Oppenheim 1990) and Kyma (Scaletti 1987) (Winkler, T. 1998 p. 43) Max is
also an object oriented programming language.
4.1 Brief History of Max
Max was first developed around 1986 by Miller Puckette at IRCAM as a control device for the 4X synthesiser. Max takes its name from Max V. Matthews, an early pioneer of computer based music. In 1987 it
was presented in the form of a concert, including two main pieces: Jupiter by Philippe Manoury and Aloni
by Thierry Lancino. This concert showed for the first time the full capabilities of Max (at that time) as a
scoring follower program based on MIDI ( Musical Instrument Digital Interface). Around 1990, the IRCAM
Signal Processing Workstation (ISPW) was introduced with the aim of replacing the now obsolete 4X and
Puckette adapted the software for such a task. ( Winkler, T. 1998 , p. 18).
Around 1991, David Zicarelli extended its functionality and licensed it with Opcode Systems as a commercial platform, whilst Miller Puckette started working in PD (Pure Data).
Soon MSP was added to the package including signal processing functionality, MSP takes its name from
Max Signal Processing ( Although some might argue that the name comes from Miller S. Puckette’s initials). The Graphic extension called Jitter made its appearance around 2003 in the form of over a hundred visual oriented objects which make Max’s functionality ideal for cross-media work. Finally, the latest
update has been Max for Live, a version of Max that works side to side with the now popular Ableton Live
Digital Audio Workstation (DAW) featuring real-time modification and use of plugins made in this platform.
Max has been the tool of choice of many artist and musicians along its relatively short history due to its
intuitive ease of use. (Blum, F. 2007, pp. 18-19 ).
4.2 Max
Page 16
Max is the environment you use to create visual programs , called patches, plus a set of building blocks
called objects used in those programs. ( Cycling’74 n.d.) It is a C based visual computer programming
language, that is, instead of hand written code, the user interconnects boxes which correspond to functions, this programming style is called visual programming, modular programming or patching, the latter
comest from the analogy to Analogue Modular Synthesis Environments where patch chords were used to
establish connections between different modules. This flow chart-like style of programming has numerous
advantages, specially for the non technical user, due to its readability and it real time capabilities, since
one can connect and disconnect objects in real time being able to see their function independently and
not altering the general structure of the rest of the program. Another prominent advantage is that complexities of the computer and irrelevant details are hidden, allowing humans to interact with computers on
a broad level that is conceptually closer to everyday life (Winkler, T. 1998, p. 49)
4.2.1 Objects
Max programs are created by connecting objects, which is another way of naming algorithms. Custom
objects can be created by combining different objects and then encapsulating them inside a sub patch.
This brings up the issue of reusability of code, sub patcher objects can be used infinite times inside different patches or applications (within Max).Objects have inputs (top) and outputs (bottom), and it is important to know that information is always sent from right to left, that is, the rightmost output of an object will
always be sent first.
4.2.2 Messages
Objects receive messages in order to execute their algorithm. Messages, are data (Numbers) or instructions (words) sent to an object to describe how will it function. (Winkler, T. 1998 p.50)
4.2.3 Connections
Connection are made through the mouse, physically connecting objects by mouse clicks. The connections can be seen in the interface as wires, this make the whole program look like a flow chart diagram.
Page 17
Basic Max patch showing basic objects and messages connected (Tigoe 2007)
4.2.4 Encapsulating
Patches can be organised inside sub patches by creating an object called [p], it can have inputs and outputs and once it is finished it works just the same as any other object. This is a key feature of Max for
reutilising your work in other situations, and it will be be extensively used in this project.
4.3 Max Signal Processing (MSP)
MSP is a set of Max objects intended for audio and signal processing (Cycling ’74). It comprises more
than two hundred object intended for DSP (Digital Signal Processing) purposes. It was added around
1997 based on Puckette’s work for PD. As opposed to Max’s behaviour, which sends message information once at a time, MSP sends continuous streams of data called signals. All MSP objects are differentiated from Max by the syntax of their name, always followed by the symbol ( ~ ) which means signal. For
instance an oscillator object, called Cycle, will appear in Max as [cycle~ ]
4.4 Jitter
Jitter is a set of Max objects for video, graphics and matrix data processing. (Cycling ’74). developed by
David Zicarelli’s company Cycling’74 released in 2003. It processes information using a matrix system,
Page 18
this system is explained in Appendix A. In order to distinguish Jitter objects from the rest, they have the
prefix (jit). As an example, the Jitter Matrix object will appear as [jit.matrix]. Jitter includes several libraries
such as OpenGL (Open Graphics Library) for 3D purposes, this library will be explained in Appendix B.
4.5 Expanding Max
Because it has been written in C code, Max can be highly expandable. One can write externals , that is,
Max compatible objects written in C, these objects can be made by using the Max SDK (software developer kit) which can be download for free from Cycling’74’s website. This has opened the doors for a huge
community library, comprising both professional and amateur users and a large collection of external objects that add functionality to the original program. Some of these developers include the CNMAT (Centre
for New Music and Audio Technologies), responsible for the creation of the OSC (Open Sound Control)
Protocol, a protocol that might become MIDI’s alternative. Apart from this JavaScript and Java codes are
also supported. The last but not least option to expand Max is the use of external hardware prototyping
platforms such as Arduino or Wireframe, which allow to connect analog devices like sensors, lights or
even robotics.
4.6 The Reason Behind Choosing Max
As we have seen so far, Max is an extremely powerful tool but some of its “relatives” are not far away. The
main inconvenient is that from the tool list mentioned in chapter three, is along Isadora the only commercial program, in fact it is pretty unaffordable. When compared to PD or vvvv which are Open Source platforms capable of just as much functions, one can think this is not the best choice, however, the selection
of Max over the other two is based on two main principles: First, vvvv is platform specific, it only runs on
Windows based systems, that makes it non portable, plus vvvv does not have the option of exporting
patches as standalone applications. Second, one of the aims of this project is to learn increase the
author’s skills, and PD has been a studied subject over the past few years of this author’s career and the
intention is to learn as many different programming scenarios as possible, however, this previous PD
knowledge has been a huge advantage in order to understand Max, since both programs are fairly similar.
The other fact that keeps PD out of the scope is that, just as vvvv, it does not let the user export his
patches as standalone applications.
4.6 Basic Programming using the Max Environment
Page 19
4.6.1 Data Types
For the correct use of this piece of software, one must understand the seven basic data types that it
uses.
Integers: abbreviated int.
Floating point numbers: called float
Lists: named list these are groups of two or more numbers, int or float and/or symbols
Symbols: Symbols are words, the abbreviation for this data type is s.
Bang: bang means do it. It is the most widely accepted message in Max and forces any object to perform
its function.
Signal: As explained before, signals are continuous streams of floating point numbers used to represent
audio. Only MSP objects accept this data type.
Matrix: Similar to signals, this data type only works within Jitter objects, it represents arrays of numbers,
these numbers can be char, 8 bit integer numbers, float32, 32 bit floating point numbers and float64, 64
bit floating point numbers. Matrix can basically contain any number that can be arranged into rows and
columns.
4.6.2 Parameters and Arguments
Each object has a number of modifiable parameters which determine its behaviour, they are often variables, that is, they can be changed in real time to for example according to a score or improvisation.
Some parameters can typed directly into the object following the symbol @, this can be useful in order to
establish initialisation parameters. They are normally constants, although some of them can be overwritten by means of a message. (Winkler, T. 1998 p.55)
4.6.3 Order of Execution
Max processes one step at a time, however it is fast enough to make this unnoticeable. In order to avoid
possible confusion Max’s order of execution goes from right to left and bottom to top. Another important
Page 20
fact to mention is that most objects accept a bang message on their leftmost input, in fact, if they have
multiple inputs, the object will not perform its function unless a bang is sent to that input, any message or
number acts as a bang on the leftmost input. An extremely useful object to avoid problems derived from
this is trigger, found both as [t ] or [trigger] followed by the data type to be sent. For instance a [t b i ] object will send first an integer number through its rightmost output, which should be received on its input,
and then a bang through its leftmost output.
Following all the rules presented before, one should be able to program some basic patches on Max/
MSP. In the next chapter the application proposed in this project will be presented, assuming some familiarity with the previously shown concepts.
Page 21
“My computer program is like a piano. I could continue to use it creatively all
my life”
(Whitney, J. in Youngblood, G. 1970, p. 207)
5
PROJECT : Music Visualisation Tool
5.1 Introduction to the project
As we have seen so far, the exploration of Visual Music has been a major concern to artists of all fields
along history. Nowadays the music Industry seems to constantly repeat itself with a set of well known
formulas, being difficult to find something innovative and creative just by the use of traditional methodologies. The vast possibilities that the blend of disciplines brings us, allows the artist to achieve new perspectives and goals. Gene Youngblood states that one no longer can specialise in a single discipline and
hope truthfully to express a clear picture of its relations with the environment. Following this lines Norman
Brown said: Freedom is Fusion.
The field of computer music has special interest for the author of this project, as opposed with what one
might think, this extremely open genre is making some composers lazy, that is, many artists seem to rely
on pre established computer tools, and putting up a show which lacks of the showmanship and “liveness” that a band brings to the scene. Sometimes the music created is extremely beautiful but for the
majority of the audience, watching a man behind a laptop and having no clue of what is going on can
become pretty unattractive. For this reason Visual Music seems like a perfect ally for those type of performances, bringing the audience the possibility of seeing music, which can help giving a better picture of
what the artist thinks.
Page 22
For all this reasons, the author has chosen this topic, apart from being a challenge which will prove a
good understanding of sound, and its possibilities regarding cross-media creation, a possible future step
for electronic music and a little bit closer to what Wagner defined as Gesamkunstwerk.
5.2 Main Concept
The idea behind this project is to create an application in the visual programming environment Max/MSP
which creates abstract visualisations of any given music or sound. This project does not tray to make
faithful representation of the sound, it is not a music analysis tool, however the reaction to the produced
sound must be clear to the eye. In order to achieve this ambitious goal, several premises were mandatory:
First, the music should be the main driving force of those visuals. It could have been relatively easy to
cheat the eye by using triggering techniques such as MIDI or OSC, however the intention is to show the
dynamics of music in a visually pleasant way. The frequency of the sound to be translated into visual
stimulus plays an important role in this task. As we have seen with Synaesthetic artists or Cymatics , it
does not “look” the same a low frequency sound and a high pitched one so we must make a clear difference.
Secondly, the program has to be flexible enough to adapt itself to different kinds of music, as we might
know, the frequency and dynamic range of a funk band is not quite the same as an experimental noise
production. Because of this, the tool must have some sort of frequency and amplitude detection system.
Third: The application needs to have a comprehensive set of controls to let the user change the appearance of the visual display, if this was not the case, the use of this tool would become boring and rapidly
obsolete,
Fourth: It must have an intelligible interface, that allows anyone to rapidly grasp the way to operate it.
5.3 Working Rates
Page 23
One of the biggest challenges of this project was to combine the three working rates inside Max/MSP,
firstly, Max runs at what is called control rate, that means that each object performs its function whenever
a message is sent. Secondly, MSP runs at audio rate, which is commonly 44100 Samples per second,
obviously this can even be faster up to 96000 samples per second, depending on the external audio settings of the audio device. Thirdly Jitter runs at Video rate which is normally 24 frames per second (fps).
when combining the three, one must bare in mind this different speeds of execution.
5.4 The Core: FFT vs 3 Band EQ
Regarding the audio analysis section, two main properties were selected as the main drivers for movement: Frequency and Amplitude. The First experiments showed that the overall amplitude was not
enough descriptive for the pursued goal and it had to be different for the different frequency bands.
Fast Fourier Transform (FFT) seemed to be the most suitable method, since it is the core component
used for spectrum analysers and the visual result is quite pleasing.
The Fast Fourier Transform is a very complex algorithm used for audio analysis purposes, a thorough discussion of this formula is completely out of the scope of the project, however, a basic explanation of its
function is necessary in order to comprehend the mechanism used in the project to extract data from the
audio signals.
FFT derives from the Fourier series described by Jean-Baptiste Fourier around 1822, based on the theory
of periodic signals. It is a numerically intense operation that has not been implemented as a common
function until the late 1980s. It states that periodic waveforms of different amplitudes can be decoded
into frequency and phase components. (Roads, C. 1996. p.1076)
There are several implementations of the Fourier Transform, the Short Time Fourier Transform (STFT), the
Discrete Fourier Transform (DFT) or the Fast Fourier Transform (FFT). They are all base in the same principle: It maps any continuous -time (analog) waveform to a corresponding infinite Fourier series summation
of elementary sinusoidal waves, each at a specific amplitude and phase. (Roads, C. 1996, p. 550)
The FFT is no more than a computer efficient implementation of the DFT. It takes “chunks” of audio called
windows, and performs DFT over them. DFT roughly speaking, passes the signal through a series of “filters” equally spaced covering the whole spectrum, the number of “filters” is given by the FFT size, normally equal to the window size. For instance, if we perform an FFT of 512 samples window size, the
Page 24
audio processed will be 512 samples long and the frequency range will be divided into 512 equally
spaced sections using 512 “filters”.
This type of analysis happens to be quite expensive for the computer, and also, the space between the
“filters” is always equal and can not be changed unless the whole FFt function is changed,that is the reason why it has not been implemented in the project, however, it has been a key part of the research and
has lead into the final version, which uses a three band EQ, since the basic objective was quite the same.
By using a 3 band EQ we obtained the amplitude of the most prominent areas in music, the Lower band,
around 90Hz, a mid band around 400 and 1400 Hz , and a High band above 4000 Hz. This happened to
be enough to create a credible movement in the graphic domain whilst a full FFT gave way too much information to be processed and slowed the performance of the application significantly.
5.5 MIDI
As opposed to what the proposal said, MIDI has not been implemented in the final version. Initially this
protocol was proposed in order to fill the gaps not covered in the audio analysis section, however, the
research has revealed that it goes against the whole nature of the project since the idea is to have sound
as the commander of the images created. MIDI can easily trigger events and help with control but the
project’s main point is to create motion based on the music/sound, for that reason it has been purposely
avoided. Future implementations of the application might include this musical protocol in order to facilitate
the use to the musician in the case of a live performance but at the moment, this is completely out of the
scope of this project.
5.6 The patch explained
In this part the full functionality of the patch will be explained in detail. Max objects will be named using [ ]
to clearly distinguish them and avoid using the word object constantly. The patch is explained assuming
that one is looking at the editable Max/MSP file, not the compiled application, the latter one not modifiable and its contents are hidden form the user.
Three main sections or sub-patches: Audio, Rendering and Shapes.
Page 25
5.6.1 Audio
Audio Section (Edit Mode)
The First section of the patch is quite simple and quite important at the same time. This is the Audio section. It first contains an [ adc~ ], in other words, analog to digital converter, used as an audio input, by
double clicking it or pressing the attached message open, it opens the audio preferences dialg, in order
to configure audio drivers, inputs and outputs.
The audio input can be switched for an [sfplay~ ] which plays audio files (wav, aiff) using two [selector~ ]
(one for each audio channel) it has also got an audio output which its output gain can be controlled and
monitored by an “ableton-like” fader named out.
Page 26
Inside EQ&Send sub-Patch
The most important part of this section is the sub-patch called EQ&Send. Double click it and you will see
its contents. This patch contains three filters constructed using [onepole~ ], a low pass filter. The first one
called [onepole~ 90] corresponds to the low pass filter, having a cut off frequency of 90Hz, the second
one is a band pass filter, which has been constructed using two [onepole~] and subtracting the result of
each other. the first has its cut off located at 1500 Hz, and the signal coming out of this one is filtered
again at 400Hz, by using a [-~ ] which subtracts audio we can obtain a filter which ranges from 400Hz to
1500Hz. The last one is a high pass filter, it uses the same principle as the band pass, subtracting a 4000
Hz low passed signal to the main unfiltered one. The signal of each filter is sent to a three dimensional
shape which we will see in the next sections.
The gain of this signals can be controlled by some rotary controls located in the interface section. The
author has chosen not to have variable filters to avoid an excess of controls, since the amount is already
quite big.
5.6.2 Rendering
Render section
The rendering section is the one in charge of showing the visual content on the screen. It function is
based on OpenGL which is covered in the appendix B for better understanding. This section contains
some advanced graphic concepts.
When looking inside this patch we will see various object with many arguments inside. The first and most
important one is the one called [jit.gl.render edit] this object allows 3D to be drawn (rendered) into a win
Page 27
dow called edit. All the 3D objects named edit will use this renderer to be drawn. This object need a constant pulse to keep drawing and a message called erase, so the screen is erased every time is drawn,
this is called refresh. This is achieved by using a [qmetro 20] which sends bangs every 20 milliseconds,
and those bangs go to [ t b b b erase] which trigers, first an erase message for the rendere, and then 3
bangs. One of this bangs goes to the renderer and the other two are used to activate other sections of
the patch by using a send object called [s draw], There is also a second renderer called preview for the
preview screen. The way the program renders the same thing simultaneously in two different screens is
quite complex and requires to look at the sub patch named render master.
Inside Master Patch
The render master sub-patch is based in OpenGL programming. Most of the functionality of this library
can be performed by Max using [jit.gl.sketch] this sub-patch uses this object to draw all the GL objects,
by calling their names following the message drawobject, it also has an attribute called capture sc_tex
which, as its name suggests, captures the drawn content into a texture called “sc_tex” . If we now look at
the master patch, we will see an object called [jit.gl.texture edit @name sc_text] which works as the destination for that captured texture. Next to it are two video plane object which create a plane for playing
videos within the OpenGL environment, both objects have sc_tex assigned as their texture, which means
that they will show that as a content , the main difference between them is the render destination, one of
them goes to the window called edit, and the other goes to preview.
Page 28
Inside Render Master
Back to the Master sub-patch, we also find a [jit.window] called edit, this is the famous destination for
one of the renderers, this object creates a separate window called edit, it has some messages such as
full scree , floating or visible. Full screen’s function should be easy to guess, floating means that the window will stay on top of all other windows so it does not get hidden, and the last one visible, activates and
deactivates it.
The last important object that we find in this sub-patch is called [jit.gl.handle] this object lets the user interact with the mouse in order to control the position and rotation of the OpenGL shapes. Its main argument is the render destination, in this case the window called preview, this means that by using the
mouse on that window, one can interact directly with the shapes. The output of jit.gl.handle goes into a
gate objet that allows the user to choose what shape to control.
the last uncovered object is jit.gl.texture, an object that simply assigns a texture to the shapes. This is just
an aesthetic possibility, not relevant for the core function of the application.
5.6.3 Shapes
Inside ShapesLow sub-Patch
Page 29
Within the main patch window, we find three sub-patches called ShapesLow, ShapesMid, and ShapesHigh, respectively. These patches are the most important ones of the application since they englobe the
graphic content plus the interpretation of the sound data gathered at the audio section. All three are effectively the same, the only difference between them is that each one receives the audio value from a
band of EQ.
The principle behind this patch is that the audio data is transformed to matrix data in order that Jitter can
interpret it correctly, then, this matrix data is used to fill the content of a 3D polygon by using the gathered
data as coordinates in space.
In order to explain this part, the patch must be divided into two sections, the 3D polygon and the Audioto-matrix data conversion.
Note that the concepts described relate to how Jitter interprets matrices, something that is explained in
detail in appendix A.
• Audio-to-Matrix Data Conversion: While learning about Max, and specially Jitter, one discovers that
there are several object to transform MPS (audio) data into a series of jitter matrices. One of this objects
is jit.catch . We use this object to fill a one plane matrix of 64 by 64 pixels. This matrix is then passed
through an jit.op object, which performs a mathematical operation, in this case a multiplication, and the
value to multiply by by is our amount variable. The result of this operation goes to a gate, that routes it
to three different outputs, each of them corresponding to each dimension on three dimensional space
(x, y , z). In order to achieve this, we use jit.pack, with an argument corresponding to the destination
matrix. This object will send the received data to each plane of the geom matrix , that is, the destination.
• Polygon Section: The second part of this patch contains a 3D matrix of 2X2X2 , this is achieved by
sending the coordinates of the vertex through a jit.fill message to an empty matrix. The destination matrix is called geom which corresponds with the output name of the jit.pack object and it has got an argument saying “interp 1”. This activates the interpolation, which means that the values stores will be
substituted for any incoming new ones. Since the values are substituted we have to make sure that
every time we change the dimension to place the Audio-To-Matrix input, the original geomtry vertex are
sent again, otherwise, the shape will be transformed into something abstract every time one changes
the dimension. In order to view the geometry data as 3D we need a 3D object part of the OpenGl library, that is [jit.gl.nurbs ] this object accepts a message called ctlmatrix which means control matrix,
this allows to use matrix data as vertex position to create 3D geometry. Note that this object is also being sent as matrix data by using the matrixoutput argument, this is only to use [jit.gl.mesh] to create the
Page 30
geometry instead of [jit.gl.nurbs]. The only reason behind this is that [jit.gl.mesh] allows different drawing
modes, like points, lines or quads as an example. This is only due to the aesthetic needs of the project.
5.7 The Interface
The interface was a crucial part of this project. It was necessary for the application in order to be useful to
have an intuitive interface that lead the user to a good comprehension in just a quick look. This as well, is
one of the advantages of Max/MSP over its competitors, it lets you create an interface, hiding all the programming data, making it much easier for non technical users.
The interface is divided into 7 sections, separated of each other by means of colour boxes. The first one
is the screen. The second one is called Screen Controls , this section comprises all the material treated in
the render section, the set of controls is limited to the very minimum necessary. The third one is called
Mouse Handling System, this is a link to [jit.gl.handle]’s selection system, that allows the user to choose
what shape to control by the means of the mouse.
Fourth section comprises the audio controls, where the user can select between file or audio input, open
the audio preferences, change the output gain, and more important, have control over the gain of each
frequency band.
The Fifth, Sixth and Seventh sections are the controls for each 3D polygon. All three are pretty much the
same providing controls for many parameters of those shapes. Some of those parameters can also be
controlled by audio, that is achieved by using an exponential multiple of the amplitude as the value for
certain parameters such as point line, and line width, this can be switched on and off via a toggle button,
with also the option between linear and exponential multiplication of the amplitude.
The controls selected for these shape are pretty basic, but by exploring them, one can get some interesting results. The author would like to avoid a thorough discussion of all the parameters and prefers the
user to play around with them and find out by himself.
Page 31
Finished Interface
5.8 Known Problems and Bugs
Although quite successful, the application is not perfect and it contains some operational mistakes, as
well as some graphical ones.
In the graphic domain, the application has been made in a fifteen inch screen at high resolution, and the
finished application takes most of the screen space. This is a problem when loaded into smaller display
computers since the whole interface does not fit and makes its use a little less comfortable.
Issues known in the functionality are a few: In the Mouse Handling System, if reset is not pressed in the
beginning, the shapes automatically disappear when the mouse click on top of them. This can be easily
resolved by pressing reset. Where this bug comes from is totally unknown for the author but it will be explored for further versions.
Some of the drawing methods of the 3D shapes do not work, for instance, triangles, tri_strip or quads .
5.9 Application Building
The finalised project comes in the for of a Macintosh standalone application. The Windows version has
not been possible to compile due to some incompatibilities in the code. The document also includes the
editable file to be opened inside Max/MSP 5 and a text file containing the code. The whole application
was realised using a 30 day demo version of Max during that period.
Page 32
6
CONCLUSION
Because of the high increment in power that computers have experience in the last few years, and will
continue experiencing in an exponential manner, we can say that we are in the best possible moment to
make visual music happen in its most pure and accurate way. Multimedia software grows faster and becomes more and more powerful and more accessible. As this project shows, creating customised audio/
visual applications can be achieved by individuals with no previous knowledge in the field. The possibilities are almost infinite, and only limited by our imagination.
The audio visual path can lead into some interesting new concepts such as the creation of new interfaces
for music creations, where the 3D graphic content can act as the interaction system between the machine and the user, providing with an intuitive set of controls. For instance, each shape could correspond
to a sound, and its size determine the amplitude and its rotation the frequency. The position in 3D space
could set the amount of output lever for each channel of audi, a very interesting concept for multi-channel
installations. If those fictitious 3D shapes that we are talking about behaved differently depending on the
type of sound they “emitted” the user could easily have an instant feedback on what they do and how to
manipulate them in order to achieve the desired results. This type of graphical approach will be radically
different from what we are used to but at the same time more familiar and intuitive due to its visual feedback. We are not far away from being able to create audio visual compositions without treating each element as a separate entity.
As an evaluation of this project, the author considers it very successful since it perfectly accomplishes the
desired function without much struggle. For further explorations of the same idea, multitrack visualisation
is the next logical step, and once again Max can act as great mediator specially when using its new extension Max for Live. Integrating the visual algorithms inside a familiar DAW is now completely possible.
MIDI could also help, but not when used as a trigger, rather when certain visually aesthetic parameters
Page 33
are coupled with audio effect controls in order to obtain a full symbiosis of both graphical and sonic expression.
As said before, audio visual composition is already here, it is just a matter of time for musicians or visual
artists to embrace this as a completely valid form of artistic expression.
As Henry Jenkins said in his book Convergence Culture : “Convergence is coming, and you better be
ready” (Jenkins, H. 2006, p. 10)
Page 34
A
APPENDIX A: Jitter Matrix System
Jitter, is the extension for graphics now included in the software package Max/MSP. In this appendix, the
matrix system that Jitter uses will be explained in detail since it is quite different from the rest.
A matrix is a grid, with each location containing some information. Horizontal lines are called rows and
vertical lines are called columns. Matrices can be multidimensional, in fact a matrix with rows and columns has two dimensions. Dimensions can go up to 32. The next example show a three dimensional
matrix of 3 by 3 by 3 having a total number of 27 cells.
Multidimensional matrix: 3x3x3 = 27 cells
(cycling ’74, 2004)
Page 35
A computer screen can be understood as a matrix, having rows and columns of pixels. for example,
800x600. Jitter represents video using two dimensional matrices were each cell contains four values, Alpha, Red, Green and Blue (ARGB) in a scale of 0 to 255. ( 8 bit colour). In order to treat each colour value
differently, Jitter introduces the concept of a plane.
Each plane is a two dimensional matrix containing one value per cell, so a video matrix will have four
planes, each of them representing a colour.
Colour Planes (cycling ’74, 2004)
The type of data that a jitter matrix can hold is char, 8 bit integer numbers, float32, 32 bit floating point
numbers, and float64, 64 bit floating point numbers.
The number of planes is defined as an argument followed by the data type i. e. [jit.matrix 4 char 320 240 ]
for a 320 by 240 matrix containing four planes and 8 bit integers on each cell.
Page 36
B
APPENDIX B: Open GL
OpenGL (Open graphics library) is a standard library which specifies a virtual machine for turning lists of
numbers into 2D images. The list may contain the 3D locations of vertices to connect lines or polygons.
Other data can be contained such as coordinates for texture mapping, normals, lighting colours and
some other things.
Geometry
Geometry matrices must contain data in float32 or float64 . Each cell of the matrix represents one vertex,
the image is created by drawing connections between those vertices. The way the shapes are drawn is
set by the drawing modes:
points: Draws each vertex as a point
lines: Connects every pair of vertices with a line.
line_strip: similar to lines.
line_loop: like line_strip but a line segment is drawn connecting the last vertex in the ,matrix back to the
first one.
triangles: draws unconnected triangles.
tri_strip: Draws a strip of connected triangles. Important to know the order of the vertices.
tri_fan: Draws a fan of triangles
quads: Draws unconnected quadrilaterals
Page 37
quad_strip: draws connected quadrilaterals.
polygon: Draws a single polygon using all the vertices in a matrix, if the polygon is not simple and convex
the results are undefined.
tri_grid: If the geometry matrix has two dimensions, triangles are drawn which link each vertex to its
neighbours in the matrix to form a surface
quad_grid: If the geometry matrix has two dimensions, quadrilaterals are drawn which link each vertex to
its neighbours in the matrix to form a surface.
Planes
Geometry matrices can have up to 13 planes of data:
plane 0: x coordinate of vertex
plane 1: y coordinate of vertex
plane 2: z coordinate of vertex
plane 3: s coordinate of texture at vertex, if textured
plane 4: t coordinate of texture at vertex, if textured.
plane 5: x component of lighting normal at vertex.
plane 6: y component of lighting normal at vertex.
plane 7: z component of lighting normal at vertex.
plane 8: red component of vertex colour.
plane 9: Green component of vertex colour.
plane 10: Blue component of vertex colour.
plane 11: alpha component of vertex colour.
plane 12” edge flag for connection to next vertex: if < 0, no line is drawn.
Page 38
Page 39
R&B
References and Bibliography
Books
- Blum, F. 2007, Digital Interactive Installations, 1st edition, VDM Verlag Dr. Muller,
Saarbrucken.
- Duchting, H. 2007, Kandinsky, 1st edition, Taschen , Cologne.
- Fiedler, J. 2006, Bauhaus, 1st edition, Konemann, Bonn.
- Noble, J. 2009, Programming Interactivity, 1st edition, O"Reilly, Sebastopol, CA.
- Jaeger, T. 2005, Live Cinema Unravelled, 1st edition, Self Published.
- Jenkins, H. 2006, Convergence Culture, 1st edition, New York University Press,
New York.
- Jenny, H. 2001, Cymatics - A Study of Wave Phenomena and Vibration, 1st edition,
Macromedia Press,
- Kirk and Hunt, R and A. 1999, Digital Sound Processing for Music and Multimedia,
1st edition, Focal Press, Oxford.
Page 40
- Loy, G. 2006, Musimathics: The Mathematical Foundations of Music, 1st edition,
MIT Press, Cambridge, MA.
- Lund, C and H. 2008, Audio.Visual - On Visual Music and Related Media, 1st edition, Arnoldsche, Germany.
- Martin, S. 2006, Videoart, 1st edition, Taschen, Cologne.
- Noble, J. 2009, Programming Interactivity, 1st edition, O'Reilly, Sebastopol, CA.
- Roads, C. 1996, The Computer Music Tutorial, 1st edition, MIT Press, Cambridge,
MA.
- Roads, C. 2004, Microsound, 1st edition, MIT Press, Cambridge, MA.
- Schiffman, D. 2008, Learning Processing - A Begginer's Guide to Programming
Languages, Animation,and Interaction, 1st edition, Morgan Kauffmann, Burlinton,
MA.
- Sloane, P. 1989, Visual Nature of Color, 1st edition, Design Press, New York.
- Stephenson, G. 1965, Intro to Matrices, Sets and Groups For Science Students, 1st
edition, Dover Publications, Dover, NY.
- Temperley, D. 2001, The Cognition of Basic Musical Structures, 1st edition, MIT
Press, Cambridge, MA.
- Terzidis, K. 2009, Algorithms for Visual Design Using the Processing Language, 1st
edition, Wiley Publishing, Indianapolis, IN.
- Vince, J. 2008, Geometric Algebra for Computer Graphics, 1st edition, SpringerVerlag, New York.
Page 41
- Vnce, J. 2010, Mathematics for Computer Graphics , 3rd edition, Springer , New
York.
- Winkler, T. 1998, Composing Interactive Music: Techniques and Ideas Using Max,
1st edition, MIT Press, Cambridge,MA.
- Youngblood, G. 1970, Expanded Cinema, 1st edition, E P Dutton,
Websites
- Beyst, S. 2001, Visual Music [online], d-sites, Available from:
http://d-sites.net/english/visual%20music.htm [Accessed: 02.10.2010]
- Cycling 74 2010, Max/MSP Documentation [online], Cycling 74, Available from:
http://www.cycling74.com/docs/max5/vignettes/intro/docintro.html [Accessed:
2.10.2010]
- Firth, I. 2007, Music and Colour: A New Approach to the Relationship [online], Music
and Colour , Available from: http://www.musicandcolour.net [Accessed: 20.09.2010]
- Friedlander, p. 1998, Visual Music [online], Paul friedlander, Available from:
http://www.paulfriedlander.com/text/visualmusic.html [Accessed: 20.09.2010]
- Lew, M. 2004, live Cinema: An Instrument for Editing as a Live Performance [online], Massachussets Institute of Technology, Available from:
http://www.musicandcolour.net [Accessed: 4.10.2010]
- McDonell, M. 2002, Visual Music [online], Eircom, Available from:
http://homepage.tinet.ie/~musima/visualmusic/visualmusic.htm [Accessed:
20.09.2010]
Page 42
- 2004, Center for Visual Music [online], Center for Visual Music, Available from:
http://www.centerforvisualmusic.org/ [Accessed: 4.10.2010]
- Vade 2010, Vade [online], Vade, Available from: http://abstrakt.vade.info/ [Accessed: 4.10.2010]
Theses and Dissertations
- Dekker, A. n.d., Synaesthetic Performance In the Club Scene, MA, Netherlands
Media Art Institute.
- Makela, M. 2006, Live Cinema: Language and Elements, MA, Helsinki University of
Art and Design.
- Lyons, A. 1995, Time Space Texture: An Approach to Audio-Visual Composition,
PhD, The University of Sydney
Articles
- Bainbridge, B. 1893, A Souvenir of the Color Organ, With Some Suggestios in Regard to the Soul of the Rainbow and the Harmony of Light. [online], Rhythmic Light,
Available from: www.rythmiclight.com [Accessed: 4.10.2010]
- Jones and Neville, R. and B. 205, Creating Visual Music in Jitter: Approaches and
Techniques, Computer Music Journal, Cambridge, MA., vol. 29, Issue 4. , pp. 54-70
- Wright 1923, The Future of Painting [online], Rhythmic Light, Available from:
www.rythmiclight.com [Accessed: 4.10.2010]
Page 43
Pictures
- Bower, F. 1995, Scriabin's Relationship Between Colour Tones and Music p.114.
- Kandinsky, W. Several Circles 1926 [online], Available from:
http://pippastephens.wordpress.com/2009/12/07/music-to-my-eyes/ [Accessed:
28.10.2010]
- Kurokawa, R. Live Mutek 2005 [online], Available from:
http://dronesandpulses.blogspot.com/2008/12/ryoichi-kurokawa.html [Accessed:
28.10.2010]
Page 44