Back in December, a group of intrepid geeks convened at the Museum of the History of Science, Oxford, for an event named “Geek Out!”, marking the end of the museum’s Geek Is Good exhibition. A fleet of Spectrums was set up in the museum’s basement gallery, for the public to try their hand at some classic Spectrum games.

But this was no ordinary retro-gaming event. These geeks were on a mission to achieve a 30-year-old challenge, laid out in the Spectrum programming manual: to program the ZX Spectrum to play the entirety of Mahler’s first symphony. And to do it with a network of 12 Spectrums.

This is their story.

I present to you: “The Mahler Project” – a short documentary premiered last weekend at the Forever demo party in Slovakia.

Calling all Oxford people who have ZX Spectrumsportable TVs! And ZX Spectrum people who want to come to Oxford!

Fancy making a bit of computing history this December?

On Saturday 6th of December, The Museum of the History of Science will be hosting “Geek Out!“, a day of retro-gaming with the Sinclair ZX Spectrum and the BBC Micro. And I’m helping to run the Spectrum bit! The museum’s Basement Gallery will be taken over by Spectrums set up with classic games for you to rediscover (or for you young ‘uns to discover for the first time). And then in the afternoon, we’ll attempt a 32-year-old challenge that’s never been done before…

Chapter 19 of the Spectrum BASIC programming manual introduced the BEEP statement, with an example program that played a few bars of Mahler’s first symphony. In the ‘exercises’ section at the end of the chapter, the author left a cheeky assignment for the reader: program the computer to play the rest of Mahler’s first symphony.

We’re going to take on that challenge, not just on one computer, but linked together to form a Spectrum orchestra.

The snag is… I need your help to gather together A Large Quantity Of Spectrums. If you have a Spectrum lurking in your attic, or a huge collection of them taking pride of place in your bedroom, I’d love to hear from you. We’ll also need enough TVs (or monitors with a composite video input) to go round – so if you have a TV set that’s portable enough to bring into central Oxford, that would be excellent too. If you can help out, please email me at matt@west.co.tt. The event will run from 10am to 5pm, but if you can only make it for part of the day, that’s no problem… the more, the merrier. (For people sticking around for longer, I dare say beer and/or curry will be happening in the evening…)

Update 2014-11-29: One week to go! Huge thanks to everyone who’s been in touch with offers of hardware. We’re well-equipped with Spectrums now, but a couple more televisions would really help the event go smoothly. Also, joysticks (with the Atari-standard 9-pin D connector) would come in very handy!

Don’t have any hardware to bring? No worries. Come along and in some retro-gaming action, while admiring the museum’s impressive collection of gadgets and gizmos through the ages!

(Temporarily abandoning my plan to blog about all of my projects in chronological order, seeing as I’m now two years behind.)

Exogenesis is my new demo for Raspberry Pi and Novation Launchpad MIDI controller, written as an exercise in creating a coherent visual narrative on an oh-so-limited display. Music is by songster and zinc-vending supremo Hoopshank, and the demo was presented at this weekend’s Sundown demoparty, where it won first place in the Wild demo competition.

Visuals were programmed in Python (synchronised with the music by hand – there’s no spectrum analysis of the audio or anything like that going on) and sent to the Launchpad as a stream of MIDI ‘note-on’ events. There’s no particular reason for running it from a Raspberry Pi, other than ‘because I can’ – the code ought to be portable to more or less anything that can run Python and has a USB port.

This also happens to be my first production under the Wavesitter label. I figured that since I’ve done quite a few productions with guest musicians, and hope to do a lot more of that in the future, I should make that an official thing with its own name, rather than being “Gasman and X” all the time. In other words, Wavesitter is to Matt Westcott what Nine Inch Nails is to Trent Reznor. Or, indeed, what Simply Red is to Mick Hucknall. Insert your own comparisons here. (Also, if I’m not mistaken, it’s a literal translation of the German word for budgerigar, Wellensittich. Which I think is kind of neat.)

