Tito Dal Canton

Physics is reverse engineering

Alcaze: another way to turn images to sounds

Alcaze is a "bitmap to spectrogram" converter. A program that takes a bitmap image as input and produces an audio signal as output, so that the signal spectrogram shows an approximation of the original image. It's a very simple command-line program that should compile and run on many Unix and non-Unix systems; it's released under the GNU General Public License.

Download Alcaze 0.1

Alcaze works this way. Let's assume you have a bitmap with n pixel columns and m pixel rows, and want to display it in a target frequency band between f0 and f1. The program generates n similar signals which contain only white noise from 0 Hz to some (small) frequency value f. Then each signal is resampled at 44100 Hz and translated up in frequency, so that the whole signal array covers the target frequency band. At this point the target band is covered by n independent sub-bands of white noise. Alcaze then time-modulates each signal by multiplying it with the pixel values from the corresponding column. Finally the resulting signals are added together, and the sum is the output. This solution works quite well but it must be improved and I don't like it very much. Also I think there are different ways to do the thing; maybe I'll code them when I'm inspired enough.

Like you may have guessed, I wrote Alcaze as an experiment with software dsp, especially signal resampling, bandpassing and upconversion. I then quickly realized that it could be used in funny and interesting ways.

The following pictures show what Alcaze does: on the left is the original bitmap, on the right various spectrograms of the output signals (I used baudline as a spectrum analyzer). Note how the result varies with different settings of the spectrogram software, especially color aperture, time/frequency scale and stft window. Also note the spurious wideband noise and the spikes generated by the sudden changes in pixel values.

Original aleph letter Alcaze-encoded aleph letter 1 Alcaze-encoded aleph letter 2
Original foobar text Alcaze-encoded foobar text 1 Alcaze-encoded foobar text 2 Alcaze-encoded foobar text 3

Here's what you get when you set a sound to loop from the speakers and then record with baudline from another computer in the same room. Voice and pictures mix up!

Alcaze spectrogram showing voice and foobar text

Finally, in case you are wondering what Alcaze means... Nothing; that word came out while I was trying to remember the name of another program, and I liked the sound.

Last update: 2007-02-16