Using Images to Create Sounds

Jim Hunter

The bmp import function in Cameleon opens up a huge potential sound design resource, allowing you to use existing images, or your own custom bitmaps to create new and unique sounds. This tutorial will explain the principles of image import, give some tips for the best results and finish with an example showing how fractal images were used to create an entire tune.

Importing images - the theory

Cameleon can turn images into both harmonic and noise components:

Harmonics - Cameleon analyses images and transforms them into sound by interpreting the brightness of a pixel as the amplitude of a certain harmonic at a certain time, as follows. Images are interpreted as having harmonic going up the y axis - so the bottom pixel corresponds to the first harmonic, the second pixel up, to the second harmonics and so on, up to 64. The x axis corresponds to time. The brightness of a pixel corresponds to how loud that harmonic is at that time. The standard bitmap size Cameleon uses is 128 pixels (x-axis) x 64 pixels (y-axis). A black pixel is interpreted as silence, and a white pixel as full volume.

So a simple sine wave, simply playing the first partial alone, looks like this; there is just one white line along the bottom row of pixels:

The 'Drawbar Dreams' preset in the 'Organs' directory can be created from this bitmap:

Here you can see that the first, second, fourth, eighth, sixteenth, thirty-second and sixty-fourth partials are being activated, with some slight variation over time.

Noise - The noise component of sounds can also be created by importing bitmaps into Cameleon. This works in a similar way to harmoncs, with the x-axis representing time, and the y-axis controling the frequency of the noise. Any size of bitmap can be imported into the noise component, Cameleon will not just take the bottom 64 pixels but will use the whole range of the y-axis. The bottom row of pixels corresponds to 20Hz, the mid point of the image to 6.5kHz, and the top row of pixels to 22kHz.

Importing images - the practice:

In order to import an image into Cameleon, it has to be of .bmp format. Cameleon will import bitmaps of any size, though the standard size Cameleon uses is128 pixels wide x 64 pixels high. Images not adhering to this size will have their width stretched by Cameleon to fit automatically, and will have the bottom 64 pixels imported if the image is larger, and if the image is smaller than 64 pixels high this will limit the number of partials used by Cameleon. They dont have to be black and white images, though colour ones will be read by Cameleon as black and white. I prefer to make or shrink my bitmaps to 64 pixels high before importing into Cameleon, as this enables me to see how the sound will evolve and sound over time more accurately. I use a freeware graphics application such as Pixia to do manipulations such as this.

To import an image, press the 'Reset' button near the top of the GUI, then simply go to the voice page (A,B etc) you wish to import the image to, decide if you'd like to import the image to create harmonic sound (press the H button in the top left of the voice page), noise (click the N button) or both harmonic and noise (click the All) button. You can then select your directory , and by selecting the 'bmp' file type you can import the image of your choice. Now when you play a key you should hear the raw sound of your bitmap image! There are many things you can do to your raw image sound, from morphing with other sounds to using the effects and so on. We will look at these in more detail using examples shortly.

Choosing and making images - some tips

The best sounding bitmaps usually, but not always, have a lot of black in the picture - if the picture is very 'busy'and bright with little black space then the sounds are usually very metallic, harsh and gritty, as so many of the partials are playing at high amplitude levels. You can create a negative of an image if you feel it is too bright, and try using that. I usually use pictures that are essentially black backgrounds with sweeping lines or patterns - these activate particular partials over time and can give great sweeping squelchy rising tones, or weird spacey sounds. Google image search is a good place to find images to experiment with.

Of course, you can create a bitmap from scratch specifically to have real musical usability, for example the 'drawbar dreams' picture and patch described at the start of the tutorial, was created by Glen Berry using additive synthesis theory to sound like a real organ. Essentially organs are primitive additive synthesisers - this is one of the reasons why Cameleon is so good at creating organ sounds.

Exporting and re-importing images

Try exporting bmp's from some of the instruments you like the sound of, and see how the image is constructed from the partials the sound uses. You can alter this bitmap, or create a new one using the same principles to explore additive synthesis.

To export a bmp, select whether you want to export the harmonic or noise component by clicking on 'H' or 'N' underneath the 'export' button, and enter the filename you wish to use. You can now use a graphics package to examine and alter the bmp image. Here is an example of what an exported bitmap looks like, in this case the harmonics from 'Flute Mystery', in Brass-Winds:

Now try importing this image by right-clicking it, saving it somewhere you can remember, and then importing it into the Flute Mystery patch in Brass-Winds by clicking on 'H', then clicking 'import', then selecting this image from the window. You can hear it still sounds very similair, but slightly different as the partial detuning information has been lost. Different sounds will suffer from losing this information to differing extents.

We can now use a graphics package to mess around with this image a bit, to make it a bit more unusual. Here I've smudged some of the white up in long streaks, to activate some higher partials:

Now try importing this image by right-clicking it, saving it somewhere you can remember, and then importing it into the Flute Mystery patch in Brass-Winds by clicking on 'H', then selecting this image. You will hear it sounds quite different, sort of like a robotic flute, due to our new 'streaks'.