My woefully late roundup of stuff I’ve made continues with this project from August 2011. As long-term followers of this blog may recall, since mid 2008 I’ve been undergoing a long-term exercise of trying to keep up a jet-setting demoscene lifestyle without flying – and that can lead to some pretty creative journey planning. One such occasion was my Week Of Geek in 2011, a round trip taking in the Assembly demoparty in Helsinki, then down to Berlin (via the sleeper train from Malmö, which unexpectedly involved the train being loaded onto a ferry. A train on a boat! A train! On a boat! But that’s another story) for the first two days of Chaos Communication Camp before whizzing off by ICE to Cologne for the Evoke demo party.

All visitors to CCC received a r0ket badge – a USB-powered gadget equipped with a 70MHz ARM processor, a whopping 32Kb of flash, a joystick switch, and a Nokia-3310-stylee mono 96×68 LCD. Ostensibly, this way a way of providing people with name tags that were suitably illuminated for the night-time activities at the camp; in reality, of course, it was a geek toy to hack around with, and for me it was a perfect opportunity to earn some major geek points by being the first person to show one off to a demoscene crowd on the other side of Germany, while the camp was still going on. So, what sort of eyecandy can you do in two days with a low-res display, a joystick, and a comparatively-beefy-but-floating-point-lacking CPU? Wolfenstein 3D, that’s what.

The principle is the same as it was in the 286 days: set up your viewpoint as position somewhere on a 2D map; send rays fanning out from that point, one for each pixel column of the screen, until it hits a wall; and draw a vertical slice of texture corresponding to the part of the wall it touches, scaled according to how far away that is. I first learned of this back in my Uni days from Tristam Fenton-May, who designed a hardware implementation of the Wolfenstein engine for his final year project, and came up with a brilliantly oddball way to avoid having to allocate memory for a full display buffer: the whole thing would be rendered column-by-column on a CRT display placed on its side. Lovely.

My initial experiments with the r0ket board showed that the screen was laid out in a peculiar vertical arrangement of bytes, which was reason enough to steal Tristam’s idea and do my column-by-column rendering straight to the screen in one swoop. In hindsight, this was probably a bit silly – mingling the display routines with the 3D calculations resulted in some horribly spaghetti-ish code – but then again, I think we’re allowed a bit of spaghetti code in fun projects like this. And, in fact, the overheads of the r0ket system software meant that we only had around 2.5K to play with, so being frugal with memory was probably no bad thing.

I’m determined to get this blog back up to date, even if it means catching up on things from over a year ago. So cast your mind back to the summer of 2011, when Nyan Cat took the internet by storm.

My Spectrum demo Nyantro (Download | pouet.net) was Nyan Cat’s first appearance on an actual retro platform, and it left a rainbow-coloured trail of imitators in its wake, starting with the Commodore Plus/4, Atari 2600 and BBC Micro, and ultimately becoming a necessary rite of passage for any self-respecting demo platform, a sort of 8-bit Hello World.

It was created during the first few days of Shucon 2011, a week-long Speccy retreat in the Czech Republic, and stands out as one of those rare demos that wasn’t stymied by a tight deadline for once. I went to the extra trouble of using fiendish multicolour tricks to achieve more than the standard two colours per character cell, and the whole thing was pretty much wrapped up when I had a brainwave. “You know what this really needs? The rainbow stripes should extend into the border.” Cue another day and a half of pulling apart and rewriting the code…

Well worth the effort, though, especially to see it getting this reception from 4000 geeks at Euskal Encounter this summer:

A long-overdue maintenance update to JSSpeccy to apply a bugfix independently found by Antonio Villena and Andrew without-a-surname: IM 2 interrupt handlers were broken because I had an 0xfff where there should have been an 0xffff. Thanks both!

In advance of my appearance at the Ultrachip Festival in Edinburgh next month (19th-20th August! Two nights of awesomeness from the UK’s finest chiptune musicians! Free entry! W00t!), I thought this would be a good time to reveal the secret weapon at the heart of my live shows. Ladies and gentlemen, behold… the Synchronizatron 3000.

Out of all my projects, I like this one a lot. I like it because it brought me out of my comfort zone and into the murky world of hardware design (aided by the Arduino project which does a fine job of making that world accessible to electronics noobs like me). I also like it because it elegantly solves a problem that, in all likelihood, nobody in the world but me has. But most of all, I like it because it has a pair of blinky LEDs on the top which serve no meaningful purpose.Read the rest of this entry »

