Matt Westcott and The Museum of the History of Science present
The Mahler Project
In 1982, the Sinclair ZX Spectrum was launched.
A computer which gave a generation of schoolchildren their first introduction to computer programming
and started a computer revolution in the UK and beyond.
Its success was largely due to the BASIC programming manual,
written by the creator of Spectrum BASIC, Steven Vickers.
It gave its young readers a friendly, accessible introduction to the world of computer programming.
Chapter 19: BEEP.
Summary: BEEP.
If you haven’t already discovered that the ZX Spectrum has a loudspeaker built into it,
read the Introductory booklet before carrying on.
The loudspeaker is sounded by using the BEEP statement,
BEEP duration, pitch. For example, type this program.
When you run this, you should get the funeral march from Mahler’s first symphony -
the bit where the goblins bury the US Cavalry man.
The chapter ended with a challenge to the reader which probably wasn't meant to be taken too seriously.
Exercise 2: Program the computer so that it plays not only the funeral march,
but also the rest of Mahler’s first symphony.
Even if someone had the patience to type in an entire symphony worth of BEEP commands,
they would certainly run into other limitations:
the Spectrum's 48K of memory, and its limited sound capabilities.
Remember that because there is only one loudspeaker in the computer
you can only play one note at a time.
If you want any more you must sing it yourself.
But if one Spectrum wasn't enough to do justice to Gustav Mahler,
then what about a whole orchestra of them?
Oxford, UK 6th December 2014
I'm Scott Billings, public engagement officer at the Museum of the History of Science,
and one of the exhibitions I worked on last year was an exhibition called Geek Out!.
Geek Out! was a slightly cheeky way of taking lots of instruments from the museum's collection,
that made a case for the fact that there have always been geeks.
There have been geeks throughout history, into astronomy,
geeks who are into amateur radio, and mathematics and calculation and so on.
And as part of that exhibition, we had an area that was devoted to 1980s computing -
the birth of the geek as we might think of them, the computer programmer.
So we had an idea - we thought, wouldn't it be nice to have an event at the museum
that picked up that idea, that got people to come into the museum, visitors,
and let them have a go on some of this early hardware.
Scott invited me to help run a ZX Spectrum gaming section at the event.
As I started gathering machines from friends and contacts,
I told him about my hare-brained idea of putting them together into an orchestra.
To my amazement, he was keen to go along with it!
The secret weapon would be the Spectranet interface,
a new piece of hardware that allows the Spectrum to connect to the internet.
It's previously been used for online games, IRC chat, and even to post to Twitter -
but here it provided the communication channel between the Spectrums
to keep them in sync.
Dylan Smith, the creator of the Spectranet,
was on hand with 12 interfaces, which we believe is a world record
for the number of Spectrums networked in one place.
Throughout the Spectrum's life, programmers found ways
to squeeze better sound out of the Spectrum,
and the later models added a dedicated sound chip
to improve the audio capabilities further.
For full authenticity, we didn't use any of this -
just the plain BEEP instructions demonstrated in the manual.
Of course, we had a bit of 21st century assistance.
Today it's easy enough to download a MIDI version of the symphony from the web -
and to convert that down into the musical scores for 12 Spectrums
is just a routine programming task. But again, it was important
that we stuck to the spirit of the original challenge.
We couldn't just get a more powerful computer to trigger the notes:
it had to come from the Spectrums themselves.
At the heart of the network was a Raspberry Pi,
but this was just providing the time source -
the conductor of the orchestra, if you like.
It was not so busy in the day at the museum, but as the moment approached,
when Matt was going to link the Spectrums together, and set the music going,
the gallery just filled up and up, and by the time that they were doing
the final reboots and jiggling of wires and things like that,
we had a big crowd of people - the gallery was filled with people.
So there was a certain anticipation in the air, when finally
Matt and Dylan got all the Spectrums behaving as they were supposed to behave -
and then the beeps began.
Of course, failures are inevitable with 30 year old hardware,
and at least one of the Spectrums wasn't playing along.
It should have joined in with the main melody some time around... now.
But it didn't.
So this was the longest 30 seconds of my life.
Due to time constraints, we only played the third movement.
The entire symphony is well over an hour, and it's fair to say
that the novelty would have worn off after that long.
But all the programming work was done - we demonstrated that it worked,
and to us, that was enough to declare it a success.
There was a big round of applause, for both the hardware and the human input into the day.
So we were really pleased with the event at the museum,
and our directors were very pleased too.
News of the achievement quickly reached Steven Vickers -
the manual's author, and the person who initially set the challenge.
That is fantastic, and gave me great pleasure.
But what a missed opportunity. If I had known that all I had to do
was set a seemingly impossible Spectrum exercise and then, a mere 30 years later,
people and Spectrums would band together and carry it out,
we could have achieved such great things for the world.
Dr Vickers is now on the look out for a suitable follow-up challenge
to be solved over the next 30 years.
So perhaps, by the year 2050, we'll be back again
to see another piece of computing history being made.