Music Terrain Generator

Maya Python script for creating terrain displacements from song amplitudes. The Music Terrain Generator (MTG) takes a .wav music sound file to displace and deform any polygonal object in a Maya scene and the effect is dependent on the options used as well as the song used. The script also creates procedural textures from a selection of images included with the download of the program. You can also add to these images and increase the amount of results that can be produced.

The displacement values are simply created by averaging the music per the number of vertices in the mesh. Music usually contains 44,100 samples per second and lasts around 1-2 minutes long. Each sample usually stores a signed 16 bit value containing the amplitude. This can then be two 16 bit values to make up each channel of stereo.

For the texturing, we simply create a new texture image from a storage of images by overlaying multiple layers of noise as alpha maps. This then gets applied to the terrain as a projection map to emulate the different deposits at different heights. It also creates a basic bump map for the textures as well.

Music Terrain Generator was my first Maya Python scripting project. I had done previous projects in Python before this project but those were entirely in Python using SQL databases to create bookings software for a carpet firm. This project was also before I had learnt about OpenMaya or PyMel, which are both much better than standard maya.cmds commands in Maya in either speed or ease of use. I feel the project was very successful as I was able to create an overall well rounded script with an easy to use GUI that creates appealing results.