Wednesday, October 5, 2011

What I am up to

    If you are my friend, you may wonder what I have been doing for the last year and a half.   I constructed an experiment in me: a way forward with my life.  I built a story.  In this story I can be whatever I wish; I can do anything, and reach to the top of whatever I choose, unassisted.  This story also gathers my body and heart and brings me closer to those I love.

     I have chosen to work in sound design and have been teaching myself everything I need.  Here is an approximate list (Entries in braces, I have not yet begun):

Music:
Mixing
Mastering
Learn new instruments
Instrumentation
Song styles
Counterpoint

Recording:
Field recording
Studio projects

Mathematics:
Advanced Calculus
Differential Equations
Linear Algebra
Signal Systems and Transforms
(Harmonic Analysis)
Algorithms and Numerical Methods

Visual asset design:
Planning and lighting a scene;
Hard surface 3D modeling;
Organic modeling;
Rigging and Animation
Asset creation:
    Texture and material construction;
    Unwraps, Normal maps, <*.maps>
    Optimizing and Exporting game-ready content

Code:
C++
Game Engine:  UDK
    Familiarize myself with all features of the interface
(DirectX)
(XAudio2)

Writing:
The mechanics of language and the elements of storytelling.

Game project:
Construct a game world
     Build all assets from scratch: visual, audio, code.


Selection Criteria:
Some topics may appear unusual.  What do normal maps have to do with sound?  Why hard-surface modeling and animation before XAudio2? There are several reasons:

     Sound is motion:  Sound does not exist without movement.  Game worlds are nonlinear, interactive.  At least two questions arise: What moves? How?  New tools must provide reusable, generalizable answers to these questions.   But to have motion, there must first be a world.

     Logical integration: A game editor like UDK is a complete logical environment.  Everything in the world - a 3D mesh, the sound of a foostep, a light - is an object. In game design, a good tool is a piece of object-based logic: a set of rules by which objects can be made to work together.  Making tools means developing a code base.   And in relation to other game objects, sound is a result:  New audio tools must be integrated into the existing logic which operates and animates in-game objects.

     Spatialization:  Real-time phase manipulation in 3-space is a defining question of the video game.  Representing audio in 3D is an open question. Epic Games (UDK), for example, takes the position that it is hard, so do not try, i.e. record in mono and pan it. This is the least effective way to spatialize.  A sound image is a field: movement changes the phase relationships within the field, and from these phase relations, we distinguish position.  Panning a mono file does not reproduce, or simulate, motion in a field.

Fortunately, graphics programmers and hardware developers have constructed a considerable body of knowledge and experience in the attempt to simulate a similar question of light propagation. Efficient computational methods in harmonic spaces exist, they have physical representations, sample code is available, and specialized hardware for its execution lies in every game console. I believe apprehending and adapting these graphical and geometric methods is the best and fastest way forward; the mathematics and programming skills are fundamental to the question of audio in a game world.

     I love it: If it is on this list, I do no tire of it. I wake in the middle of the night to do it. I dream about it. I draw crowns in my Advanced Calculus book, and stay up until 4AM recording for a friend.


The Job I Seek:
I want to do the everyday work in audio design. I want to record and make sound effects; match audio to keyframe animations; record, edit, mix and master dialogue. Compose and arrange. This is what I do with all of my time, when I am free. I am at my best when I am the least experienced person in the room. I learn quickly, and I love it.

I do not want to be a team lead or a programmer. Making new tools, for me, is an outgrowth of hands-on work with audio. I have begun building what I need to do that job better and faster. I believe many things can be done which are not commonly believed possible, but I do not have a paradigm to peddle: I am always willing to be convinced. That is why I state my position clearly, and defend it. Code is invention and construction: to posit new ideas and test them requires believing they can be done, and trying every way to make them work.

I have a rough map in my mind of the game engine, and every way audio occurs. I also dig further into the methods that exist, to clarify the map. For each place there is sound, I have thought through at least one way to move forward. These structures are primitive, but similar, and often identical, to what the best audio software companies are building. I do not do this by examining their products. I figure it out first, alone, then I check to see who else knows. This is how I find Valve and iZotope. It is better than finding them. I know how to begin building these tools myself, because those elements I understand, I, too, have invented.

I do not expect you to believe me on my word. I expect to convince you. I will post a series of blogs on various audio and game topics, with examples of my own work.

The rest of me:
There is a parallel story which accompanies these mechanical steps: a boy and a wolf, bound together, ducking in and out of the lands of snow. The mechanics of belief are important; they demystify momentum, and demonstrate that anyone may do likewise. Watever we make up, it becomes true when we build it.  The mind is a magic operator. Its scope cannot be given by a rule; the only reasonable approach is to believe that anything is possible; to believe in ourselves and others, beyond what any argument or theory can give. This assertion holds so easily, it can be tested, exactly as I am testing it now.

There is more than me in this test.  I have carried it around my whole life, Anything is possible. I want to know it, then, from you. I want to see you throw lightning into the world.