1.4 Teletext tribute

Teletext was invented by Philips in the early 1970s. The television owning public got their first taste of teletext in the form of BC Ceefax ("See facts") in 1974. This system was a way to communicate text and graphics on (amongst other things) news, weather and sport over the vertical blank interrupt space of the PAL television signal standard in Europe. If the consumer has a television with the a teletext decoder it can view and navigate the teletext interface. While phased out in the majority of countries it was once introduced it, its low bandwidth usage and reliability makes it very resilient. It also can provided live captioning for the current television broadcast, which seems to be the main reason why most channels still maintain their teletext service.

It can be argued that teletext was a processor to the web. Just like the web information is mainly presented in the form of text. And there is a concept of "pages". These pages have references to each other. Instead of URLs, teletext has page numbers ranging from 100 to 999. But very much online the web, its designed to be one-way communication. The publication of teletext pages is limited to the television station. Not to mention the technical constraints which very much limits the possibilities.

While there where other more advanced attempts at creating proprietary web-like systems in the eighties and nineties, teletext is the only one I've personal experience with. For this project I took a dive in the surprisingly still lively world of teletext. I explored some of the technical details of the teletext standard to create my own teletext page.

I was pleasantly surprised for not having to look at far to find a good resource on doing exactly what I described above. teletext.art.co.uk is a very lively community of people who use teletext technology for artistic expression. It has various free tools and resources on how to get started, a podcast, online lectures and art contexts.

Here I found two web-based teletext editors: edit.tf and zxnet.co.uk/teletext. These both seem to support the full teletext feature set and seem to be used and maintained by the same people who actually maintain real teletext pages professionally. With these in one hand and the 1997 edition of ETS 300 706: Enhanced Teletext specification in the other, I tried to figure out how I can reverse engineer parts of it for the purpose of generative art.

In summary: a teletext page is 40 columns wide and 24 rows (or 25 rows counting navigation) tall. Each cell can contain a single alphanumerics from a limited character set (characters of set depends on language or region). Alternatively it could also contain a control character, which applies an attribute to all characters appearing after it until another control character of the same type is found. For example:

Grumpy wizards make a0x02toxic0x05brew0x01for the jovial queen

will render like this:

Grumpy wizards make a toxic brew for the jovial queen

Likewise there are control character for making text double height, making it flash, starting and ending text boxes and much more.

The aforementioned resources let you play around which existing works inside the editor. These and an hex-editor proved to be quite helpful in understanding the format.

From here I reused part of the zxnext editor to receive input from a camera filter I have written using p5.js. For each of the 960 pixels it assigns a luminosity. This is then translated into a character of which its density is roughly representative of this luminosity: " .:-=+*%#\u007F"

These are then transformed into numeric values compatible with the teletext encoding with the right header and terminator, after which these are send to the zxnext teletext renderer.

Implementing generative colouring of the image proved to be quite challenging. While technically not that complex, it degraded the fidelity of the image too much to be recognise as anything at all. This is partly because of the limited colour palette, but mainly due colour character codes taking up a blank space, making the effective resolution even more tiny than 40x24.