Thursday, April 16, 2009

Tricklock - The Drummer Robot

Tricklock is a very ambitious drummer robot. He is built on 32 triggers, with an average of three samples per trigger which in turn are velocity sensitive leading to roughly 90 or so samples in total. The 90 samples are then sent to 8 separate stereo channels for mixing purposes.

Kick, Toms, Overheads, HiHat, Snare, Perc, Shaker and WierdSFX

The main drum channels except for the WierdSFX and Shaker channel are sent to a Drum Submix for an overall level control so the whole package can be automated on its own. The Drum sub is also sent to a drumroom reverb for some ambience. We can expect that Tricklock will be doing all kinds of wierd processing on this setup eventually, but his bones are now in place.

The samples range across a mix of more or less natural samples, the idea is that Tricklock will be able to electronically play most of the genres I might consider for the Spaceforce band later on, from light ambient kinds of things, pop, rock and electronic.

Considering my ambition to follow the idea of a Flawless first Piece for Spaceforce I will probably keep on tweaking some details of Tricklock for a day or two before I feel satisfied with his final setup. So now Tricklock and I will start playing around with random grooves.

Defining a motive

I am very much driven by the need to have a motive. This reflects strongly on my hobby projects and when I do things aimlessly the result tend to be reduced to a conceptual effort without value.

To do something about this I need to create a reason for putting up with an effort. For hobby projects there is a good lot of slack on the side of communication. There is no need for anyone except myself to really understand the motive. To make a different type of thing I will try document this incomprehensible process here, you might not be able to follow it well. But I'll try make it readable.

I need a motive for making some sci-fi music, for a larger scale hobby project which is a bit under the radar and hopefully will deserve proper mention later on. What are my options?

1 - Make something that I want to have for my own pleasure.
2 - Make something I think others will like.
3 - Make something for the fun of it.

Ok, so I pick the fun, thats #3 in the list.

So what is fun?

Fun is learning something by using skills which I can develop during the creative process. This is the reason for picking option 3.

If I were to go for #1 I know I will personally dislike the result until my highly picky ears are willing to accept the output on an emotional level. This will require something I expect to be close to an infinite number of iterations. SinceI am somewhat reluctant to invest the rest of my life in this hobby project I will abondon this option.

If I were to go for #2 I would expect to need to work so hard that I will never finish, if I aim at pleasing an external audience my probability of success is limited by my inability to measure my progress against a target audience so this one is out.

Going for #3 I'll start with identifying which skills I want to develop. Thats relatively easy. Production methodology, guitar playing, mixing, rigging, storytelling and some other random stuff not worthy of mention. I will conciously abandon the skills of designing up value, I'll move outside that concept by pretending that I dont care about it in this particular case. The work involved with design in this case would also not be within my means to execute.

Now I have the basic idea, so how to I create the motive from here?

Last piece I made defined pieces of a motive I will use and I'll call this an informal vision.

The informal vision

Setting: Sci-fi (Technology has made changes to the world and the idea is to use the context of the changes to present a message about something which may be more or less deeply hidden in a story or fantstic context. What the technology is will be part of the vision of the effort.)

