I've discovered a really simple way of getting a granular synthesis type effect going on the KORG Electribe ESX synthesiser. Load up a sample of reasonable length (5 or 10 seconds or so) into on of the one-shot samples. Turn on the Roll button and while holding down that part's button, slowly vary the start point dial. This continuously triggers short snippets of the sample from different points.
Having recently rediscovered Andre Michelle's fantastic ToneMatrix synth, I was inspired to create an Android port for my HTC Desire. After a couple of days getting to grips with the Android SDK, I managed to produce a version that works reasonably well (at least on my Desire).
This is a very early version however, and I expect to add more features in the coming weeks such as different synths (possibly custom-built audio engine), speed control and better support for different screen sizes.
For the curious, the app is available as a download: ToneMatrix.apk (Android 2.1 or higher).
Instructions: It is pretty simple to use: horizontal axis is the time axis, vertical axis is pitch. Press the grid squares to enable that note. Enjoy!
Warning: Another Shamless Plug!
At last I've managed to launch the official Broch Inspectors website. There's a couple of loose ends to tie up (couple more tunes to go up, photos etc), but its essentially finished. They are a (another) ceilidh band that I play for fairly often, and are based in the Inverness area. Very professional band and good fun to play with too!
Aims
While in my experience such projects are rarely ever considered finished, I would like to at least get the following done:
- Be able to create a randomly generated city within a set of parameters.
- To draw the city from an isometric perspective, at several levels of zoom.
- Be able to create all textures and detail for the buildings and landscape procedurally, that is no external resources (images/sounds etc.) will be imported to the program.
- Finally, to provide a automatic camera panning routine, and possible add a basic amount of animation (long term).
Planning
Procedural generation of cities is not a particularly new idea. Models with deep complexities can already can be found [PDF], supporting very organic road structures, population densities etc. Very little of that detail transfers particularly well to the pixel art world, for example curves/circles are notoriously difficult to draw realistically by hand, let alone by computer. For that reason, in this project I will be sticking to a very simple grid pattern, one that is not wholly unrealistic: many US cities today have a grid-like structure, particularly in the city centres.
Grid layouts are also much friendlier to program. The code will essentially store the city in a two dimensional array of grid squares, typical of many of the early simulation games (many of which are a big influence on the project). This lends itself well to an Object Orientated approach, such as that below.

This way, the data describing the cities composition is completely separate from the rendering process, allowing multiple levels of zooming (and possibly rotation?).
Challenges
While drawing the basic shapes for the city shouldn't be too challenging, adding detail and textures will be a challenge. Some textures only need to be generated once then used repeatedly, such as road and grass tiles; building textures will vary greatly and will some can be reused, they will generally depend on factors such as height, type of building, and other factors. Also early experiments with Java's TexturePaint object suggest that it will not be flexible enough for the job, meaning a custom isometric texture renderer may have to be implemented.
Today marks the end of a 2 month investigation into various techniques of simulating reverberant sound. Using MATLAB, I developed two contrasting models:
- Image Source method
- Monte Carlo Ray Tracing method
The report in full is available to read here, though for a lighter overview, this poster is recommended. All sample output, including the odd phasing behaviour described in Section 4.1.2 can be downloaded here. Any feedback is greatly appreciated!


