… chiefly British variant of syn·es·the·sia:
noun \ˌsi-nəs-ˈthē-zh(ē-)ə\1: a concomitant sensation; especially: a subjective sensation or image of a sense (as of color) other than the one (as of sound) being stimulated2: the condition marked by the experience of such sensations
— syn·es·thet·ic \-ˈthe-tik\ adjective
The Wikipedia article is a bit more detailed. Synaesthesia, the term first coined by Charles Darwin‘s half-cousin Francis Galton, is an umbrella term for many different brands of this super-power, the most common of which is probably grapheme–colour synaesthesia, meaning that numbers and letters are perceived as “having” a colour. This is the kind of synaesthesia that I have; see this neat web-app for a hands-on demo: Grapheme-Color Synesthesia Mapper. For an excellent talk on the matter, see V. S. Ramachandran on TED (starts at 17:40; there are more talks of his focusing more on synaesthesia on youtube, also, his private homepage also has some neat illusions).
I have been synaesthetic for as long as I can remember — much longer than I have know there is a word for it — but recently, I have become more interested in the phenomenon of synaesthesia, because I have had it in mind to write a story with a synaesthetic main character. As a way of procrastinating the actual writing of the story, I started experimenting with ways of visualise synaesthesia. The synaesthetic experience is difficult to explain for the non-afflicted, here is one pretty wild, but very appealing, example:
My own first attempt was to write a python-script that converted an image into a text-file, substituting the individual pixels for the numbers that I perceive are the closest to the pixels’ colour-values in RGB-space. I augmented this with the ability to print the text-file in colour to a terminal, but ultimately this turned out to be too inflexible for what I had in mind. Therefore I turned to GIMP, with the aim of writing a GIMP-python plug-in.
The result is synaesthesia.py, available under the GPL at this location, hosted by Gitorious, the Git repository manager previously mentioned here. (Gitorious, unlike GitHub, also mentioned before is fully based on FLOSS, and thus a tad bit cooler.)
To install it under Linux, download it to from
and save the script
in the folder
substituting X.Y for the version of your GIMP installation.
You have to make it runnable for GIMP to load it as a plug-in. This is done by
chmod +x synaesthesia.py
It will then show up as
once you have refreshed the filters.
For tips on how to get it running under other operative systems, please see Akkana Peck’s homepage!
Most of the options should be fairly self explanatory; you can choose fontsize, font, and what colours the ten numbers 0–9 should represent (the defaults are “my” colours).
The only subtle option is the choice between Random and Ordered distribution for the printed numbers. The former — Random — is the default, Ordered is chosen by setting the number of randomly distributed numbers to 0; if this is non-zero, the next two options will be ignored. This awkward way of selecting mode is a space saver, chosen because GIMP makes a the plug-in GUI very tall when there are many options.
The image preview above was generated with a random distribution, however, included in the Git-repository is GIMP image called strikking_red.xcf.gz where the two options are available as different layers for comparison. There are also three colour modes to play with: besides the default option of using the synaesthesia palette, you can select using the actual sampled colour for the number, or you can use the foreground colour for all numbers.
A few technicalities you should be aware of:
- The operation is performed on the active layer, and at the end of the execution, all visible layers will be merged. Therefore, before running, make sure that no layers except the active layer are visible.
Also, please note that the colour sampling in GIMP will crash if a completely transparent area is sampled. Currently this will crash the plug-in, so don’t let that happen. (I’m planning on implementing error-handling to get around this; should be easy enough.)Fixed this (it was, indeed, easy)!
- At the moment, the only way of aborting the operation is by deliberately crashing the plug-in, e.g. by selecting one of the newly created number-layers and deleting it. CAUTION! This will likely disable undo for you until you restart GIMP! (This is also something I’m working on.)
- At the moment, there is no way of undoing the operation. You can work around this by performing a “dummy operation” before running it (e.g. selecting an area and then deselecting it), and then go back to that state in the undo history. (This is yet another point that I am working on.)
- If you know or work out how to solve the issues above, then please let me know. I will make sure that you are properly credited. (Or, if you are so inclined, merge your version with the version at Gitorious.)
That’s it! If you make something cool with it, or if you have any questions, let me know!