Appendix 1 - topological analysis

To view this content, you need to install Java from

Here sites are distributed arranged in three different ways; regular, random or clustered. Click the figure to change between the distributions.

This shows how the Voronoi regions reflect different forms of distribution. For example, regular distributions exhibit regions with low variance in the number of edges per region, random distributions have high variance in the number of edges, and clustered distributions show high variance in the area of regions as well as aligned edges segmenting the space between clusters.

Source code: voronoi

This applet uses a naive algorithm to draw the Voronoi diagram. It visits every pixel looking for nearest neighbours, and colours the pixel blue if the labels are the same distance a point inside the area of the pixel. The lighter the shade of blue, the further it is from its generating site.

I had some problems with accurately calculating the status of cartesian pixels. This came down to the question, what is the lowest difference in distance between a pixel and its two nearest neighbours for a pixel to contain the edge? The answer appears to be a ratio between a) the gap between the nearest neighbours and b) the gap between one of the nearest neighbours and the pixel. Once I realised that much, I tried simply dividing a) by b), and was surprised by the good results you see here.

Appendix 2 - Sound samples of a Centroidal Voronoi Tessellation of melody.

Original melody
Melody after one iteration
Melody after two iterations
Melody after three iterations
Melody after one hundred iterations