After the triumphant AY Riders gig at the Forever demoparty back in March, I had a hankering for some more Speccy-and-keytar-and-vocoder live performance action, so I jumped at the chance to play my first EVVAR solo set at last weekend’s Outline party in the Netherlands. Outline is by no means one of the largest parties, but there’s something magic about the atmosphere there which has made it one of the most eagerly awaited events in my calendar over the last couple of years. Most demo parties will give you the opportunity to chill outside in the sun with a beer or slave away at a hot CPU to finish off your creations, but it’s rare that the two activities flow together so smoothly as they do at Outline.

And with everyone’s spirits kept high, it means that when the evening activity kicks off, you have the most awesome audience you could possibly hope for. Big ups to TMC for the video, m0d for the other video which should be surfacing soon, Ziphoid for streaming the gig on SceneSat Radio, and of course Havoc, D-Force and the rest of the Outline team for making it all happen…

Setlist

1:51 Gasman – Out Of Neverland

6:18 Gasman – Torch Dragon

8:41 Celine Dion – My Heart Will Go On

10:23 Gasman – Cybernoid’s Revenge

14:23 Madonna (arr. TDM + Factor6) – Hung Up

20:17 Gasman – Oldskool Crusader

23:47 Michael Jackson – Thriller (featuring Okkie)

30:30 Purple Motion (arr. TDM + Factor6) – Satellite One

balls, touching

And after all that, I still had some spare energy to do some casual hacking around with sine waves and come up with an entry for the 128 byte intro compo. As you’ll see from the video, 128 byte intros are one of those peculiarly demoscene-ish things that demand a certain frame of mind to be enjoyed properly, to the point where it gets a tad surreal for outsiders. If nothing else, you can certainly count on the Outline audience to provide a soundtrack to a silent production.

(…and before you ask, the title does indeed come from an infantile demoscene in-joke about genitalia. I’d actually only planned for there to be one ball, but then one of those fortuitous coding accidents from adding or removing an odd instruction happened, and I knew I had to run with it.)

I wrote a Speccy chiptune for the Revision party this weekend (where it was presented on the 29th anniversary of the release of the ZX Spectrum, no less). The whole thing was done live at the party in the space of about six hours, and it’s very much in my signature style.

I’ve grown tired of hearing the No2AV campaign talk about how the proposed Alternative Vote system is too complicated for people to understand. They know perfectly well that it isn’t, but just spreading the claim is enough to muddy the waters and put people off trying to understand it, because, by golly, if the Prime Minister thinks it’s complicated then what chance do we have?

At the same time, though, I don’t feel that the Yes campaign have been particularly strong at responding to that claim: by over-simplifying it through weak analogies (“it’s like going to the shops for a chocolate bar, and finding that they don’t have your first choice, so you have to go for your second choice instead – but you still only get the one chocolate bar”) people are being left with the impression that the pro-AV crowd are glossing over important details, and the suspicion that it’s probably a lot murkier once you start digging under the surface (which people aren’t going to do, because we’re all too busy to read up on voting systems, and someone said that it was really complicated. And so on ad infinitum).

So, to do my bit to support the cause, and hopefully quash the “it’s too complicated!” mantra once and for all, I’ve attempted to explain AV in full, through the medium of a children’s story.

I’m no Lewis Carroll – this is really just an idea that I thought was worth putting into words – so I’m releasing it under a Creative Commons attribution licence. If this captures your imagination, and you have literary / copy-editing skills, please do go ahead and weave your magic on it. Or make some illustrations, or print out a bunch of copies and make a load of money off it, or persuade your celebrity friends to make an audiobook version of it. Or even, if you’re so inclined, rework it into a pro-first-past-the-post story. What this debate needs is more down-to-earth constructive arguments, from both sides.

Are you sitting comfortably? Then we’ll begin:

The Three Little Pigs: an Alternative Vote fairytale

by Matt Westcott

Once upon a time, there was a farm. On this farm, there lived some pigs, some cows, some chickens and some horses.

