A long time ago, when I was young and you were even younger, gentle reader, we had Acorn Archimedes computers at school. Back when there was more than one kind of computer. The Arc was great. There will be those who liked the Amiga, or the Atari ST, but those were basically small toy computers for children. Yes. Long live the Archimedes.
Anyway, for no reason I can discern, this evening I remembered a thing on the Arc; a “sound demo”. It was just a looping sample, presented as an app; you ran the app and it played the sample, over and over. It was a short little composition — a few seconds, only — made up of different snippets taken from Bond films over a bit of music. This may not seem exciting to you, with your instantly streamable 4K video and stuff, but it was pretty goshdarn exciting back then. Get off my lawn.
I thought to myself: I wonder if that’s still around? A bit of googling led me to an old archive of RISC OS software and there it was:
"007.spk: Sound-demo". A download later, and then… what format is it in?
file 007.spk says it’s “data”, which is not helpful, because that’s
libmagic‘s codename for “no idea what this is, dude”. What’s an spk file? More googling — no, it’s not an installation package for Synology NASes, no it’s not a design for an electronics board, and then someone mentioned SparkPlug. In those days there were many, many, many compression formats. It’s not like now where there are basically ZIP files and occasionally RAR and tar.gz and that’s it. There was ZOO, LHA, ARC, loads of them. Zip files were the thing that PKZIP produced, and that was shareware. Loads of them. And on the Archimedes, everyone used SparkPlug. Actually, it was SparkFS, by David Pilling; you needed that (which cost money) to make Spark archives. But SparkPlug was free, and just did decompression. Unsurprisingly, that never got ported to other platforms, and I was mildly disappointed to discover that my desktop didn’t know how to open it without being told. But some more googling around led to nspark, a “dearchiver for RISC OS archives”. You have to compile it, but by this time I had the bit between my teeth — digital preservation is everybody’s responsibility! — and the
COMPILING file says that that’s literally one command,
make -f makefile.gcc. Run that and you get an
nspark binary, and
nspark 007.spk unpacks it! I have a folder named
$ ls !James MemAlloc !Run !RUNIMAGE !RunImage2 !Sprites
Arc software came in a folder; if that folder was called
!something, then it got treated like a single file you could drag around and run. This is the idea that the Mac used, later, for its application bundles (and I wish Linux software worked that way, but that ship’s sailed). Anyway, you could click the app and it would actually execute a file named
!Run, inside the bundle. That file was a sort of tiny script which would set things up and then normally execute
!RunImage, which was your actual compiled program, and indeed that’s what this one does too. So,
!RunImage was the binary… and
!RunImage2 was 200K, by far the largest file in the bundle, so the sound sample had to be in there. But… what format is it?
file again claimed that it was “data”, but I thought: it’s a sound sample, right? I bet it’s just raw sound data. Can it be played?
aplay !James/!RunImage2 gives a burst of meaningless noise. Hrm. Are there formats for these things? Read the help… ah, yes, there are. And
aplay -f S16_LE plays it understandably, hooray! But that just plays… how do I make this into an actual modern file?
Aha, again. Audacity allows importing raw audio. So, we import it, as a 16-bit set of samples, at sample rate 7600 (8000 sounded a tiny bit fast) and… success! Save as an mp3, and that works fine.
Not a hugely critical piece of software archaeology, but nice nonetheless. And I know of no better way of backing stuff like this up than to write a blog post about it so that a decade from now when I think of it again, it’s still here. (We made this mistake with the sound samples from Armadeus; after some serious digging around, Bill found the one that said “The mask; the ray-traced picture; and finally, the wireframe city”, and then we bloody lost it and now I don’t have it again.) So we’ll call this one a birthday present for Bill and I’ll try not to lose it this time.
!Run file for
!007 credits a Toby Cole on 25/2/90 and says:
well here it is!!. Nice one Toby. From 27 years into your future, here it is again.