Method: Roleplay (I'll pretend to be some entity within the context and define details of this entity partly during the development process starting up. This entity will be a band, which is a part of the technology in question.)

Background: A Story

The story in short:

A political party, The Network Party, created a new ideology based on mathematical proof of optimized average and total life value of all humans in the world. This was such a powerful ideology that the political party spread its rule to cover the world and save the planet earth from destruction by consumeralism and economic competition for resources. As the party gained strength it became obvious that mathematically proven principles are well managed by computers. This led to the ideology being implemented in code and thereby further optimized, the implementation was known as The Network of Organized Democracy, usually called The Network or "TN" as shortened by l33tspeeking people.

Humankind was now living an awesome life happily together and they decided to journey towards the stars. A few million years later humankind has spread across the vastness of space. To establish new colonies they sent robots which are connected to The Network. These robots spread propaganda for The Netowrk to alien worlds in preparation for the arrival of human tourists and adventurers.

The Network developed several series of propaganda robots, one of the successful brands travel through space in the form of musicians. They bring the glory of The Network through galaxies by playing songs which they modify iteratively towards fitting whichever alien species they encounter. They can also defend themselves if attacked, but they generally are peaceful. Humans can also purchase these robots directly from The Network by spending a decent lot of their consumption allowance on each robot.

Anyhow... the setting for the work in question is to create odd iterations of the robots propaganda music. This leaves me without any reason to worry about making anything which either attempts to sound real, natural or great. I can focus on the skills I think I can hone through the work.

The details is to roleplay the robots. And the robot band is known as:

Spaceforce

Vocals: All 4 robots participate in singing

Guitar: Roxxor
Drums: Tricklock
Keyboard: Schmooth
Bass: Doppz

The first job in the process of creating the next song in their setlist is to define the sounds of Tricklock. This time I'll aim at the Make it Flawless principle, meaning that I'll spend a lot of effort on getting the drum sounds of Tricklock. I think Tricklock will get his own post before I am done with him. Now to setting up a whole lot of samples in the drum machine... time to start working.


Tuesday, April 14, 2009

Practicing Agile on Art

To practice the kinds of principle which are described by Lean I started with creating a piece of music. I like making music, it is meditative and it uses some of my usually dormant skills which when I fire them back up gives me a serious dose of pleasurable feedback chemicals in my brain. Anyhow, creating music is an example of a very well defined production system and I like making abstract generalizations from things I know well to things I know less well. On the whole I can claim to be quite an efficient music production team all on my own, something I have a hard time claiming for the art of making games. Games require so much wider skill sets to go from idea to fully implemented in the cases that I am interested in so I can’t make a micro experiment to test the concepts of Lean development on my own with the game medium, and I can’t program well enough to make anything useful.

One of the great advantages with creating music is that I have access to a relatively decent implicit iterative method which covers the full production pipeline. I can tell if the instruments are tuned poorly, if the arrangement is busted and such technicalities. I can even tell if playing the instrument in the recording is giving a result which pleases the musician. This means that I pretty much know when I am cheating the creative process by accepting less than flawless components in the production. I can also cheat and get some explicit feedback from various sources such as sending snippets to friends over the internet or check details with a spectrum analyzer etc.

I also know that the end result is the interaction between the components and that I will not really be able to know in advance if a production will be good or not. I can generally feel it growing if I keep working on something which keeps me motivated. Almost everything which I ever finish is based on a mashup of old prototype songs. This mashup process is something similar to stage gate portfolio management which defines little pieces but without the information of how the pieces should interact to deliver an impression. This is also poorly managed by me with various references in my brain and plenty of broken snippets of recordings which I usually forget about. To bring this mess of components to life as something which I can claim to be something I finished I have to work through what my limited experience would label as a large process. I don’t like using samples, when I try I tend to get bogged down in editing the samples so its more efficient for me to just go straight at making the whole arrangements and tweaking the hell out the individual instruments.

The way I make music is fundamentally iterative. The goal is a mix of creation and refinery towards reaching greatness. Greatness is a state of perfect fit, “the goose bump factor”, an implementation which creates unique emotional response of some kind. This is hard work, I am rarely motivated enough to not give up and leave the effort as a part of the busted stage gate portfolio. It happens sometimes that I keep on going and the finished results are what I can use to run production technique experiment.

Writing this I sense that I will not be able to combine the whole argument in one big post. I will have to dig at details another time if I get there but I got some direct references at this point.

1 – Make it Flawless; applies to music production. This is a well known oldskool audio engineering principle which says that: “Make quality recordings of sounds; you can not make bad sounds good by tweaking them.” You can also not effectively engineer up a poor performance or a bad melody through creative editing, you can make it better yes, but you will be much less efficient than making the recording good in the first place. Compromising these early stages of the music production is like technical debt in software development, you can use them to move fast to a certain point but you will never reach greatness unless you go back at a later point and fix it. Such late fixes are often big risks as the new recording might interfere with the whole arrangement. This often leads to cascading failure of the whole production and all you get is yet another ambitious component of the stage gate portfolio.

2 – One piece Flow; this very much applies to music production. If you fail to follow it you will fail the Make it Flawless principle and learn to accept a poor result. The trick to one piece flow is to know your production method which is much easier in the world of music than when making games, especially for me since the process of making music in my case happily operates at a loss as long as I have fun with it. In the world of music production this goes through layers of development. You will benefit greatly from having the rough shape of the arrangement in place before starting to mix, you don’t start with the mix because then you will break the idea of one piece flow and en up with all pieces. The real question here is what the “one piece” is. In music the “one piece” is a multi dimensional argument. It can be used for an instrument, section, harmony, melody, mix, arrangement, lyrics and so on. The matter is the ability to identify the pieces and to learn how to be satisfied with one particular piece. This identification has its roots as a craftsmanship based on skills, theory and vision.

3 – Maintain multiple options; this is integrated with tools pipeline. In an ideal world I would call this “the mix” which is what you do last before sending the work to the ears of an audience. I am not sure if this is because I want the reference to fit or if it fits. The idea also carries through the arrangement by the theoretical structure of music theory. There is this huge set of lore which a master musician can use to apply multiple options to any given situation. I am not a master in this sense but I had an awesome Jazz teacher who showed me a few things about which doors can be opened to toss things around in a technically “legal” manner. It has been half a life time in my world since I had those lessons but their fundamental concept remains with me still. I’ll tell you the secret right here: All that theory is just a shortcut for connecting your ears to be the judge of what is good. It is a great shortcut and it is the key to collaboration and communication about the creative process of the medium. But it is nothing which resembles strict laws and the rules are there to be broken by the creator at will.

4 – Avoid Waste. This is a tricky beast, also very relevant to music. Defining what waste is in a music production is not that straight forward. Recording random things and putting them together is generally waste, sometimes it is a process which rapidly can fill up the stage gate with concepts. The real answer to the question of what waste is depends on the vision and goals of the production. If the goal is to increase the stage gate then an ambitious mix is waste, if the goal is to deliver on a vision then aimless noodling and random recording is waste. To know how to spot waste you need to be a well practiced craftsman of music creation.

My biggest problem for my music hobby is lack of vision. I like to blame this on the extremely efficient development method which gives me an extremely agile context. The studio software allows me to change anything at any time so I never feel like I have to spend any effort at creating a vision for the work. This makes it easy to get a false sense of progress towards greatness and the lack of vision rears its ugly head as technical debt within the whole arrangement which sends everything to the stage gate relatively often.

All of this stuff is generally applicable to most things in life. The biggest problem with implementing process optimizations toward value production is a lack of common grounds for communicating these kinds of ideas. Just as it is hard to make a band play good music without a fundamental common ground in music theory it becomes hard for a game developer to make good games without a common ground in development methodology and game design theory. Lack of common ground will require blind faith which is a rare human trait and it rarely lead to good results.

Quality Confusion

I find the concept of "quality" to be among the more abused components of game developmen and maybe even for artistic expression in general. The problem is that different people consider different things to be quality. The main stances towards quality which I am familiar with are something like this.

Engineering: Quality is when it works technically elegant.

Business: Quality is when it has obvious sellable features.

Art: Quality is making an impression.

Perfection: Quality is meeting established goals.

The more common among ordinary people is the perspective of business quality. People talk about the obvious sellable features when they talk about a product. They often and faulty equate a small number of features as a poor quality product. This flawed reasoning is the core motivator for me writing this post.

To start correcting the problem we have to change a little bit of what describes business quality. We have to replace the word “features” with “advantages”. After we have made this correction I will easily argue the stance that to reach high quality you have to nail all four of these perspectives.

Next problem is that the reasoning above really does not talk about quality the way I consider quality. I would call the above statements for “needs” which are base requirements for reaching ROI with anything. If losing money is desired then compromise on one or more of the perspectives.

Real quality is meeting all of the product needs without the existence of defects.

Quality is not a creation or induced by adding things, rather a result of a well balanced methodology. An arch enemy of quality is the misstake of associating ambition level with quality. This leads to the common problem of people claiming that small simple products are having “low quality” which is a fundamentally flawed argument. Those simple products are, when successful, rather reducing ambition for increasing quality.

Tuesday, April 7, 2009

Layers of iterative development process

All the layers in this image contain iterative process, of varying formal structure.


Note that each level also tend to be branched to different territories, at the bottom you have different types of experts or artists producing different types of work often through implicit iteration.

Monday, April 6, 2009

Goals

Straight from wikipedia: Goal Setting involves establishing specific, measurable and time targeted objectives.

This is a point of setting goals which which appear to be failed by teams that fail at agile development. A goal for a devlopment or I guess any business needs to be formulated in a manner which describes the state of things upon completion of the goal.

Following this principle is sometimes quite hard. Lots of the flak tossed at scrum lately can be aimed at the lack of useful goals.

Setting useful goals takes a whole lot of time and when a whole team is working on the problem together people often start showing signs of stress symptoms from feeling of wasting time. However having bad goals is worse than wasting time.

Sunday, March 29, 2009

A reductionist model of humankind

Anyone who read this is statistically likely to be annoyed by it. It is also not founded in any real research that I know about, just a bunch of conclusions drawn by myself through looking at things and probably cherry picking my sources.

Humans are agents in a big system based on other humans and the rest of the world they live in. The system is too large for us individuals to see how the system works even at a short distance away from where we stand. This is what makes us individual, local properties.

What makes us different on an individual level is what we know and how we think and this might appear like great differences on the surface. But in fact it stands for a tiny portion of what a person is in comparison to the position within the whole system. The definition of the individual – you come from your most immediate surroundings through life until now and your expectations on the future based on extrapolating the system in a predictable direction.

As we grow up we learn to attach blame and praise for how we operate on ourselves but this is primarily a bunch of fake social magic which our system has invented as method for success, as success for the system, not for you, through the last few thousand years. The biomechanical machinery in your brain is built to trigger on stimuli which it learns to associate with rewards or stress based on randomly testing the world to see how it operates. We spend the vast majority of this random testing on figuring out how people within the system work and what things we can do to make them exhibit useful behavioral patterns. It was quite a different result a long time ago when we roughly belonged to the same system as some kind of monkey.

Anyhow, condensed this means that we really all are just the same. We think we are very special because our own consciousness happens to sit without ourselves but we can be relatively certain that we would have been easily replaced by any other consciousness given the same circumstances as ourselves.

Given this potentially evil, if you like that type of language, argument we can probably figure out how the system operates even at a great distance. The people that are so far away that you have no chance of knowing anything about them will have done exactly the same thing as you did until right now. They have been trying to figure out how the system operates from experimenting randomly with the available local properties. Based on these local properties they have developed a personality which will be roughly the same as your own, regardless of where they are in the system.

It is very unlikely that they will be reading this text, har har, which means that you will possess a different set of data to use for interpreting the world. Which also mean they might even speak another language and associate other things as stressful or rewarding, that’s their local experience and it will have the power to shape their model of the world.

Now the responsibility of art becomes to manipulate the agents in the system towards performing actions which increase the experienced value of the whole system. Increase the full volume of the value, the average, the mean average and increase the minimum value per system component, the risk of failure and so on. The only reasonable compromise is the reduction of the individual maximum, which on a system level is waste anyway.