The animals on the farm were very unhappy, because the farm was run by the Big Bad Wolf and his four wolfy friends. They were very cruel to the animals on the farm, and every harvest time, they would take all of the farm’s crops for themselves. All the other animals longed for the day when the Big Bad Wolf wouldn’t be running the farm any more.

Every summer the animals would get together in the yard outside the big farmhouse for a special ceremony. Each animal would get to choose who they wanted to run the farm for the following year. One by one, they would go up to wise old Mr Owl and tell him their choice, and wise Mr Owl would count up the votes and decide who would be king of the farm.

One summer, Billy, Benny and Bobby, the three little pigs, decided that they’d had enough of the Big Bad Wolf. Each of them thought long and hard about what to do… and slowly, one by one, they each had the same idea. “If I get the animals to choose me as king of the farm,” thought Billy, Benny and Bobby, “I’ll run the farm in a much fairer way. I’ll make sure all of the animals have enough food, and together we’ll all live happily ever after.”

And so, on a beautiful summer morning, Billy the pig went to visit Dora, Debra and Dinah, the chickens, to tell them about his plans. “If I become king of the farm,” said Billy, “I’ll send the Big Bad Wolf and his four wolfy friends back to the forest. At harvest time, we’ll take the farm’s crops to the market, and with the money we make, we’ll paint the hen-house red.” “Oh, Billy, what a wonderful idea!” exclaimed Dora. “We’ll vote for you, we promise!”

Meanwhile, Benny the pig went to visit Myrtle and Molly, the cows, to tell them about his plans. “If I become king of the farm,” said Billy, “I’ll send the Big Bad Wolf and his four wolfy friends back to the forest. At harvest time, we’ll take the farm’s crops to the market, and with the money we make, we’ll paint the cow-shed blue.” “Mmm… That does sound like a good idea,” said Myrtle as she chewed on a strand of hay. “We’ll certainly vote for you!”

Meanwhile, Bobby the pig went to visit Henry the horse, to tell him about his plans. “If I become king of the farm,” explained Bobby, “I’ll send the Big Bad Wolf and his four wolfy friends back to the forest. At harvest time, we’ll take the farm’s crops to the market, and with the money we make, we’ll paint the stables yellow.” “I say! What a jolly good idea!” said Henry. “I’ll be voting for you, that’s for sure!”

And so the day came when the animals would choose who was to become king of the farm. The chickens were the first to come up to wise old Mr Owl and tell him their choices. “Hello, Dora,” said wise Mr Owl. “Hello, Debra, Hello, Dinah. Whooo do you choooose?”

Next, it was the turn of Henry the horse. “Hello, Henry,” said wise Mr Owl. “Whooo do you chooose?”

“I choose Bobby!” said Henry. “Very well,” said wise old Mr Owl.

Finally, the Big Bad Wolf’s four wolfy friends came up to wise Mr Owl to make their choices. “Hello, Wolfson. Hello, Wolfingham. Hello, Wolferton. Hello, Wolfhamstow,” said wise Mr Owl. “Whooo do you chooose?”

The animals all gathered round to hear who would be king of the farm for the next year. “In fourth place, with one vote – Bobby the pig”, began wise Mr Owl. “In third place, with two votes – Benny the pig. In second place, with three votes – Billy the pig. Which means that this year’s king of the farm, with four votes, is… The Big Bad Wolf.”

All the animals gasped with surprise.

“Oh, Mr Owly!” cried Dora. “None of us wanted the Big Bad Wolf to win. We chose Billy because we so dearly wanted our beautiful new hen-house, but really we would have been happy with Benny or Bobby. I know that Henry and Myrtle and Molly feel the same way too. The only animals who wanted the Big Bad Wolf to win were his four wolfy friends!”

“I’m sorry, Dora… that’s how the rules work,” explained wise Mr Owl. “The Big Bad Wolf got more votes than any of the three little pigs, so he becomes king of the farm.”

Autumn came, and at harvest time, the Big Bad Wolf and his four wolfy friends were worse than ever. Once again, they kept all the farm’s crops for themselves, and the animals went hungry. Winter came, and rainstorms battered the hen-house, the cow-shed, and the stables, leaving the walls rusted and the old paint flaking off. Spring came, and the three little pigs were determined not to give up – they decided they would stand up against the Big Bad Wolf once again.

