The Making of Turbulence

Written by Lft

Turbulence is the successor of Craft. It's a microcontroller demo based on the Propeller chip from Parallax. External I/O consists of stereo sound (at line level) and a VGA signal. It was my contribution to the console / real wild competition at Breakpoint 2009.

After Breakpoint 2008, as the URL to my Craft page was making the rounds on the Internet, I was contacted by a representative from a company called Parallax.

They wanted me to have a look at their new microcontroller, and offered to send me a starter kit free of charge. While free samples are rather common in the microcontroller industry, it's extraordinary for a private person to be contacted by a manufacturer in this way, and so I happily accepted the offer.

The package arrived in the mail, with the Propeller Demo Board, a book with specifications, and a CD. The CD contained a development environment for Windows. As I don't run Windows (and never have), I decided that the way forward would be to read the book, and then write my own assembler according to the specifications.

In early summer, the assembler was up and running, and I had started to play around with some visual effects on the Propeller. The assembler still had a few bugs in it, and would occasionally produce the wrong machine code, making debugging all the more confusing. But I was slowly making progress, exploring the possibilities of this unique octal-core contraption.

Other projects grabbed my attention, and the Propeller ended up on a shelf for some time. Around Christmas, I decided that it was time to focus on getting a demo ready for Breakpoint 2009. I'd had an idea that I wanted to try: I thought that maybe some of the I/O pins could be used to transmit video data between the cogs (the cores of the Propeller) in realtime. This would allow me to split the visual effects into layers, and have the layers rendered by separate cogs. The technique turned out to work just fine, and the fact that I'd invented something novel really motivated me to work hard on the production.

That winter, I spent most nights and weekends developing effects, tweaking parameters and debugging. Much of the coding, such as implementing the music routines, was just plain work. I'd written several mini-trackers before, and I also had experience with FM synthesis, but it all had to be implemented from scratch for the Propeller in order to get maximum performance. The music itself was composed during the course of a few inspired nights and mornings, on the PC using a custom tracker. Most of the visual effects were researched, prototyped on the PC, simplified and re-implemented in Propeller assembly language. Naturally, a lot of time was spent optimizing the final code.

Looking back, I'd say that whereas creating Craft was play (albeit difficult), creating Turbulence was disciplined work. But the work was fun and stimulating, and I had a clear goal in mind. And that's a great way to enjoy life!

Links related to this article

Official Homepage of Lft Turbulence link Turbulence video Craft video