Recently I have been going through a phase of watching (almost exclusively) dystopian science fiction and while this is probably not widening my "cinematic horizons" particularly, it makes for an interesting blog post if nothing else! Here I present my top 5 list:
Terry Gilliam's dystopian masterpiece is a tale of mistaken identity in a surreal alternate future. Full of dark humour and with the expected Monty Python silliness, the film is set in a visually stunning, bureaucratic world. The bizzare dream sequences may be too full on for some, but they are just a small part of the whole tapestry. The film is full of subtle visual gags too; it is an actual "bug" (i.e. insect) that causes a bug in the system which leads to the main premise of the film! Definitely one of my favourite films, and essential viewing for sci-fi or Monty Python fans...
Logan's Run tells the story of a perfect world where the inhabitants live in a sealed off, domed city following some wonderfully vague apocolyptic event. The catch (there is always a catch) is that very aggressive population control means that no-one is allowed to live past the age of 30. The story focuses on Logan 5, a citizen whos job is to stop "runners" from escaping their fate.
The best part about the film is probably the Oscar-winning special effects (bear in mind the film is over 30 years old). Everything from the now very retro costume and set design to the very English, matter-of-fact style of acting of that era leads you to expect suitably questionable special effects, but in fact the opposite is true: proper laser guns, teleportation, it's got it all...
Watching Metropolis is a very strange experience. Being used to the polished nature of current day cinema, watching a film without sound (save the fantastic orchestral score later added) takes getting used to, especially as the cast "over-act" to convey their character's personalities without speech. However, particularly considering the film is now over 80 years old, the special effects are absolutely stunning and the world portrayed is one that still feels futuristic.
Ridley Scott's Blade Runner is just so damn atmospheric. The dystopian near-future Los Angeles is so believable that it wouldn't be at all surprising to see cities like it in our lifetimes. Like so much great science fiction, it takes place in a grimey, polluted world; this isn't the future of sleek white and glass panels, its a world that is just trying to survive.
Its hard to ignore the theme running throughout this list that almost all of the films predade the big CGI technologies that basically came about after the Star Wars series. Thats not to say that CGI has had a bad influence on film; only that the charm of earlier films such as these comes from the inventiveness required to create these futuristic societies. Its all to easy now to create a 100 foot robot of unimaginable complexity, but what use is that if the story is just playing off recycled nostalgia... The early masters of film had to rely on tricks of the camera, gripping stories and rich characters. Of course it's not to say that all modern sci-fi is full of blundering CGI. Great examples include Moon (2009), and my last choice Children of Men.
Set in a bleak near-future Britain, Children of Men imagines an infertile world with the remaining population left falling into chaos. The film is disturbingly believable, from the draconian immigration laws to the crumbling society that is portrayed in such detail. Perhaps the most impressive aspect though is the epic action sequences, the notable scene being in the film's climax where we are treated to over six minutes of frantic street warfare, amazingly filmed in a single take!
Honorary mention goes to Zardos, a film which Sean Connery described as "the challenge he needed after the James Bond series"...
The basic idea behind using an isometric view is to give the appearance of a 3D image on a 2D plane (i.e. the screen). The definition is basically that the each axis of projection follows the same scale, i.e. there is no perspective, meaning that the angle between all axes is the same (120°).
However, if we actually apply these angles to pixel art, it is more problematic. We have tan(30) ≈ 0.577, which means for every two pixels in the x-direction, we must move 1.155 in the y-direction! These clearly must be integer values if we are dealing with pixels on a screen, so we change the angle slightly so that we get a 1:2 ratio.
While we could in theory draw in a true isometric projection, it would require anti-aliasing to avoid looking horrible, and part of the whole pixel art philosophy is the idea of clean and crisp outlines; it is a style of digital art devoid of the smoothed, Photoshop processed feel that is more common today.
Of course other types of line can be used in isometric pixel art (to great effect), but it is generally advisable to stick to integer ratios for their gradients. A good example of this may be found in Rhys Davis' authoritative "The Complete Guide to Isometric Pixel Art", he describes a family of lines that work particularly well (see right).
This historic moment marks the start of Pixeville, my latest programming project. Inspired by Shamus Young's Pixel City, I have decided to try and create a procedurally generated city in an isometric pixel art style.
Having grown up loving classic isometric games such as Rollercoaster Tycoon and Transport Tycoon (see below, now available from the open source project OpenTTD), it seems the perfect challenge. The aims of the project are to have a arbitrarily large city generated at random, along with random textures and detail, and possibly eventually basic animation. As with all such projects, it will probably get turned into a screensaver eventually, but that is a long way off.
I'm writing the app in Java for the time being (as that's what I know best) but I am considering a C++ port eventually for the screensaver etc. You can keep track of developments on my Google Code project page.
I finally got around to writing a port of an amazing Firefox extension to the Chrome browser. MileWideBack (available on the Mozilla site) turns the left edge of the browser into one large back button, so when the browser is maximised (as it normally is for me at least), you can just slam the mouse onto the screen of the screen and just click to navigate.
By default, its left-click goes back, right click goes forward, and middle click to close. Also using the scroll wheel on the edge of the screen cycles through the tabs. There is an options page so those without middle mouse buttons can set up the extension differently.
Its now available on the Google Chrome extensions site: get it now!