And so, on another beautiful summer morning, Billy the pig went to the hen-house to visit Dora, Debra and Dinah. Once again, he told them that if he became king of the farm, he would share out the crops more fairly, and with the money they made at market, they would paint the hen-house red. “Oh, Billy, it still sounds like a wonderful idea,” said Dora, “but how will we make that happen if the Big Bad Wolf wins again?” “We’ll make it work out – somehow,” replied Billy.

Meanwhile, Benny the pig went down to the cow-shed to visit Myrtle and Molly. Once again, he told them that if he became king of the farm, he would share out the crops more fairly, and with the money they made at market, they would paint the cow-shed blue. “It still sounds like an awfully good idea,” said Myrtle, “but how will we make that happen if the Big Bad Wolf wins again?” “We’ll make it work out – somehow,” replied Benny.

Meanwhile, Bobby the pig went down to the stables to meet Henry the horse. Once again, he told Henry that if he became king of the farm, he would share out the crops more fairly, and with the money they made at market, they would paint the stables yellow. “It’s still a jolly good idea,” said Henry, “but how will we make that happen if the Big Bad Wolf wins again?” “We’ll make it work out – somehow,” replied Bobby.

Soon, the day came round when the animals would choose who was to become king of the farm. They all gathered round in the yard outside the big farmhouse to hear wise old Mr Owl make an announcement. “We’ll be doing things a bit differently this year,” he explained. “This time, you’ll still give me your favourite choice, but you can also tell me your second choice, third choice, and even fourth choice.”

The animals all chattered with excitement at the news. The chickens were the first to come up to wise old Mr Owl. “Hello, Dora,” said wise Mr Owl. “Hello, Debra, Hello, Dinah. Whooo do you choooose?”

“We choose Billy,” said Dora, Debra and Dinah, “but our second choice is Benny, and our third choice is Bobby.” “Very well,” said wise old Mr Owl.

The cows were next to visit wise old Mr Owl. “Hello, Myrtle,” said wise Mr Owl. “Hello, Molly. Whooo do you chooose?”

“We choose Benny,” said Myrtle and Molly, “but our second choice is Bobby, and our third choice is Billy.” “Very well,” said wise old Mr Owl.

Next, it was the turn of Henry the horse. “Hello, Henry,” said wise Mr Owl. “Whooo do you chooose?”

“I choose Bobby,” said Henry, “but my second choice is Billy, and my third choice is Benny.” “Very well,” said wise old Mr Owl.

Finally, the Big Bad Wolf’s four wolfy friends came up to wise Mr Owl to make their choices. “Hello, Wolfson. Hello, Wolfingham. Hello, Wolferton. Hello, Wolfhamstow,” said wise Mr Owl. “Whooo do you chooose?”

The animals gathered in the yard, eager to hear who would be the new king of the farm. “I have some very interesting news,” declared wise Mr Owl. “The Big Bad Wolf had the most votes, but there was no clear winner. He only received four votes, out of a total of ten.

“This means that we need to go to a second round. Bobby the pig only received one vote, so we’ll take him out of the contest, and count the votes again. Now, the Big Bad Wolf still has four votes. Billy the pig has four votes, and Benny the pig has two votes.

“Well I never! We still don’t have a clear winner! That means we need to take Benny the pig out of the contest, and go to a third round. Benny and Bobby are out now, so we need to use Myrtle and Molly’s third choice. Counting it all up, then – the Big Bad Wolf still has four votes, and the new king of the farm, with six votes, is… Billy the pig!”

All the animals on the farm cheered. All the animals, that is, except the Big Bad Wolf and his four wolfy friends – because they knew that their time of treating the other animals unfairly was at an end.

The following harvest time, the farm had its biggest crop ever. The wolves were no longer around to take it away from them, and when the animals took it to market, they were delighted to find that they’d made enough money to paint not just the hen-house, but the cow-shed and the stables too. The animals enjoyed their newly decorated homes, and they all lived happily ever after.