There are a few things to bear in mind when exporting and re-importing bitmaps:
1) If you have both a noise and harmonic component, you will need to export/import each separately.
2) When exporting the harmonic part, the detuning information will be lost. (This equivalent to setting harmonize to fully on). There is no way around this.
3) The length of the sound will be lost. You can either correct this using the stretch knob on the easy page, or you can put the envelop editor in stretch (str) mode (bottom left), grab the last point and move it to the correct length.
4) The original sound may be multisampled. In this case you will either need to export each multisample, or just choose the most representative one, and take care to set the 'num multis' counter to 1.

You can use the bmp export feature to learn more about how sounds are made, by studying the images produced. For an example, exporting the harmonics from 'Bell Juno' in 'Chromatics', gives this image that clearly shows how the partials behave over time:

'Cathedral' in 'Organs' looks like this:

and the resynthesised speech in 'TalkingCameleon' in 'Voices' looks like this:

Examining these pictures can help with the understanding of additive synthesis theory, and help you create your own bitmaps.

Creating a more interesting sound once the image has been imported

Depending on the nature of the bitmap I often transpose ( the counter in the bottom left of the GUI) down an octave or two to start with - if the activity is mostly in the middle to top of the image the sounds will be very high. Remember to keep your image 'in tune' go down in multiples of 12.

- I usually use quite a lot of slow chorus on bmp-sourced voices- this takes the edge off the brightness of having lots of high partials and adds more depth and movement to the sound.
- Also try a bit of reverb and delay, depending on the kind of sound you are trying to create.
- Use the stretch knob on the easy page to try stretching out or squashing up the sound.
- The formant filter is great for sculpting the sound output and highlighting particular parts of the sound that you like, or try routing it to a slow lfo on the mod page and using the sharks tooth or comb formant filter presets to create really unusual moving sounds. Similarly, automating the filter cutoff using an envelope or lfo on the mod page can have awesome effects.
- Often a bmp you import will have quite a thin sound and no bass presence - this is because the first partial or two are of low amplitude, so try dragging up these partials in the harmonic partial amplitude window on the voice page. Oten the best thing to do is just to experiment and follow your ears to see what sounds the best. It's worth mentioning that if you are using an image that activates all 64 partials, and then pumping lots of powerful effects into it, then the CPU usage can get quite high on big chords. Try reducing the number of partials being used or the polyphony if this happens.

Case Study - Psychedebrameleon

Lets have a look at how some real images can be turned into a variety of different instruments with Cameleon. These images I'm going to use are all fractal images freely available on the internet, and were used to make the demo tune for Cameleon called Psychedebrameleon. All the images were turned from jpegs to 64 pixel-high bmp's using Pixia (freeware image editor) before importing into Cameleon.

This tune uses 7 Cameleons, with 7 different images providing the source sounds. We'll go through the images one by one and see what was done to them after importing, and how they sound:

Firstly, the 'burpy bass' sound came from this image below. From the patch here, it can be seen that this was transposed down a whopping 4 octaves, then had lots of delay added to it, quite a bit of chorus, and was stretched to 20% of its original length.


BurpBass.c 5i

Next, the 'cascade' sound was made from the following image. It was transposed down by three octaves, then 'squashed' slightly using the stretch function, and had some delay added to it, and also had a bit of pan applied to it on the 'Mod' page so it moved over the stereo field slowly.


Cascade.c5i

The 'creepy atmosfear' sound was created from the following image. This was transposed down by four octaves, stretched to be twice as long, and had some chorus and pan applied to it.


CreepyAtmosfear.c5i

The 'gritty pad' was created from the following image. It was transposed down by two octaves, treated with a lot of chorus and delay, and also given quite a bit of distortion and compression. The sound was also stretched out using the stretch knob, and the attack and release were increased too.


GrittyPad .c5i

The 'jangle pad' was created from the following image. The main alteration to this was to put a sawtooth lfo on the amplitude on the 'Easy' page, and add quite a bit of delay to it to create the 'choppiness'. A large comb formant filter preset was swept quite quickly over this sound on the 'Mod' page, and chorus was also added, with some pan for good measure.


JanglePad .c5i

The 'main bass' was created from the following image. This image was transposed down an octave. It was then treated with lots of chorus, lots of distortion, compression and m-bass, and stretched right down to 20% of its original length. In the demo tune the bass was fed through a slow automated cut off using CamelPhat's high Band Pass and host automation, though the same effect could be made within Cameleon by assigning the filter cut off to a slow lfo.


Mainbass.c5i

Finally, this image was used to make the 'squelchy bounce' sound. It was transposed down by two octaves, shortened using stretch, and given a bit of delay.


SquelchyBounce.c5i

Having made all these sounds, they can be used to create this somewhat unusual short tune. This tune was created with a previous version of Cameleon that did not support bmp to noise, so there are no noise components in it. Hopefully you should now have a better understanding of how to get the most from the bmp import feature. As always it is best to follow your ears, and try to experiment. You can't break anything, and you'll soon pick up the ability to guess what a picture will sound like, and how to draw interesting sounds yourself. Have fun!